Você precisa criar uma partição bios_grub no disco. Você pode fazer isso com parted
e definir o sinalizador bios_grub na partição. 1 MiB é suficiente, mas precisa estar no 2TiB inferior do disco.
Como posso usar um disco com tabela de partições GPT em um sistema com BIOS, mas sem (U) EFI?
Eu tenho um sistema com uma unidade de 3 TB (sem outras unidades e, como isso é uma máquina remota , não tenho escolhas aqui) e com uma GPT por motivos óbvios. Ubuntu 12.04 está sendo bootstrapped no sistema e isso funcionou até agora. Agora, após a montagem de bind /dev
, /proc
e /sys
do host no sistema de destino e chroot
ing, instalei linux-image-server
que funcionou bem (após vincular /sbin/initctl
como /bin/true
) . Porque esta é uma máquina remota eu tenho que fazer tudo isso via SSH e não tenho CD inicializável ou qualquer coisa. Eu posso inicializar em um sistema de recuperação se ele falhar (PXE).
Agora eu sei que grub2
deve suportar o cenário, mas para a vida de mim não consigo descobrir como instalá-lo.
O dispositivo de inicialização (e raiz) deve ser /dev/md0
, composto por /dev/sda1
e /dev/sdb1
no modo RAID 0. Com /dev/md0
montado sob /target
em execução:
grub-install --root-directory=/target --no-floppy /dev/sda
que falha com:
/usr/sbin/grub-setup: warn: This GPT partition label has no BIOS Boot Partition; embedding won't be possible!.
/usr/sbin/grub-setup: error: embedding is not possible, but this is required when the root device is on a RAID array or LVM volume.
Então, como posso obter grub2
instalado para que esse sistema baseado em BIOS seja inicializado corretamente?
Nota: não importa se eu corro isso dentro ou fora do ambiente chroot
. O erro e a saída são idênticos. Provavelmente porque eu instalei /dev
etc. no lugar. É claro que ajustes apropriados na linha de comando (não --root-directory=
) foram feitos.
Você precisa criar uma partição bios_grub no disco. Você pode fazer isso com parted
e definir o sinalizador bios_grub na partição. 1 MiB é suficiente, mas precisa estar no 2TiB inferior do disco.