Precisamos configurar um servidor EFI PXE. Consegui fazer com que uma máquina de teste inicializasse até chegarmos à parte pivot_root do processo de inicialização. Aí eu recebo o temido:
VFS: Cannot open root device "nvram" or unknown-block(0,0)
Please append a correct "root=" boot option; here are the available partitions:
E sim, a lista de partições é nil
.
Alguém pode me dizer como obter o dispositivo root= para meu legado grub conf para máquinas centos sem disco? Obviamente, eu já tentei /dev/nvram
, e /dev/ram
.
Quando inicializamos PXE (modo legado), não há problema ou configurações especiais solicitando um dispositivo raiz. Simplesmente funciona. Esta é a primeira vez que trabalho com inicialização EFI, então tenho certeza de que estão faltando alguns parâmetros.
Configuração atual: CentOS 6.8, Legacy Grub (bootx64), ISC DHCP, TFTP
Configuração EFI atual (/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
CORREÇÃO FINAL
Portanto, o problema é que eu estava usando a sintaxe errada para a configuração herdada do GRUB. Graças ao #CENTOS no Freenode (IRC), um dos membros (desculpas, não me lembro do nick) apontou que o Legacy GRUB não entende a append
diretiva. Então, mover os argumentos na append
string da minha configuração (acima) para a kernel
diretiva e perder a append
string na initrd
linha e, finalmente, remover o =
entre initrd
e /discover...
, corrigiu o 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
Responder1
AFAICT (mas meu próprio experimento é mais com o Windows sem disco, mesmo que tenhamos começado a portar nossa solução sem disco para o Windows antes de ser eliminada por esta grande empresa de TI de duas letras...), você pode precisar de algo diferente. 1 - Não especifique nenhum "root=" na linha do kernel 2 - use uma linha initrd (e a unidade ram init relacionada, que você precisa compilar) 3 - neste initrd, inicie qualquer dispositivo de bloco e driver de sistema de arquivos que você precisa montar sua partição raiz (e outras partições também)
Verifique esta página: http://linux120919.blogspot.fr/2015/01/redhat-65-as-legacy-and-uefi-pxe.html por exemplo