web-dev-qa-db-ja.com

initramfsなしでLinuxを起動する方法は?

Initramfsなしで既存のLinuxカーネルを起動する方法を探しています。 このリンク によると、/boot/grub2/grub.cfgを編集するだけで可能になるはずです。しかし、私がこの設定を試してみると

menuentry 'Fedora Linux, no initramfs' {
   set root='hd0,msdos1'
   linux    /vmlinuz-3.3.4-5.fc17.i686.PAE rootfstype=ext4 root=/dev/sda2 rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8
}

ブートプロセスは、カーネルがinitramfsをマウントしようとした時点で、カーネルパニックで停止します。コンパイルプロセス中に、initramfsが不要であることを通知する必要がありますか?私が見つけた唯一の設定オプションはCONFIG_INITRAMFS_SOURCEで、これはすでにCONFIG_INITRAMFS_SOURCE=""に設定されています。

同様の質問 があることは知っていますが、実際にそれを行う方法の説明が不足しています。

7
JohnnyFromBF

Initramfsには、OSがシステムを起動するために必要なすべての情報があります。すべてのファイルシステム情報(どのデバイスからのデバイスか、どのデバイスにシステムを起動するためにマウントする必要があるルートfsがあるかなど)と内容があります。カーネルに固有に生成されます。必要な情報がすべて含まれているはずの別のイメージから起動できます。

使用しようとしているVmlinuxは静的にリンクされたイメージです。システムの起動には使用できません。私の知る限り、これは主にシンボルの生成とデバッグに使用されます。

起動に使用できないわけではありませんが、使用する前に起動可能にする必要があります。ブートセクタ情報がないためです。

1
amitam