Wir müssen einen EFI PXE-Server einrichten. Ich habe es erfolgreich geschafft, eine Testmaschine bis zum Pivot_Root-Teil des Bootvorgangs zu booten. Dann bekomme ich das gefürchtete:
VFS: Cannot open root device "nvram" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Und ja, die Liste der Partitionen ist nil
.
Kann mir jemand sagen, wie ich das Root-Gerät für meine alte Grub-Konfiguration für CentOS-Maschinen ohne Festplatte bekomme? Ich habe es offensichtlich bereits mit /dev/nvram
und versucht /dev/ram
.
Beim PXE-Booten (Legacy-Modus) gibt es kein Problem und auch keine speziellen Einstellungen, die ein Root-Gerät anfordern. Es funktioniert einfach. Dies ist das erste Mal, dass ich mit EFI-Booten arbeite, daher bin ich sicher, dass mir einfach ein paar Parameter fehlen.
Aktuelles Setup: CentOS 6.8, Legacy Grub (bootx64), ISC DHCP, TFTP
Aktuelle EFI-Konfiguration (/EFI/efidefault):
default=0
timeout=3
splashimage=(nd)/splash.xpm.gz
#prompt 0
#ONTIMEOUT default
title Linux
menu label UEFI Image
menu default
root (nd)
kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 root=/dev/nvram
append initrd=/discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216
ENDGÜLTIGE BEHEBUNG
Das Problem bestand also darin, dass ich die falsche Syntax für die Legacy-GRUB-Konfiguration verwendete. Dank #CENTOS in Freenode (IRC) wies eines der Mitglieder (Entschuldigung, ich erinnere mich nicht an seinen/ihren Spitznamen) darauf hin, dass Legacy-GRUB die append
Direktive nicht versteht. Das Verschieben der Argumente in der append
Zeichenfolge meiner Konfiguration (oben) in die kernel
Direktive und das Entfernen der append
Zeichenfolge in der initrd
Zeile sowie das Entfernen des =
Zwischenzeichens initrd
und /discover...
löste das Problem:
default=0
timeout=3
splashimage=(nd)/splash.xpm.gz
title Linux
menu label UEFI Image
menu default
root (nd)
kernel /discovery_images/2.6.32-642.el6.x86_64/vmlinuz-2.6.32-642.el6.x86_64 rw shell init=/init biosdevname=0 consoleblank=0 vga=773 ramdisk_size=9216
initrd /discovery_images/2.6.32-642.el6.x86_64/centos-initramfs-2.6.32-642.el6.x86_64.img.gz
Antwort1
Soweit ich weiß (aber mein eigenes Experiment bezieht sich eher auf festplattenloses Windows, auch wenn wir begonnen haben, unsere festplattenlose Lösung auf Windows zu portieren, bevor sie von diesem großen IT-Unternehmen mit zwei Buchstaben abgeschafft wurde...), benötigen Sie möglicherweise etwas anderes. 1 – Geben Sie in der Kernelzeile kein „root=“ an. 2 – Verwenden Sie eine Initrd-Zeile (und das zugehörige Init-RAM-Laufwerk, das Sie erstellen müssen). 3 – Initialisieren Sie in diesem Initrd alle Blockgeräte und Dateisystemtreiber, die Sie zum Mounten Ihrer Root-Partition (und auch anderer Partitionen) benötigen.
Schauen Sie sich diese Seite an: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html zum Beispiel