Linuxのブートプロセスでは、ルートファイルシステムであるinitrd
があり、実際のルートファイルシステムをマウントする準備ができる前にマウントされます。取り付け手順は?ファイルシステムがマウントされていると言えるようにするにはどうすればよいですか?そして、なぜ「ファイルシステム」ではなく「ルートファイルシステム」と言うのでしょうか。
起動時にマウントされるファイルシステムは他にもたくさんある可能性があるため、「ルートファイルシステム」と表示されます。ルートまたは/
は、WindowsのCドライブに似ています。ファイルシステムは、マウントポイントを介して上位レベルのシステム機能にアクセスできるときにマウントされます。
取り付けのプロセスについて...あなたが望む答えがどれほど技術的かわからないので、この過度の単純化に腹を立てないでください。これは私が私の顧客にそれを説明する方法です:フラッシュドライブを接続します。
/dev/sdb
)/dev/sdb
をプローブし、プライマリパーティションにあるパーティションテーブルを見つけます/dev/sdb1
)/dev/sdb1
をプローブし、FAT32ファイルシステムを認識します/dev/sdb1
にある新しいマウントポイント(/media/pendrive/
など)にマウントします。デバイスのコンテンツ(生データ)は、0と1の集まりにすぎません。デバイスをマウントするとき、システムはそれらの0と1の上に「読み取り/書き込みフィルター」のようなものを追加します。これは0と1を実際のファイルに、またはその逆に変換します。
例:「HelloWorld」を/media/pendrive
のテキストファイルに保存すると、フィルターはこれをファイルシステムのルールに従って変換し、最後に一連の0と1を変換して/dev/sdb1
に書き込みます。
* nixシステムでは、ファイルシステムが/
にある必要があります。これはrootとも呼ばれます。 initrdの場合、ルートはinitrd内の仮想ファイルシステムです。システムは「ピボットマウント」を実行する必要があります。これにより、実際のファイルシステムがルートにマウントされ、その下にinitrdファイルシステムが再マウントされます。
マウントの実際の動作は、カーネル内のVFSにファイルシステムを登録するだけなので、特定のディレクトリ内のファイルを見つけるためにどこを探すべきかがわかります。