/proc/.../mountinfoの4番目の列(ルート)はどういう意味ですか?

/proc/.../mountinfoの4番目の列(ルート)はどういう意味ですか?

procマニュアルでは、4番目の列の名前をmountinfo「root」と指定し、「このマウントのルートを形成するファイルシステムのディレクトリパス名」と説明します。しかし、どのように理解する必要がありますか?

マウントの基本要素はソースパスとターゲットパスだと思います。 「マウントソース」は列10で、ターゲットは列5なので、ルートは何に使用されますか?

ほとんどのマウント情報では、ルートは/意味がないようです。バインドマウントのルートディレクトリがルートディレクトリと異なることだけがわかった/ので、バインドマウントにのみ役立ちますか?バインディングの場合、ルートの絶対パスが表示されないのはなぜですか?たとえば、バインドすると/run/test_dir/aルート/run/test_dir/b列に表示されますが、/test_dir/aその/runセクションを非表示にするのはなぜですか。

ベストアンサー1

(少なくとも私の英語力では)言語要素で説明するのは難しいです。だから私はサンプルベースの答えを作ることにしました。

ルートディレクトリはしばしば呼び出されます。最も高いまたは最も高い目次。これは部分的に真です。このディレクトリ仮説〜のように最も高い目次。 「このディレクトリから始めましょう。これが最上位のディレクトリであり、その上に何もないとします」と説明できます。

「ルート」の意味を明確にするためのいくつかの例:

  • Webサーバーを実行し、ドメインルートexample.comをに設定したとします/var/www/html/example.com。これでファイルを作成します/var/www/html/example.com/test.htmlhttps://example.com/test.htmlブラウザで開くと。生成されたファイルの内容を取得します。 rootに設定されている場合は/var/www/html開く必要があります。https://example.com/example.com/test.html
  • chrootそのディレクトリに入ったら/home/test/testSystem/。この環境のルートはです。 chroot 環境でタスクを実行する/home/test/testSystemと、次の結果が表示されます。lsls //home/test/testSystem/

ルート権限を持つマウントポイント/

たとえば、USBには次のものが含まれます。

/
├── dir1
│   ├── subfile1
│   └── subfile2
├── file1
├── file2
└── file3

このUSBをマウントすると、USBディレクトリをルートとして/mnt使用するため、期待どおりに正常な出力が得られます。/

531 137 0:52 / /mnt rw,nosuid,nodev shared:75 - /dev/sdb [...]

したがって、ほとんどの場合、マウントポイントは実際にはルートです/

ルートが異なるマウントポイント/

自分で試してみてください。ファイルシステムの2つのディレクトリを一緒にバインドします。

$ mount --bind /var/test1 /var/test2

の出力はmountinfo次のようになります。

564 29 0:26 /var/test1 /var/test2 rw,relatime shared:1 - ext4 /dev/sda rw [...]

マウントポイントのルートディレクトリは以下に/var/test2あります/var/test1。マウントソース(マウントしたもの)は次のとおりです。/dev/sda

USBの例に戻ります。コンテンツを/mnt/dir1別のデバイスにマウントすると、マウントルートが取得され、マウントソースは(USB)/dir1になります。/dev/sdbその/mnt部分はここで削除されます。

「/run部分が隠されている理由」

簡単に言えば、/runtmpfsパーティションなので削除されました。これらの部品はなぜ削除されましたか?

USBの例では、dir1これ/dev/sdbをにインストールします/home/test/usbmnt/。出力は次のとおりです。

564 29 0:26 /dir1 /home/test/usbmnt/ rw,relatime shared:1 - ext4 /dev/sdb rw [...]

/ dir1の内容(ハードドライブではなくUSBから)をusbmntというディレクトリにマウントしたことがわかります。おそらくこの記事を読むと役に立ちます/dev/sdb/dir1

root が与えられると、/mnt/usb/dir1USB の実際の位置を知る方法がないので、ルートになることもでき/dir1ます/usb/dir1/mnt/usb/dir1

おすすめ記事