Necesitamos configurar un servidor EFI PXE. Logré lograr que una máquina de prueba se iniciara completamente hasta llegar a la parte pivot_root del proceso de inicio. Entonces me llega lo temido:
VFS: Cannot open root device "nvram" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
Y sí, la lista de particiones es nil
.
¿Alguien puede decirme cómo puedo obtener el dispositivo root= para mi configuración de grub heredada para máquinas centos sin disco? Obviamente ya lo he probado /dev/nvram
y /dev/ram
.
Cuando arrancamos PXE (modo heredado) no hay ningún problema ni configuraciones especiales que soliciten un dispositivo raíz. Simplemente funciona. Esta es la primera vez que trabajo con el arranque EFI, así que estoy seguro de que me faltan algunos parámetros.
Configuración actual: CentOS 6.8, Legacy Grub (bootx64), ISC DHCP, TFTP
Configuración EFI actual (/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
ARREGLO FINAL
Entonces el problema fue que estaba usando la sintaxis incorrecta para la configuración heredada de GRUB. Gracias a #CENTOS en Freenode (IRC), uno de los miembros (disculpas, no recuerdo su nick) señaló que Legacy GRUB no entiende la append
directiva. Entonces, moviendo los argumentos en la append
cadena de mi configuración (arriba) a la kernel
directiva y perdiendo la append
cadena en la initrd
línea, y finalmente, eliminando el =
entre initrd
y /discover...
, solucionó el problema:
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
Respuesta1
AFAICT (pero mi propio experimento es más con Windows sin disco, incluso si comenzamos a migrar nuestra solución sin disco a Windows antes de que esta gran empresa de TI de dos letras la eliminara...), es posible que necesite algo diferente. 1 - No especifique ningún "root=" en la línea del kernel 2 - use una línea initrd (y la unidad ram de inicio relacionada, que debe compilar) 3 - en este initrd, inicie cualquier dispositivo de bloque y controlador de sistema de archivos que necesite montar su partición raíz (y otras particiones también)
Consulta esta página: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html por ejemplo