Como corromper e reparar o MBR corretamente?

1

Eu tentei corromper o MBR com este comando no CentOS 7

dd if=/dev/zero of=/dev/sda bs=446 count=1

Até onde eu sei, o setor de inicialização tem 512 bytes de comprimento, os primeiros 446 bytes são o código do boot loader, o resto é a tabela de partições.

Após a inicialização no Modo Resecure, /dev/sda1 é montado em /mnt e chroot /mnt , usei grub2-install para reparar o carregador de boot em /dev/sda , mas não tive sucesso em inicializar novamente.

De que ponto eu sinto falta?

    
por Federal Reserve 06.05.2018 / 06:11

1 resposta

3

Depois de executar o chrooting, mas antes de executar grub2-install , você deve ter verificado se /boot/grub/device.map existe ou não. Normalmente, grub2-install cria se já não existe, e tenta adivinhar qual dispositivo Linux corresponde a qual identificador de disco BIOS / GRUB. Se este mapeamento estiver errado, você obterá resultados estranhos.

A menos que seu sistema seja muito especial, se você estiver dizendo à BIOS para inicializar a partir do disco que é /dev/sda , então /boot/grub/device.map deve ter essa linha:

(hd0) /dev/sda

Se o arquivo device.map não existisse quando você executou grub2-install , ele teria que adivinhar o mapeamento entre nomes de dispositivos Linux e identificadores de disco do BIOS / GRUB. Às vezes grub2-install pode adivinhar errado. Portanto, se /boot/grub/device.map não existir, você deverá criá-la com as informações corretas antes de executar grub2-install para garantir um reparo bem-sucedido.

Se o arquivo /boot/grub/device.map existir, mas tiver informações erradas, você deverá corrigi-lo antes de executar grub2-install .

Agora você deve inicializar novamente no modo de recuperação, chroot e então verificar o arquivo /boot/grub/device.map , então execute grub2-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 disco UUID 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 no estilo Debian, provavelmente é update-grub .

Em sistemas no estilo RedHat (Fedora, CentOS etc.), pode ser grub2-mkconfig > /boot/grub/grub.cfg ou similar.

A mensagem: FATAL: INT18: FALHA DE BOOT não está relacionada ao Grub, mas sim um problema com o VirtualBox.

Aparentemente, o VirtualBox verifica a tabela de partições para verificar se uma partição foi marcada como ativa e, se não houver uma partição ativa, ela relatará um erro, em vez de tentar carregar o & execute o código MBR.

Esta 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 está marcada como ativa.

Fonte: link

Ter a imagem de mídia de instalação ainda inserida na unidade de CD-ROM virtual também pode fazê-lo, pelo menos nas versões mais antigas do VirtualBox:

link

    
por 06.05.2018 / 14:12

Tags