Como deve ser o MBR?

Como deve ser o MBR?

Eu estava lendo sobre o processo de inicialização de um computador e descobri que o computador carrega o código do bootloader do arquivo MBR. Então eu queria dar uma olhada no meu MBRassim:

sudo dd if=/dev/sda of=mbr bs=512 count=1

Abri-o com o Vim e executei :%!xxdpara obter uma visualização hexadecimal do arquivo. Este arquivo se parece com isso

insira a descrição da imagem aqui

Pelo que encontrei na Internet, os primeiros 446 bytes desse registro deveriam ser o código do carregador. Mas no meu caso são apenas zeros. Não acho que o bootloader deva ser assim, mas meu computador carrega perfeitamente. Porque isto é assim? Por que há apenas zeros MBR(exceto na tabela de partição, suponho), mas meu computador carrega. Eu tenho GRUBcomo bootloader.

Responder1

Você provavelmente já leu um texto desatualizado. Os computadores de hoje não inicializam via MBR. Mais precisamente, estamos em um período de transição, alguns usam MBR, outros não.

Uma das causas é o fato de o MBR não permitir particionar unidades maiores que 2 TiB.

Sim, você dd'ed um local onde o MBR normalmente está localizado, mas não há código lá e a tabela de partição contém apenas uma entrada, que abrange toda a unidade. Isso é chamado de MBR protetor, seu disco possui um layout de tabela de partição GUID (GPT) (ou seja, usa outro sistema de particionamento) e seu computador provavelmente inicializa via UEFI. Você provavelmente tem uma pequena partição com sistema de arquivos FAT32, chamada EFI System Partition (ESP) e contém o arquivo EFI/BOOT/bootx64.efi - esse arquivo é um carregador de boot (grub, ou algum carregador de stub que executa imediatamente o grub), que é executado por firmware. Ou você poderia ter configurado o firmware para inicializar um executável EFI arbitrário, mas ele ainda deveria estar presente no ESP.

Você pode confirmar que inicializou o UEFI no Linux, se o seu sistema carregado tiver um diretório /sys/firmare/efi não vazio.

informação relacionada