私の/home
パーティションは です/dev/sda1
。 私の/
パーティションは です/dev/sda2
。
/home
パーティションにファイルを作成すると、そのファイルはディレクトリ/
の下のパーティションに表示されます/home
。
Windows の場合、D ドライブにファイルを作成すると、そのファイルは C ドライブでも表示されます。
どうしてこんなことが可能なのでしょうか?
答え1
現在のファイルシステムの経験が Windows または単一のディスク/パーティション システムに基づいている場合、マウントポイントの概念に慣れていない可能性があります。(Windows ではマウント パスでのディスクのマウントもサポートされるようになりましたが、Linux/Unix ほど一般的ではありません)
Linux/Unix のファイルシステムは、ファイルのネストされた階層です。(フォルダーもファイルです。)
から始まります/
。すべての根源です。あなたの場合、これはパーティション にあります/dev/sda2
。/home
をにすると/dev/sda1
、次のようになります。
/
dev/
pts/
- (もの)
sys/
home/
rebecca/
txtfile.txt
bob/
など(他にもたくさんのディレクトリがありますが、これは単なる例です)
/
つまり、 ->からのパスは/home/rebecca/textfile.txt
可能な限り透過的になるように意図されています。したがって、パーティションtextfile.txt
内にあるように見えますが/
、実際にはそうではありません。/home/
パーティション内にあります。それパーティションはディレクトリmounted
内に/
として存在します/home
。
次の 3 つのコマンドを試してください。
df /
df /home/
df /home/rebecca/textfile.txt
<-- ファイルへの実際のパスを使用する
このdf
コマンドは、コマンドを実行した時点でシステムにマウントされているすべてのファイルシステム (実ファイルシステムと仮想ファイルシステム) を表示します。df
上記の例のように を使用すると、出力がフィルタリングされ、一度に検査できる項目が少なくなります。
要約これは、Unix および Linux のマウントポイントが、さまざまなディスクすべてを 1 つのまとまったファイルとディレクトリ ツリーとして表示するように動作する仕組みです。
答え2
POSIXファイルシステムでは、すべてはファイルシステムのルート内のどこかに存在し、 にあります/
。 にマウントしたルートパーティションには、/
ディレクトリ があります/home
。このディレクトリは(おそらく)として使用されています。マウントポイント(つまり、パーティションなどのマウントされたファイルシステムが存在する場所)パーティションのhome
。そこに作成されたファイルははパーティション内に作成されhome
、その内容はそのパーティションのマウント ポイントで表示されます。
コンテンツを/home
消去することによって生じる問題にもかかわらず、次の場合は、
# umount /home; mount /dev/sda1 /mnt; ls /mnt
あなたは何の内容を目にするでしょうか持っていたにありました/home
、現在は で閲覧可能です/mnt
。
実際にこれをやらないでください。これは実証的な思考実験です。
mount
パラメータを指定せずにコマンドの出力を観察すると、どのファイルシステムがどのマウントポイントにマウントされているかのリストを確認できます。
答え3
独自のファイルを含むファイルシステム (パーティション) は、 で始まるファイルシステム ツリー内の任意の場所に配置できます/
。通常は に配置され/home
、その中にユーザー名と同じ名前のディレクトリがあります。たとえば、 などがあります/home/rebecca
。
UNIX ベースのシステム (Linux ベースのシステムを含む) は、単一ルートのファイルシステム ( /
) を使用します。Windows システムは、複数ルートのファイルシステム ( C:
、D:
など) を使用します。
ファイルをある場所に書き込む場合、ファイルの内容を保持するのに十分なディスク領域がある限り、通常、どのパーティションに書き込まれるかを気にする必要はありません。