O que significa instalar o carregador no sdaX?

3

Durante a instalação do linux, todos nós somos solicitados a instalar o bootloader em algum lugar. Por exemplo, temos partições seguintes:

sda
 sda1
 sda2
 sda5

Primeiro setor (512 bytes) é o MBR com 446 bytes para o carregador de boot. Segundo setor pertence a sda1 (primeira partição). O BIOS carrega o gerenciador de inicialização localizado no MBR.

Portanto, se instalarmos o carregador em sda , a lógica é simples: esses 446 bytes são nosso carregador (ou parte do carregador que carrega o carregador completo de outro local) e esse carregador nos permite carregar o sistema operacional desejável.

Mas o que significa instalar o carregador no sdaX?

  1. O carregador no MBR não será atualizado (os primeiros 446 bytes de sda não serão tocados)
  2. Apenas parte do carregador seria instalada no MBR (as partes que carregam o carregador do MBR sdaX)
por yanpas 15.02.2016 / 14:39

1 resposta

3

Primeiro, sua pergunta é sobre a inicialização no modo BIOS. Esta é a saída. Ainda é relevante para muitos computadores, mas estamos em um período de transição durante o qual é imperativo que não se faça suposições sobre o modo de inicialização. O método de inicialização promissor usa a EFI (Extensible Firmware Interface, interface de firmware extensível) ou sua variante da versão 2.x, UEFI (Unified EFI).

Em segundo lugar, o carregador de inicialização do BIOS deve realmente limitar-se aos primeiros 440 bytes do MBR, não aos primeiros 446 bytes. Esses seis bytes extras são usados como um número de série para o disco. Embora eu tenha ouvido alguns carregadores de inicialização no modo BIOS espalhados nessa área, fazer isso é um pouco perigoso, e você não deve sobrescrevê-la (digamos, com dd para apagar um gerenciador de inicialização indesejado), já que alguns ferramentas podem confiar no número de série que permanece inalterado.

Terceiro, /dev/sda1 não normalmente começa no segundo setor do disco (embora possa). Atualmente, a maioria das ferramentas de particionamento atribui o setor 2048 como o primeiro setor da primeira partição (que pode ou não ser /dev/sda1 ). No passado, o setor 63 foi usado para essa finalidade, mas o padrão mudou para 2048 devido a mudanças na tecnologia do disco rígido. O espaço entre o MBR e o primeiro setor alocado para uma partição é oficialmente não alocado / não utilizado, mas na realidade ele pode ser usado ....

Finalmente, quando você instala o GRUB no MBR ( /dev/sda , /dev/sdb , ou qualquer outro), seu código realmente vai em vários lugares, incluindo o MBR, o espaço oficialmente não alocado entre o MBR e o primeiro setor alocado e arquivos em /boot/grub (assumindo uma instalação do Ubuntu). Quando você instala o GRUB no Partition Boot Record (PBR) de uma partição ( /dev/sda1 , /dev/sdb3 ou qualquer outro), algumas dessas localizações mudam e o GRUB deve ser iniciado por outro carregador de inicialização que reside no MBR. No passado, esse tipo de configuração era comum para deixar o carregador de boot do DOS / Windows no MBR e gerenciar os estágios iniciais do processo de boot na maneira tradicional do DOS de definir um "sinalizador de inicialização" na partição que você deseja boot. O GRUB 2, no entanto, prefere ser instalado no MBR, então esta é a maneira mais comum de fazê-lo hoje (em computadores baseados em BIOS).

Como mencionado anteriormente, nada disso se aplica à inicialização no modo EFI, que é a maneira mais comum de inicializar computadores mais novos. (Desde o Windows 8, a maioria dos novos computadores foram configurados para inicializar no modo EFI.) Com o EFI, os carregadores de inicialização são arquivos comuns no Sistema EFI Partition (ESP). Código de boot não vai no MBR, no PBR, ou no espaço não alocado antes de suas partições. Informações sobre qual arquivo usar como um carregador de boot vai no NVRAM do computador, que pode ser manipulado (no Linux) com o utilitário efibootmgr .

    
por Rod Smith 16.02.2016 / 21:56