3

bootLinuxプロセスに関連する質問があります。Initramfsロードされた第 1 段階のルートファイル システムです。iniramfs 内の init プロセスは、実際の rootfile システムをハードディスクから / ディレクトリにマウントする役割を果たします。

今私の質問はwhere is / directory created by init(initramfsのinitプロセス)実際のルートパーティションをマウントすることです。それはRAMまたはハーディスクにありますか?

また、実際のルート パーティションがマウントされると、initramfs はどうなりますか?

initramfs が RAM から削除された場合、initramfs によって作成された / フォルダーはどうなりますか?

提案してください、いくつか説明できますかhow does this magic works

//アラン

4

2 に答える 2

2

/sbin/init (initramfs の) が行うことは、ファイルシステムと必要なモジュールをロードすることです。次に、対象の実際の「rootfs」をロードしようとします。次に、initramfs から実際の rootfs に切り替え、「/」はハードディスク上にあります。「/」は、システムをインストールし、ハードドライブをフォーマットしたときに作成されます。ファイルシステムのコンテンツを読み取るためのものであるため、必要なモジュールを最初にロードすることが前提条件であることに注意してください。「/」のext3パーティションがある場合、ext3.koがロードされます。

2 番目の質問への回答 - 必要な fs モジュールのロードを行った後、initramfs の init から実際の rootfs の init に切り替わり、通常の起動プロセスが開始され、initramfs がメモリから削除されます。この切り替えは、pivot_root() によって行われます。

3 番目の回答 - initramfs はディレクトリを作成せず、既存の initramfs.img イメージを RAM にロードするだけです。

つまり、要するに iniramfs または rootfs をロードすることは、ディレクトリを作成することではなく、既存のファイルシステム イメージをロードすることです。起動直後 - initramfs を使用して、実際のファイルシステムを読み取ることができるかのように、必要なファイルシステム モジュールをロードします。それが役立つことを願っています!

于 2013-06-12T07:56:16.420 に答える
1

initrd には 2 つのオプションがあります。

  1. pivot_rootを使用して最終的なファイルシステムを所定の位置に回転させる、または

  2. ルートを空にし、最終的なファイルシステムをその上にマウントします。

詳細については、こちらをご覧ください

于 2013-06-12T07:05:35.703 に答える