
私はライブ Linux ディストリビューションで作業していますが、プログラムをコンパイルすると、init ファイルのサイズが 1.1G になり、起動しようとすると grub が次のように表示しますError 28: Selected item cannot fit into memory
。
他の大規模ディストリビューションはどのようにしてプログラムをロードするのでしょうか?
答え1
一般的に、他のディストリビューションしないすべてを initrd に入れます。別のイメージ (ext4 の場合もありますが、より一般的には .squashfs) から実際の rootfs をマウントする非常に小さな initrd のみがあり、これは「インストール済み」システムが initrd を使用して rootfs をマウントするのとまったく同じ方法です。
この方法では、大きな rootfs は GRUB ではなく Linux カーネルによって処理されるため、GRUB 環境の制限を受けず、オンデマンドでページインできます (Linux は 1.1 GB 全体をメモリにロードする必要はありません)。