Menu
Problemas no particionamento
Thiago Bomfim (UFBA): O único "porém" foi que nossa ilha tem discos de 4TB. Daí precisei criar a partição EFI (1 e 2 na foto) para que o GRUB pudesse ser instalado. Pelo procedimento, seria uma partição ext4 para o /boot sobre o LVM e sobre o RAID, mas isso não funciona com UEFI.
Operador da Adriano Henrique (UFPE): Semelhante ao ocorrido e diferente do tutorial aqui na ilha UFPE também foi necessário instalar o grub2 em uma partição não LVM, segue em anexo a minha configuração de disco, estou utilizando RAID 10 via hardware.
SOLUÇÃO UEFI+XEN
Problema:
Thiago Bomfim: Uma solução, é usar modo LEGACY, que não tem problema com o XEN. Como nossa ilha tem discos de 4TB, preferi insistir um pouco para achar a solução para UEFI+XEN.
Antes da solução, sempre que carregava o kernel com xen no modo UEFI, a máquina reiniciava.
Solução:
No Ubuntu e no Debian o GRUB2 já possuí o módulo multiboot2, necessário para carregar o XEN na versão >=4.9 com EFI (vide [1]).
O primeiro passo é aplicar um patch para usar o modulo multiboot na versão indicada, no caso a versão 2 (vide patch em [2])
Conteúdo do arquivo:
/root/xen.patch |
---|
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in index c48af94..7aae59f 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -85,6 +85,10 @@ linux_entry () type="$4" args="$5" xen_args="$6" + ver="" + if $($grub_file --is-x86-multiboot2 ${xen_dirname}/${xen_basename}); then + ver="2" + fi if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi @@ -122,16 +126,16 @@ linux_entry () else xen_rm_opts="no-real-mode edd=off" fi - multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} + multiboot${ver} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} echo '$(echo "$lmessage" | grub_quote)' - module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} + module${ver} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} EOF if test -n "${initrd}" ; then # TRANSLATORS: ramdisk isn't identifier. Should be translated. message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' - module --nounzip ${rel_dirname}/${initrd} + module${ver} --nounzip ${rel_dirname}/${initrd} EOF fi sed "s/^/$submenu_indentation/" << EOF
Para aplicar o patch, execute primeiro o comando patch no modo de teste (com a opção '--dry-run')
patch --dry-run -p 1 /etc/grub.d/20_linux_xen /root/xen.patch
Caso não tenha acontecido nenhum erro, aplique em definitivo.
patch -p 1 /etc/grub.d/20_linux_xen /root/xen.patch
Agora é necessário atualizar o grup para que as modificações tenham efeito.
update-grub2
Basta, por fim, reiniciar o servidor para testar o funcionamento.
[1] https://wiki.xenproject.org/wiki/Xen_EFI
[2] https://lists.xen.org/archives/html/xen-devel/2017-03/txtCeHTNmz1hZ.txt