Eu tentei corromper o MBR com este comando no CentOS 7
dd if=/dev/zero of=/dev/sda bs=446 count=1
Tanto quanto eu sei, o setor de inicialização tem 512 bytes de comprimento, os primeiros 446 bytes são o código do carregador de inicialização, o restante é a tabela de partições.
Depois de inicializar no modo Resecure, /dev/sda1
é montado em /mnt
e chroot /mnt
, eu usei grub2-install
para reparar o carregador de inicialização, /dev/sda
mas não tive sucesso ao inicializar novamente.
Que ponto eu perdi?
Após o chroot, mas antes de executar
grub2-install
, você deve ter verificado se/boot/grub/device.map
existe ou não. Normalmente,grub2-install
o cria se ainda não existir e tenta adivinhar qual dispositivo Linux corresponde a qual identificador de disco BIOS/GRUB. Se esse mapeamento estiver errado, você obterá resultados estranhos.A menos que seu sistema seja muito especial, se você estiver dizendo ao BIOS para inicializar a partir do disco que está
/dev/sda
, então/boot/grub/device.map
deve haver esta linha nele:Se o arquivo device.map não existisse quando você executou
grub2-install
, ele teria que adivinhar o mapeamento entre os nomes dos dispositivos Linux e os identificadores de disco do BIOS/GRUB. Às vezesgrub2-install
pode adivinhar errado. Portanto, se/boot/grub/device.map
não existir, você deve criá-lo com as informações corretas antes de executargrub2-install
para garantir o reparo bem-sucedido.Se o
/boot/grub/device.map
arquivo existir, mas tiver informações erradas, você deve corrigi-lo antes de executargrub2-install
.Agora você deve inicializar novamente no modo de recuperação, chroot e, em seguida, verificar o
/boot/grub/device.map
arquivo e executargrub2-install /dev/sda
.Outra possibilidade:
Quando você sobrescreve os primeiros 446 bytes do MBR, ele inclui os bytes de assinatura que são usados como UUID de disco em discos particionados por MBR. Se a configuração do GRUB estiver usando o UUID do disco para selecionar a partição "raiz" do GRUB, o UUID agora será diferente. Sua distribuição deve ter um comando que possa ser usado para reconstruir facilmente o arquivo de configuração do GRUB.
Em sistemas estilo Debian, provavelmente é
update-grub
.Em sistemas de estilo RedHat (Fedora, CentOS etc.), pode ser
grub2-mkconfig > /boot/grub/grub.cfg
ou similar.A mensagem: FATAL: INT18: BOOT FAILURE não está relacionada ao Grub, mas a um problema com o VirtualBox.
Aparentemente, o VirtualBox verifica a tabela de partição para verificar se uma partição foi marcada como ativa e, se não houver partição ativa, ele relata um erro em vez de tentar carregar e executar o código MBR.
Essa verificação é desnecessária para o GRUB, porque se o GRUB tiver sido instalado no MBR, ele assumirá o controle do processo de inicialização, independentemente de qual partição estiver marcada como ativa.
Fonte: https://neosmart.net/wiki/fatal-int18-boot-failure/
Ter a imagem da mídia de instalação ainda inserida na unidade de CD-ROM virtual também pode fazer isso, pelo menos com versões mais antigas do VirtualBox:
https://www.dedoimedo.com/computers/fedora-fatal-18.html