Estou usando o Grub 0.97 (chamado Legacy Grub) em uma unidade com uma tabela de partição MBR e quatro partições, sdb {1..4}. O conteúdo dessas partições é copiado de outro disco. sdb2 contém /, sdb1 contém o que será / boot (com o sinalizador de inicialização definido), sdb3 é um FS de troca e sdb4 é / home. (É sdb em vez de sda porque esta unidade fica em um dock USB por enquanto.)
O sdb1 começa no setor 2048, conforme as políticas de alinhamento do setor. Contém Grub Legado.
Eu copiei os primeiros 446 bytes de outra unidade que usava a mesma versão do Legacy Grub para o MBR do sdb. Quando eu inicializo isso, eu recebo uma tela em branco após o POST com um cursor no canto superior esquerdo, o que é um tanto surpreendente (eu estava esperando que ele reclamasse de um estágio faltante 1.5, mas talvez não faça isso). Então eu queria instalar o estágio 1.5 do Legacy Grub (o estágio 2 já está no disco), então aqui está o que eu fiz:
- sdb2 montado como / mnt / t, sdb1 como / mnt / t / boot
- re-bound / {dev, proc, sys} como / mnt / t / {dev, proc, sys}
chroot /mnt/t
(para ter certeza de usar o Grub de sdb, não de sda)grub-install /dev/sdb
que rendeu em
/dev/sdb does not have any corresponding BIOS drive
que eu tenho por aí com grub-install --recheck /dev/sdb
que atualizou /boot/grub/device.map
, todos /boot/grub/*stage1_5
arquivos, bem como /boot/grub/stage{1,2}
. Quando eu tentei arrancar a partir dele, recebo o mesmo erro: tela em branco com o cursor no canto superior esquerdo.
Então eu usei o shell grub no cenário acima:
# grub
>root (hd0,0)
>setup (hd0)
que imprimiu algumas informações sobre atualizações, mas nenhum erro.
Contudo , Eu ainda estou recebendo o mesmo erro: tela em branco com cursor após a inicialização da unidade.
Questões:
- Os comandos grub acima pareciam não ter nenhum impacto nos primeiros setores da unidade. Todos os setores de 2 a 2047 são zerados mesmo após os comandos do grub acima. Onde está o estágio 1.5 do Legacy Grub?
- O que é
/boot/grub/stage1
? Ele difere do MBR real na unidade, na medida em que permite que o ponteiro do estágio 2 aponte para 0x01 0x00 0x00 0x00. O MBR real no disco aponta para algum local da unidade antiga. Eu teria esperado que a seqüência de comandos sobre atualizaria esse ponteiro para apontar para um estágio existente 1.5 (ou estágio 2?) Ou colocar o estágio 1.5 no setor 2 e atualizar o ponteiro para 0x01 0x00 0x00 0x00?