Onde encontrar o VBR na partição / dev / sda1?

3

Eu tenho um disco rígido interno /dev/sda que se parece com isso:

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00042134

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   293048319   146523136   83  Linux
/dev/sda2       293050366   312580095     9764865    5  Extended
/dev/sda5       293050368   312580095     9764864   82  Linux swap / Solaris

Agora posso encontrar facilmente o MBR com xxd /dev/sda | less , localizado no primeiro setor. De acordo com o Wikipedia , o VBR deve estar no primeiro setor dentro da primeira partição inicializável, no meu caso /dev/sda1 . Mas no primeiro setor de /dev/sda1 , vejo apenas zeros quando faço um xxd /dev/sda1 | less .

Eu realmente pensei em encontrar o código binário do GRUB lá, onde poderia ser então?

    
por JohnnyFromBF 22.03.2013 / 13:45

2 respostas

6

Geralmente não é instalado lá . Na maioria das vezes, o GRUB (estágio 1) é instalado no MBR somente , no Linux.

Embora o GRUB versão 1 sempre transborde um pouco nos 30 kB seguindo o MBR (estágio 1.5, ou seja, drivers do sistema de arquivos), com o GRUB versão 2, o código instalado no MBR pode carregar algum outro código maior (estágio 1.5) por leitura bruta de qualquer setor do disco (mas normalmente irá se ater ao comportamento do GRUB 1 - isto é, carregamento de código a partir dos 30 kB após o MBR).

Esses 30 kB são geralmente espaço em disco "livre" não particionado, porque razões históricas é bastante raro que a primeira partição de um disco inicie antes do setor 63, o que deixa pelo menos 512 * 62 = 31 kiB após o MBR.

Em seguida, ele carrega alguns arquivos, geralmente de /boot , como o menu ( menu.lst ou grub.cfg ), mais drivers do sistema de arquivos, etc. Este é o estágio 2.

Depois disso, tem o suficiente para iniciar um sistema operacional.

Quanto ao VBR agora , ele não é comumente usado em partições Linux porque não é confiável o suficiente , mas o MS Windows geralmente instala um no início do sistema ( C: \) partições. O GRUB irá apenas executá-lo se você quiser iniciar o Windows. Esse processo é chamado de chainloading: um bootloader que lança outro. Isso também significa que o sistema de arquivos usado deve deixar intocado o começo de sua partição, porque poderia sobrescrever o VBR senão! A quantidade de espaço "intocado" disponível depende do sistema de arquivos, então não há garantia: ele pode ser muito pequeno ...

Sobre o estágio de carregamento 1.5 de um local "incomum" , como eu disse, o GRUB 2 pode carregar seu estágio 1.5 de qualquer setor no disco. Pode ser de um arquivo, mas isso pode ser perigoso porque o sistema de arquivos pode decidir mover esse arquivo para outros setores no disco a qualquer momento (ou pior ainda, fragmentá-lo!), E o GRUB precisaria atualizar o novo número de setor no MBR de cada vez ...

Um caso interessante é o Tabelas de Partição GUID (GPT). Eles são grandes demais para garantir que espaço suficiente (30 kB) estará sempre disponível para o estágio 1.5. A solução recomendada nesse caso é usar uma "partição do carregador de inicialização" dedicada (não é um problema, pois a GPT pode suportar 128 partições) que não hospedará um sistema de arquivos, mas sim dados do estágio 1.5 do GRUB. Desta forma, ele não se moverá em nenhum lugar, e você pode dar bastante espaço.

Você deve realmente ler artigo do GRUB da wikipedia onde obtive a maior parte dessas informações .

    
por 22.03.2013 / 14:00
6

Na verdade, o GRUB2 não é normalmente instalado em um VBR. Recomenda contra esta prática.

É algo como não haver espaço suficiente para empacotar um módulo de sistema de arquivos para / boot. Historicamente, os discos MBR fornecem 62 setores "reservados" para esse código de inicialização. (Porque a primeira partição começa em um limite de cilindros. Atualmente ignoramos os cilindros, mas ele está alinhado a um megabyte inteiro, para suportar unidades de setor de 4K, ajudar com SSDs / RAID, etc.). Você não recebe garantias tão boas do VBR.

A mensagem GRUB2 explica que as instalações VBR (partição) dependem de salvar os números de blocos dos módulos, como um driver do sistema de arquivos. Isso é menos confiável; significa que o grub tem para ser reinstalado quando esses arquivos de módulo forem atualizados.

    
por 22.03.2013 / 14:06