ルート "/"ファイルシステムと同じファイルシステムに存在する必要があるディレクトリは何ですか?

ルート "/"ファイルシステムと同じファイルシステムに存在する必要があるディレクトリは何ですか?

私は読んだ記事"bin" "dev" "etc" "lib" "root" "sbin" ディレクトリは、ルートディレクトリと同じファイルシステム上になければならないと明記されています。つまり、別のファイルシステムとしてマウントしてはいけません。

たとえば、現在多くのディストリビューションでは、「sbin」、「bin」、および「lib」ディレクトリが「usr」ディレクトリにシンボリックリンクされているという点で少し混乱しています。

lrwxrwxrwx   1 root root     7 Apr 30 18:19 bin -> usr/bin
...
lrwxrwxrwx   1 root root     7 Apr 30 18:19 lib -> usr/lib
lrwxrwxrwx   1 root root     9 Apr 30 18:19 lib32 -> usr/lib32
lrwxrwxrwx   1 root root     9 Apr 30 18:19 lib64 -> usr/lib64
lrwxrwxrwx   1 root root    10 Apr 30 18:19 libx32 -> usr/libx32
...
lrwxrwxrwx   1 root root     8 Apr 30 18:19 sbin -> usr/sbin

ただし、この記事では、「/」ディレクトリとusrディレクトリを同じファイルシステムに配置する必要はありません。前の質問も読みましたが、まだ混乱しています。同じファイルシステムに存在するディレクトリは何ですか?別々のファイルシステムに残す必要があるディレクトリは何ですか?

答え1

現在の考えは/usrこれがに統合されるべきであり/、一部のディストリビューションは見てわかるように、同等のものにシンボリックリンクだけを/bin接続しなければならないということです。例えば/sbin/lib/usr/usrDebian、次のバージョンからマージのみがサポートされます(読書光)Fedoraは2012年にFedora 17でマージを完了したようです。

基本的に、これについての議論は次のように要約されているようです。

  • とにかく、それがシステムを使用可能な状態にする作業initramfsなので、そうする必要はありません。その他これを行う「最小」システム
  • とにかく分割は実際には機能しません。インストールされたプログラムが/usr/binライブラリに依存する可能性があるため、/lib完全に独立していないためです。
  • 分裂の全体的な概念は、元の原因が無意味になった後も長い間存在し続ける歴史的思考です。

とにかく、ファイルシステムはそれほど/小さくありません。たとえば、古いプリマージシステムの場合/bin、およびに600 MB未満のファイル/sbinがありました。 (しかし、そこにはXまたはGUI項目はありません。)他のシステムでは、もう少し大きくすると約2GB程度になりますが、それでも現在のストレージ容量には問題ありません。また、initramfsファイルは約15MBと重要なほど小さく、initramfsには修正する必要があるものがないため、半分にインストールできます。/lib/usr/usr/etc

/bin同じシステムを見ると、間のユーティリティの区別は/usr/bin少しランダムに見えます。例えばsh、 とbashare in /bin(明らかに) もそうです。grepしかし、例えばawkheadwcare zshinです/usr/bin。最新のシステムが起動のためにシェルスクリプトに依存しすぎるわけではなく、ファイルシステムの残りの部分をマウントするために必要なものには、より制限されたツールセットが必要です。 Zshが好きな管理者は、ファイルシステムに問題があるときにログインできないと気分が悪くなる可能性があります。

分裂の起源に関する話は次のとおりです。

[1970年代初頭の元のUnixシステム]が大きすぎて、最初のRK05ディスクパック(ルートファイルシステム)を収納できなくなると、2番目のディスクパックに流出しました。 (そのため、マウントは/usrと呼ばれます。)元のディスクに十分なスペースがないため、そのディレクトリ(/bin、/sbin、/lib、/tmp...)の下のすべてのオペレーティングシステムディレクトリをコピーし、これらの新しいディレクトリにファイルを書きました。

(BusyboxメーリングリストのRob Landleyからの投稿です。bin、sbin、usr/bin、usr/sbin 分割の理解、少し修正されました。同じメッセージでこの問題について詳しく説明します。 )

systemdの人々はこれについて次のような考えを書きました。

答え2

/bin対/usr/binの問題は古い問題です。アイデアは、オペレーティングシステムの実際のサブセットが/ usrパーティションをマウントできるようにすることです(それを別々に維持する場合)。古いPC BIOSにはセクタ制限があり、非常に小さい/パーティションを選択するので、これは役に立ちます。

今日、これらの区分はもはや適切ではありません。 Linuxは、オペレーティングシステムをロードするために必要なすべてを小さなinitramfsアーカイブに保存します。このアーカイブは、必要に応じてGrubといくつかの素晴らしいモジュールを介してロードできます(単純な汎用区切り/ bootパーティションも持つことができます)。

関連情報