ファイルシステムvsパーティションvsディレクトリ


29

私はLinuxが初めてなので、この質問であなたが遭遇するかもしれない混乱を許してください。

私が理解から、ファイルシステムの指定方法パーティション店/時折、私は人々が「それぞれを参照するように見える参照などのext2、ext3の、reiserfsの、XFS、などの規格で、ファイルを管理しdirectoryて」

    /boot filesystem
    /usr/bin filesystem
    /root filesystem
    /bin filesystem

なぜこれらを参照するのfilesystemsでしょうか?

それらの各パーティションがある場合は、理由は私が知っている、これまでと同じよう混乱私/usr/usr/bin同じパーティションにする傾向があるが、私は人々を見たが、両方を参照/usr filesystemして/usr/bin filesystem

filesystemここがWindowに相当する場合directory、ファイルシステムは単なるディレクトリ以上のものであるように見えるので、私にはわかりません。また、私が知る限り、Linuxにはdirectory概念がありません。すべてはファイルです。


「/ rootファイルシステム」のインスタンスを見たことがない。「/」にマウントされているファイルシステムはすべて「ルートファイルシステム」です。最近のLinuxディストリビューションでのその他のマウントポイントは、「/ boot」、「/ home」、および「xx」のさまざまな値の「/ mnt / xx」または「/ media / xx」です。カーネル2.x +(?)ディストリビューションには「/ proc」と「/ sys」があり、Systemdにはさまざまな数値UID nnnnのマウントポイント「/ var / run / nnnn」があります。古いUnixインストールでは、NFSを介して「/ usr」をマウントできますが、個人のLinuxディストリビューションではそうなることはほとんどありません。「/ bin」と「/ usr / bin」は通常、別個のマウントポイントではありません。
デビッド

あり/ルートは、ありませんか?別のファイルシステムにとどまることはありませんか?
ケニー

右。「/ root」はユーザー「root」の標準のホームディレクトリですが、通常はルートファイルシステム上の別のディレクトリにすぎません。
デビッド

このトピックはAsk Ubuntuで広範囲に議論されてきました。IMNSHOは馬鹿げています。なぜなら、Ubuntuでは他のUnixやLinuxの概念と変わらないからです。たとえば、「マウント」とは何ですか?ほんの数日前に尋ねられました。
スコット

私は質問に非常に感銘を受けました。現時点ではすでに多くのことを理解できており、「/ root filesystem」はパーティションがマウントされているファイルシステムを参照しているという結論を逃したということを知っている/rootため、状況。
erikbwork

回答:


13

https://superuser.com/a/293160/38062で書いたように:

ここでの問題は、「ファイルシステム」という言葉です。POSIX / Unix / Linuxの世界では、いくつかの異なることを意味するために使用されます。

  1. 「ファイルシステム」は、ファイルのシステム全体である場合があり/、オペレーティングシステムカーネルによってアプリケーションソフトウェアに根ざし、提示されます。この意味で、人々は、例えば「単一のファイルシステムツリー」を持つPOSIXオペレーティングシステムについて話します。
  2. 「ファイルシステム」とは、ディスクパーティションによって区切られた、1つ(または複数)のDASDの1つ(または複数)のスライス(特定の形式の単一ボリュームとしてフォーマットされた連続したディスクセクターの1つ以上のコレクション)のことです。スキーム。この意味で、人々は「私の/usrファイルシステムをフォーマットする」と言っています。" /usr"は、ボリュームの(予想される)マウントポイント、または(一部のパーティションスキームで)その識別ラベルです。
  3. 「ファイルシステム」とは、ファイルシステムドライバー(つまり、VFSレイヤー)によってシステムの残りの部分に提示される、ファイルとディレクトリの抽象的な結合可能なツリーです。この意味で、人々は、たとえば、「procファイルシステムをマウントする/proc」または「tmpfsファイルシステムを使用する」と言います/tmp

/usr/binファイルシステム」と表示されている場合、意味#1が表示されています。これは、ディレクトリをルートとするファイルシステムツリー/usr/binです。はい、Linuxは非常に多くありませんディレクトリの概念を持っています。

意味#2と意味#3は、あなたがそれを誤解していることです。人々は、ディスクのスライシング/パーティショニングによって区別される、ディスク上のデータセットとして話をしていません/usr/bin。また/usr/bin、特定の種類のファイルシステムドライバー、または特定のディスクボリューム形式についても話していません。

参考文献

  • Ramesh Bangia(2010)。"ファイルシステム"。 情報技術辞書。Laxmi Publications、Ltd. ISBN 9789380298153. p。224。
  • ファイルシステム。「ベース定義」。 オープングループベース仕様。問題7 IEEE 1003.1。オープングループ。2013年。
  • ビングエン(2004-08-16)。"ファイルシステム"。 Linux辞書。バージョン0.16。p。616。

7

もちろん、Linuxはディレクトリの概念を使用しています。ディレクトリの概念は、Windowsと同じです。

ファイルシステムの概念も、Windowsで使用されているものと非常に似ています。Windowsは通常NTFSまたはFATを使用します。Linuxは通常ext2、ext3、ext4などを使用しますが、それはすべて違いです。

違いは、Linuxでは、利用可能なすべてのパーティションのファイル/ディレクトリが単一のツリーに編成されていることです。Windowsでは、文字「fe:a:」、「c:」を使用して異なるパーティションを参照します。Linuxでは、ルートディレクトリである「/」で始まる使用可能なファイルへのフルパスです。たとえば、hddにはシステムを起動するために必要なファイルを含む個別のパーティションがあります。適切な引数を指定して 'mount'コマンドを実行すると、このパーティションの内容が "/ boot /"パスで利用可能になります。そのため、「/ boot」および「/ home」パスは異なるパーティション上のデータを参照する場合があり、これらのパーティションは異なるファイルシステムを持つ場合があります。おそらくあなたの誤解を引き起こしました。

物理的に同じパーティションに配置されているディレクトリは、常に「同じファイルシステムを持っています」。誰かがディレクトリのファイルシステムについて話すとき、それは実際にこのディレクトリが置かれているパーティションのファイルシステムについてです。

(軽微で、おそらく重要ではない修正:ファイルシステムが仮想であり、対応するパーティションがない場合があります。たとえば、「/ proc」にはファイルに非常によく似た何かが含まれますが、これらの「ファイル」は仮想ではなく、任意のハードドライブ、実行中のプロセスに関する情報が含まれます。また、このデータへの通常のファイルのようなインターフェイスを提供する特別な「procfs」ファイルシステムがあります)


「ディレクトリのファイルシステム」とおっしゃいましたが、すべてのサブディレクトリにカスケードしますか。1つのディレクトリとそのサブディレクトリが異なるファイルシステムを持つことは可能ですか?たとえば、/ a/ a / bは、/ bを持つファイルシステムF1にマウントされ独自のファイルシステムF2を持つ別のパーティションですか?
ケニー

同じパーティションにあるディレクトリが実際に同じファイルシステムの一部であるかどうかに関しては、ZFSやbtrfsなどの非常に現代的なファイルシステムでは少しあいまいになります。独自の完全に異なるマウントポイントを使用して、複数のファイルシステムが共有するZFSボリュームを作成できます。
チャールズダフィー

@Kennyはい、あなたは正しいです。ライブの例:CDドライブにコンパクトディスクを挿入します。私のLinuxはCDを「/ mount / cdrom」にマウントします。「/ mount」ディレクトリ(およびその中に作成するファイル)は、ハードドライブにあります。ただし、「/ mount / cdrom」の内容はすでにCDに収録されています。
レスニック

6

ディスクは1つ以上のパーティションに分割されます。Windowsの場合、通常は1つだけで、リカバリパーティションがどこかに隠れている場合があります。パーティションは、ディスクの論理的に連続した領域、たとえば「セクター1〜10,000,000」です。

パーティション上にファイルシステムを構築できます。Windowsの場合、これはNTFSまたはFATです。Linuxの場合、これはextバージョンまたは他のさまざまなオプションの1つです 。

ファイルシステム内にはファイルとディレクトリがあります。Linuxにはディレクトリがありますが、ディレクトリがなかったという考えをどのようにして得たのかわかりません。

オペレーティングシステムは、複数のディスク上の複数のパーティションをユーザーにどのように提示しますか?Windowsでは、これはで行われたドライブ文字C:D:など上のLinux、何のドライブ文字とすべてがで行われているが存在しないマウントポイント。特定のディレクトリで、異なるファイルシステムへの再ルーティングアクセス(+)多くの場合、あなたがCDを挿入する場合は:またはUSBスティックは、それが下のどこかに表示されます/media/mnt

/usrそして/usr/bin、通常は同じファイルシステム上になりますが、である必要はありません。人々は、/usr/binそのフレージングを使用するときに「ディレクトリを含むファイルシステム」を意味する場合があります。

(+)NTFSジャンクションポイントでもこれを行うことができますが、ほとんどの人は行いません。ドライブ文字がなくなるまで。


間違っている場合は修正してください:Linuxでは、1つの物理ディスクを複数のパーティションに分割できます。各パーティションには独自のファイルシステムがありますか?Windowsのハードディスクに複数のパーティションが含まれる方法と同様に、1つはFATで、もう1つはNTFSですか?
ケニー

1
はい、あなたは正しいです。しかし、それは類似していません、それはまったく同じ基礎メカニズムです。デュアルブートマシンでは、同じディスク上にNTFSパーティションとext3パーティションがあり、各オペレーティングシステムのディスクマネージャーは同じパーティションセットを認識します。Windowsがファイルを見るためにext3パーティションをマウントするのを見ることができないというだけです。
pjc50

3

Linuxシステム全体を1つのパーティションに保持し、すべてのサブディレクトリを1つのファイルシステムに保持することができます。

また、特定のディレクトリサブツリーが異なるファイルシステムにある複数のパーティションに分散させることもできます。例えば、それは置くのが一般的だ/home/tmp/usr、と/var別のファイルシステム上で。あなたの質問の1つに対処するために、時には/usr/bin独自のファイルシステムにもあります。

このスキームには利点があります。たとえば/var、大量のメールでいっぱいになった場合、システムの残りの部分は影響を受けません。同様に、クラッシュなどによって1つのファイルシステムが破損した場合でも、他のファイルシステムは問題なく、システムを簡単に回復できます。

システムが起動すると、最初はルートファイルシステムのみが使用可能になります。そこに保持されているプログラムは、起動プロセス中に実行されます。これらのプログラムの1つであるが、ファイルシステムファイルテーブルのmountデータを使用して数回実行され /etc/fstabます。一例を挙げると、元 /homeは、ルートファイルシステム内の通常のディレクトリです。次に、このコマンドをルートとして実行します。

mount /dev/sda7 /home

これにより、パーティション上のファイルシステムをディレクトリにマウントする/dev/sda7 必要があることがシステムに通知/homeます。そのため、現在、そのファイルシステム内のすべてがの下にあると見なされます/home

を実行すると、現在マウントされているものを確認できますdf


3

filesystemsこれらのディレクトリはマウントポイントであることがあるため、これらをとして参照することがあります。あなたが尋ねた唯一の質問については...

filesystem 2つの異なるものを参照できます...または実際には同じものの2つの非常に異なる側面を参照できます。

  1. 記憶媒体上のデータを整理するために使用される論理構造。
  2. プロセスにデータへの統合アクセスを提供するためにOSが使用する方法論。

ファイルとディレクトリの概念は比metaです。コンピューターにはデータのみがあり、すべてのメディアはデータを保持できるデバイスに他なりません。データの読み取りと書き込みを許可するデバイス(HDDなど)、データの読み取りのみを許可するデバイス(CD-ROMなど)、データの書き込みのみを許可するデバイス(プリンターなど)もあります。ファイルとディレクトリのメタファーを使用してデータを構造化するため、すべてを同時にではなく、小さなデータの塊にアクセスできます。

ext4、xfs、fatなどのストレージメディアに配置したファイルシステムが構造化の部分を行います。これらを使用して、データのチャンク(ファイル)にラベルを付け、すべてのラベル(ディレクトリ)の一貫した構造化リストを作成します。構造化リストは実際にはツリーです。最も重要な側面は、ツリーのルートが1つだけであるということです。この構造を維持し、データがアクセス可能であり、アクセス可能な状態を維持することは非常に重要なタスクであり、ファイルシステムのフレーバーが1つだけではないのはこのためです。

ファイルシステムのもう1つの側面は、ストレージデバイスに保存されたデータをすべてのプログラムからアクセス可能にすることがOSの仕事であることです。これは、次の2つのことで実現されます。

  1. OSは、ファイルおよびディレクトリにアクセスして対話するための、正確に1つの(プログラミング)インターフェイスを提供します。プログラム/プロセスの場合、ストレージデバイス上のファイルシステムがext2、xfs、fat、その他のいずれでもかまいません。プログラム/プロセスは、ファイルとディレクトリに一定の方法でアクセスします。

  2. OSは、すべてのストレージメディア、つまりファイルシステムを1つの上位構造に編成します。プログラムは、この上位構造を介してファイルとディレクトリにアクセスし、ストレージデバイスと直接対話する必要はありません。そうすれば、プログラムはデータが実際に存在するデバイスを気にする必要がありません。この上位構造は、多くの場合、カーネルの「仮想ファイルシステム」と呼ばれます。

ストレージデバイスのファイルシステムを仮想ファイルシステムに追加することを、ファイルシステムの「マウント」と呼びます。Linuxの起動時に、カーネルは仮想ファイルシステム(VFS)を作成します。作成直後は空であり、そのエントリポイント(別名ルート)のみで構成されてい/ます。次に、カーネルはVFSのルートにファイルシステムをマウントします。これは、ramdiskであるか、またはハードドライブ上のパーティション上のファイルシステムです。VFSのルートに追加されるため、このパーティションはしばしばルートファイルシステムと呼ばれます。

ここで、線がぼやける部分があり、ストレージデバイス上のファイルシステムとカーネルのVFSが実際には同じOSタスクの2つの側面であることがわかります。ルートパーティションに存在します。ただし、すべてのディレクトリを「マウントポイント」にすることができます。マウントポイントは、VFSがエントリポイントをストレージデバイス上のファイルシステムに配置する場所です。これは、ディレクトリにファイルシステムをマウントするたびに、そのディレクトリに保存されているデータにアクセスする代わりに、別のストレージデバイスのデータにアクセスすることをVFSに伝えることを意味します。通常、マウントポイントは空のディレクトリであるため、他のファイルシステムを最上部にマウントしてデータにアクセスできなくなることはありません。

OSをインストールするときに、すべてのデータを1つのファイルシステムに配置してからルートファイルシステムにするか、データを複数のファイルシステムに分割するかはユーザー次第です。後者では、すべてのデータにアクセスできるようにするために、OSが個々のファイルシステムをすべてマウントする必要があります。どのように物事を分割するかは、システムの設計方法の問題です。これが、インストールから知っているディレクトリがファイルシステムと呼ばれることがある理由です。

通常自宅にあるコンピューターの場合、インストールを複数のファイルシステムに分割する必要はもうありません。それでもそうする理由はありますが、これはこの投稿の範囲外です。

この投稿の残りを短くするために:パーティションは、ストレージデバイス上のデータを構造化するもう1つの手段です。パーティションを使用すると、物理ストレージデバイスから連続したストレージスペースが切り出され、個別のストレージデバイスとしてOS(ファイルシステムをVFSにマウントできる)に提供されます。これを行う理由の1つは、ハードドライブが1つしかないが、多くの異なるファイルシステムを使用したいということです。ルートファイルシステムが存在するパーティションは、多くの場合、ルートパーティションと呼ばれます。


1

あなたは少し混乱しています。Filesystemストレージデバイス上、またはハードドライブやCD-ROMなどの大容量メモリ上、場合によってはRAM上にもファイルを配置して整理するメカニズムを示します。

Windowsでも、NTFSまたは以前のファイルシステムを使用していますFAT

あなたの例は、マウントポイントという名前のディレクトリにマウントされた異なるファイルシステムで構成された独自のシステムを持つためのLinuxおよびUNIXシステムの一般的なプラクティスを示しています。これにより、問題が発生した場合、すべてのファイルシステムではなく1つ以上の損害を制限できます。

そのため、FSはディレクトリと同等ではありません。また、Linuxには特別な種類のファイルであるディレクトリがあります。

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