大きな木とは何ですか、どこにありますか?


3

「mount」コマンドのマニュアルページを読みます。

Unixシステムでアクセス可能なすべてのファイルは、1つの大きなツリー(ファイル階層)に配置されます/。これらのファイルは、複数のデバイスに分散できます。mountコマンドは、あるデバイスで見つかったファイルシステムを大きなファイルツリーにアタッチするのに役立ちます。

私の質問は:

  • この「大きな木」はどこにありますか?

  • 2つのディスクがあり、「ビッグツリー」のあるポイントにマウントすると、Linuxはマウントポイントに「特別なマーク」を付けて、これら2つの「マウントディレクトリ」が実際に別個のディスクであることを示しますか?


実際、考え直してみると、これはSOから移行すべきだったとは思いません。これはLinuxの内部構造に関する質問であり、サーバーやPCは実際には関係していません。ここでフィードバックが得られない場合は、もう少し抽象的な言葉遣いでもう一度質問してみてください。
ペッカ

@Pekka-それはプログラミング関連ではなく、私の意見ではスーパーユーザーにとって非常に良い質問です。
グヌーピ

回答:


6

この詳細については、マウントのマニュアルページを参照してください。

最初の質問について、大きな木はどのように見えるか:)

ここに画像の説明を入力してください


6

この「大きな木」はどこにありますか?

/ :-)にあります。「大きなツリー」とは、Linuxが単一のシステム全体のファイル階層(/で始まる)しか持たないという事実を指します。これは、いくつかのファイル階層(ドライブ文字ごとに1つ)を持つことができるMS-DOSやMS Windowsなどとは対照的です。

2つのディスクがあり、「ビッグツリー」のあるポイントにマウントすると、Linuxはマウントポイントに特別なマークを付けて、これら2つの「マウントディレクトリ」が実際に別のディスクであることを示しますか?

いいえ、マウントポイント自体に「特別なマーク」はありません。ただし、カーネルはどの実際のファイルシステム(ハードドライブ)がどの時点でマウントされているかを追跡するため、/ usr / local / bla / blo / xxxなどのファイルにアクセスしたときに実際にデータを読み取る場所を認識します。この情報は、たとえばrunningによってmount表示できます。これは、ファイル階層内の現在のマウントポイントとともに、マウントされているすべてのファイルシステムをリストします。


ありがとう、sleske。たぶん私はそれを明確に表現しなかったのでしょう。「大きな木」を物理的にどこに保存すべきかを知りたい。私の最初の計画は、「大きなツリー」を保持するためにできるだけ小さなプライマリパーティションを割り当て、「/ user」などの異なるフォルダを保持するためにいくつかの論理パーティションを割り当てることです。そして、これらの論理パーティションを「大きなツリー」の適切なポイントにマウントします。言い換えれば、「小さなプライマリパーティションがいくつかの大きな論理パーティションを導く」ようなものです。このスキームはどうですか?ありがとう。
smwikipedia

@smwikipedia:そのスキームは非常に一般的です。ディスクのパーティション化と割り当ては、2つの大きなスライス(ファイルシステムとスワップ用)から各ローカルディスク上の複数のパーティションにまで及びます。ネットワーク擬似ディスクも「大きなツリー」にマウントされていることに注意してください。一般的なレイアウトの概要については、「man hier」または「man hierarchy」を試してください。基本的に、別のディスクのマウントポイントとして、以下のディレクトリを分離できます。
mpez0

mpez0に感謝します。私の最初のスキームでは、「大きな木」の葉はどこでも指すことができますが、「大きな木」自体は物理的にどこにありますか?「大きな木」自体はデータ構造に他なりません。物理データが含まれています。記憶にありますか?または、「/」がマップされているパーティションにありますか?
smwikipedia

ファイルシステムは仮想グラフであり、異なるノードが異なる場所に保存されます。ディレクトリを読み取ると、システムはマウントされている場所を検索し、それに応じて動作します。「/」は通常、ハードディスクに保存されます。マウントポイントはメモリ内にあります。たとえば、「/ usr」は同じパーティション上にあり、そこを指すマウントポイントがないため、ディスクからディレクトリの内容を読み取ります。「/ home」は別のパーティションにあるため、システムはそこを指すマウントポイントを見つけ、そのパーティションからルートディレクトリを読み取ります。
ペテルソーン

コメントpetersohnをありがとう。あなたの言葉では、「ディレクトリを読むと、システムはマウントされている場所を検索し、それに応じて動作します」と言いました。システムが検索した「情報」が物理的にどこに保存されているかを知りたいだけです。パーティション上で 「/」と同じパーティション?実際、この「情報」とは、「大きな木」という言葉で私が本当に意味するものです。
smwikipedia

3

mount引数なしで入力すると、マウントされているディレクトリと場所が表示されます。たとえば、答えがの場合、/dev/sda1 on / type ext3 (rw)最初のハードディスクの最初のパーティションのルートディレクトリが実際には「ビッグツリー」のルートであることを意味します。

ここで、行も取得したとしましょう/dev/sdb1 on /home type ext3 (rw)。これは、/homeディレクトリの内容が2番目のハードディスクの最初のパーティションのルートディレクトリになることを意味します。パーティションには存在しないが、システムによって動的に管理される他の仮想ファイルシステムが存在する場合があります。たとえば、ライブCDから起動し、システムパーティションとして使用されるパーティションをマウントします。あなたがタイプしたとしましょう。

mkdir /media/system
mount /dev/sda1 /media/system

これで、システムのルートディレクトリ(CDで起動したものではなく、定期的に使用する)が表示され/media/systemます。また、ディレクトリdevは空であることがわかります。これは、通常、仮想ファイルシステムが含まれているためです。

システムがこのパーティションの場所をどのように決定するかを尋ねる場合、すべてがで書かれてい/etc/fstabます。man 5 fstabこれについてさらに情報が必要な場合は入力してください。はい、私はシステムを見つけるために持っているので、鶏、卵の問題は、ここにあります知っている/etc/fstab(と/sbin/mountディレクトリをマウントする前に、そのことについては)。答えは、私にはわかりませんが、かなりうまくいきます。

編集:私はすべてのパーティションがUUIDと呼ばれる一意の識別子を持っていることを追加できます。と入力すると、この識別子を使用してマウントできますmount -U uuid_of_partition /media/mount_point。通常、この方法は/etc/fstab、たとえばマシンのディスクの順序を変更するなどの問題を回避するために行われます。


ありがとうpetersohn。あなたは私が予想以上に多くをくれます。それは非常に有益です。どうもありがとう。
smwikipedia

2

この「大きな木」はどこにありますか?

コンピューター上。真剣に。一緒に追加されたすべてのディスクに加えて、すべてのメモリ内デバイスと擬似デバイス、端末、モデム、すべて、コンピュータである「ファイルシステム」と呼ばれる大きなツリーを形成します。

私は2つのディスクを持っていると仮定します... Linuxはマウントポイントにいくつかの「特別なマーク」を置いて、これらの2つの「マウントディレクトリ」が実際に別々のディスクであることを示しますか?

はい。


簡潔でターゲットにぴったり。どうもありがとう。
smwikipedia
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.