Ich suche nach einer Möglichkeit, einen vorhandenen Linux-Kernel ohne initramfs zu booten. Laut diesem Link sollte es einfach durch Bearbeiten möglich sein /boot/grub2/grub.cfg
. Aber wenn ich diese Konfiguration versuche
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
}
Der Startvorgang wird mit einer Kernel-Panik an dem Punkt beendet, an dem der Kernel versucht, die initramfs bereitzustellen. Muss ich während des Kompilierungsprozesses mitteilen, dass ich kein Initramfs möchte? Die einzige Konfigurationsoption, die ich gefunden habe, ist CONFIG_INITRAMFS_SOURCE
die, die bereits eingestellt ist CONFIG_INITRAMFS_SOURCE=""
.
Ich weiß, dass es eine ähnliche Frage gibt, aber es fehlt eine Erklärung, wie man es in der Praxis macht.
linux
boot
linux-kernel
grub2
kernel-modules
JohnnyFromBF
quelle
quelle
Antworten:
Initramfs verfügt über alle erforderlichen Informationen, die das Betriebssystem zum Starten des Systems benötigt. Es enthält alle Informationen zum Dateisystem (z. B. welche Geräte von und welche Geräte über Root-Fs verfügen, die für den Systemstart bereitgestellt werden müssen) und den Inhalt werden kernelspezifisch generiert. Sie können von einem anderen Image booten, das alle erforderlichen Informationen enthalten sollte.
Vmlinux, das Sie verwenden möchten, ist ein statisch verknüpftes Image. Es kann nicht vom System gestartet werden. Nach meinem besten Wissen wird es hauptsächlich zum Generieren und Debuggen von Symbolen verwendet.
Es ist nicht so, dass es nicht zum Booten verwendet werden kann, aber es muss bootfähig gemacht werden, bevor es verwendet wird. Da es keine Bootsektorinformationen enthält.
quelle