this document /bin
および/sbin
には、システムの起動と修復のための最小限のファイルが含まれており、/usr
は個別のパーティションであるため、修復のために簡単にマウント解除できます。
ただし、パーティションに関する this infoに従って、ブートに不可欠なすべてのディレクトリ(/boot
を除く)は、/
と同じパーティション上にある必要があります。これらの重要なディレクトリは/etc
および/usr
です。
この2つのドキュメントは矛盾しています。
/bin
と/sbin
は起動に必須ですが、なぜ/etc
と/usr
だけが2番目のリンクで必須であると言われていますか?システムは/bin
および/sbin
のみを使用してシングルユーザーモードで起動できますが、フルモードの場合は/usr
および/etc
も必要ですか?/usr
と/etc
がrootと同じパーティション上にある必要があるのに、/boot
、/bin
、および/sbin
ではないのはなぜですか/usr
を読み取り専用にすることができますか?私の知る限り、/usr/bin
はパッケージマネージャーによってバイナリを格納するために使用されます。/bin
と/sbin
には、/
をマウントする場合、他のファイルシステムをマウントするためのコードが含まれていると読みました。 ISそれはgrubによって行われましたか?あなたは2006年からドキュメントを読んでいますが、彼らの中で言及されている実践は矛盾しているように見えるという考えは驚くことではありません。
しかし、Linuxディストリビューションの最新の状況を考えてこれに答えましょう。
それがあなたのポイントのそれぞれを考慮できることを考えると:
これは、init.dを含むサービスマネージャーがプログラムのホスト構成と共有(ユーザー)/ usr/binの両方を必要とするためです。 2番目のリンクは、通常の起動時と同様に、最初のリンクがシステム回復などの管理タスクを参照していることを意味します。コンテキストを考えると両方とも正しいです。
最近のLinuxには/ usr/binに/ binがありませんが、2番目のドキュメントで必須と見なされています。/bootには同じパーティション上にある必要はありません。ブートローダーのデータが含まれているため、Linuxはブートローダーの後にブートするときに必ずしも必要ではありません。さらに/ bootは通常、ブートローダーがサポートするファイルシステムを備えた別個のパーティションになります。これは/ sbinを残すだけで、Linuxカーネルはある時点でinitを呼び出しますが、ファイルシステムはinitramの一部としてマウントされます。/etc/fstabに含まれる情報には、/ sbin/initが呼び出される前に/ sbin /がマウントされる場所が含まれている場合があります。
2番目のリンクは、実際には/ usrが読み取り専用でマウントされる必要があると言っているのではなく、アプリケーションの観点から読み取り専用であることが意図されています。ただし、ソフトウェアのインストールおよび更新の管理タスクの一部として、ファイルは引き続き変更されます。ここにデータを書き込むためのパッケージマネージャーなどの特定のツール。
GRUBはファイルシステムを認識していますが、Linuxの観点からはそれほど重要ではないことに注意してください。たとえば、Androidでは、カーネル(システムプログラム)とinitramはファイルシステムのないパーティションに保存されます。次に、ブートローダーがLinuxとinitramをメモリにロードし、Linuxを呼び出します。 Linuxは、initramからルートをマウントします。 initramには、ハードウェアにアクセスしてルートファイルシステムをマウントするために必要なカーネルモジュールとソフトウェアが含まれており、ブートローダーから渡されたため、これを行うための設定は必要ありません。ただし、/ etc/fstabなどのファイルにアクセスし、必要に応じて/ sbin/initを呼び出す前に/ sbinをマウントします。
次のディレクトリは、独自のパーティションに配置しないでください。
/ etc/fstabにマウントが正しく記載されていれば、他のディレクトリを別のパーティションに配置できます。ただし、これを行うと、パフォーマンスに大きな影響を与える可能性があります。
Grubカーネルとinitramfs(初期RAMファイルシステム)をロードします。ドライブをチェックしてマウントし、ブートプロセスを開始するのはinitramfsです。
注:/etc
にはシステム構成ファイルが含まれています。マウントポイントを指定するfstab
を含みます。 initramfsがこれをどのように処理するのかわかりません。しかし、私は、/etc
をリストに追加する必要があると言うでしょう。なぜなら、/etc
を別のパーティションに移動するために、ブートファイルまたはカーネルの変更が必要だからです。
これはsystemdによって導入されたリグレッションであり、デスクトップ環境へのより緊密な統合があり、したがってブート時にライブラリとデーモンが必要であり、従来のUnixシステムでは最小コアシステムの一部とは見なされません。
最新のハードウェアでは、個別の/usr
パーティションは通常ほとんどのユーザーにとって価値がないため、許容できるトレードオフと見なされます。