マニュアルではproc
、4 番目の列をmountinfo
「ルート」と名付け、「このマウントのルートを形成するファイルシステム内のディレクトリのパス名」と説明しています。しかし、これをどのように理解すればよいのでしょうか?
マウントの基本要素はソース パスとターゲット パスだと思っていましたが、「マウント ソース」は 10 列目でターゲットは 5 列目なので、ルートは何に使用されるのでしょうか?
ほとんどのマウント情報では、ルートは だけであり/
、意味がないようです。 バインド マウントのルートが と異なることがわかったので/
、これはバインド マウントでのみ役立ちますか? また、バインドの場合は、ルートに絶対パスが表示されないのはなぜですか? たとえば、 を/run/test_dir/a
にバインドすると/run/test_dir/b
、ルート列に が表示されますが/test_dir/a
、 の部分が非表示になっているのはなぜですか/run
?
答え1
言語要素で説明するのは難しいです(少なくとも私の英語力では)ので、例に基づいた回答をすることにしました。
ルートディレクトリは、最高または最もひどいディレクトリ。これは部分的にしか当てはまりません。このディレクトリ想定されるとして最高ディレクトリ。「このディレクトリから始めます。これが最上位のディレクトリであり、その上には何もないものとします」と説明できます。
「ルート」の意味を明確にするための例をいくつか示します。
- ウェブサーバーを運営していて、ドメインのルート
example.com
を に設定しているとします/var/www/html/example.com
。ここでファイル を作成します/var/www/html/example.com/test.html
。ブラウザで開くと、https://example.com/test.html
作成されたファイルの内容が表示されます。ルートとして設定する場合は/var/www/html
、https://example.com/example.com/test.html
chroot
ディレクトリに入ると/home/test/testSystem/
、この環境のルートは になります/home/test/testSystem
。chrootls
された環境内でを実行するとls /
、次の内容が表示されます。/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
他の場所にマウントすると、マウント ルートが取得され/dir1
、マウント ソースは/dev/sdb
(USB) になります。 この/mnt
部分はここで削除されます。
「/run 部分をなぜ隠すのか」
簡単に言うと、/run
tmpfs パーティションであるため削除されます。これらの部分が削除されるのはなぜですか?
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
。
ルートが与えられれば、/mnt/usb/dir1
USB上の実際の場所がどこなのかはわかりません。それは/dir1
、/usb/dir1
あるいは/mnt/usb/dir1