Como configuro o grub2 com o Xen?

4

Eu estou inicializando um novo kernel Xen e tudo corre bem até algum ponto durante o processo de inicialização quando a máquina reinicializa sem aviso. Infelizmente, não vejo erros aparecendo antes que isso aconteça.

Existe uma maneira de inicializar a máquina com um kernel funcional e ver um registro da inicialização anterior ou algo do tipo?

EDITAR: O que eu não notei é que há realmente um erro na tela. Ele apenas pisca muito rapidamente antes da reinicialização. O erro está relacionado a não ser capaz de montar o sistema de arquivos raiz, porque há algo errado com a configuração do meu grub.

Uma entrada normal no grub.cfg é assim:

menuentry 'Ubuntu, with Linux 2.6.32-33-server' --class ubuntu --class gnu-linux --class gnu --class os {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
        linux   /vmlinuz-2.6.32-33-server root=/dev/mapper/xenserver-root ro   crashkernel=384M-2G:64M,2G-:128M 
        initrd  /initrd.img-2.6.32-33-server
}

Adicionei o seguinte em /etc/grub.d/40_default

menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set=root 75475e50-82e2-4f74-b860-6cf92c91b42e
        echo 'Loading Xen 4 ...'
        multiboot /xen.gz placeholder
        echo 'Loading Linux 2.6.32.45-xen ...'
        module  /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro iommu=1
        echo 'Loading initial ramdisk ...'
        module  /initrd.img-2.6.32.45-xen
}

Mas não está funcionando por algum motivo. Alguma idéia?

EDITAR: Eu também tentei o script 20_linux_xen. Infelizmente isso não está funcionando. Veja estes erros:

Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
/etc/grub.d/20_linux_xen: 57: uses_abstraction: not found
Found linux image: /boot/vmlinuz-2.6.32.45-xen
Found initrd image: /boot/initrd.img-2.6.32.45-xen
/etc/grub.d/20_linux_xen: 156: gettext_printf: not found

o gettext está instalado.
Estou no Ubuntu 10.04 LTS.

O erro mostrado na inicialização é algo como "por favor, insira uma opção root = root correta ..."

Por que isso é tão difícil e por que existem tantos exemplos diferentes de grub2 xen? alguns colocam / inicializam na frente alguns apenas /. Eu tentei colocar / boot na frente, mas isso não ajudou. Também alguns têm --set = root uuid e ainda assim todas as minhas outras entradas de trabalho apenas possuem --set uuid. isso é algo a ver com uma versão diferente do grub2?

    
por Matt H 25.08.2011 / 00:27

2 respostas

7

Para responder minha própria pergunta. Esta entrada do grub2 funcionou.

menuentry 'Xen 4 with Linux 2.6.32.45-xen' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        recordfail
        insmod ext2
        set root='(hd0,1)'
        search --no-floppy --fs-uuid --set 75475e50-82e2-4f74-b860-6cf92c91b42e
        multiboot /xen.gz placeholder
        module  /vmlinuz-2.6.32.45-xen placeholder root=/dev/mapper/xenserver-root ro 
        module  /initrd.img-2.6.32.45-xen
}

No entanto, eu também tive um problema com o kernel. Então eu tive que reconstruí-lo. Uma vez eu fiz isso, foi tudo.

    
por 25.08.2011 / 05:06
0

Para que grub2-mkconfig detecte seu (s) kernel (s) Linux, eles devem receber o nome vmlinuz-* ou kernel-* . Em alguns scripts, você pode ver vmlinux-* também. Por exemplo (...- xen no final é apenas a minha nota):

/boot/kernel-3.6.2-xen

Para que o script 20_linux_xen inclua seu kernel Xen, /boot deve conter o arquivo de configuração do kernel com o nome exato config-* correspondente ao seu arquivo de kernel. Por exemplo:

/boot/config-3.6.2-xen

Para que este arquivo simplesmente execute zcat /proc/config.gz > /boot/config-[your_version] , você deve executar grub2-mkconfig novamente. Neste momento, o script provavelmente irá gerar registros duplicados para o kernel Xen, porque (provavelmente) você tem alguns links simbólicos para o kernel xen. Então, remova-os e deixe apenas o arquivo original ( xen-4.2.0.gz ). (Espero que isso seja seguro, se a remoção desses links está errada, por favor, mantenha seu comentário abaixo.)

A mesma situação é com os arquivos initrd / initramfs, mas muitas variações.

A adição de parâmetros do kernel foi descrita aqui .

fontes: nomeação do kernel , 20_linux_xen:147 , 10_linux:194-201

    
por 17.11.2012 / 18:15