04 outubro, 2007

"Error 17" ao carregar o GRUB

E o menu não aparece.

Isso pode ocorrer por vários motivos. O GRUB fica instalado em uma partição Linux que é definida explicitamente no MBR.

Estes são alguns motivos para ocorrer esse erro:
  1. Você deletou a partição Linux. Sim, você precisa dela no sistema, mesmo que esteja querendo iniciar apenas pelo Windows;
  2. Você removeu o HDD que tem a partição Linux;
  3. Você fez alguma mudança na quantidade de HDDs instalados ou sua ordem de conexão nas controladoras que fez o número do HDD com a partição Linux mudar;
  4. Você fez alguma mudança no particionamento do HDD que fez o número da partição Linux mudar.
Mesmo que você tenha deletado a partição Linux ou removido o HDD, o problema pode ser contornado dando boot por um CD ou disquete que tenha o GRUB. O LiveCD do GParted, por exemplo, tem um menu GRUB que já tem opções prontas de boot para:

  • MBR do HDD 1;
  • HDD 1, partição 1 (hd0,0);
  • HDD 1, partição 2 (hd0,1);
  • HDD 1, partição 3 (hd0,2);
  • HDD 1, partição 4 (hd0,3);
  • MBR do HDD 2;
  • HDD 2, partição 1 (hd1,0);

E basta escolher cada uma delas até o seu sistema dar boot do jeito que deveria.

Mesmo que o seu disco de boot com o GRUB não tenha a opção de que você precisa, isso não é problema. Basta entrar no modo "commandline" do GRUB e dar os comandos necessários para dar um boot temporário ou para restaurar o GRUB (se a partição Linux não tiver sido deletada ou removida).

Os procedimentos abaixo consideram que a partição Linux está no primeiro HDD

Para restaurar

Na commandline do GRUB, digite os seguintes comandos em seqüência:

  • root (hd0,0) [ENTER]
  • root (hd0,1) [ENTER]
  • root (hd0,2) [ENTER]
  • root (hd0,3) [ENTER]
  • root (hd0,4) [ENTER]
  • etc.

e pare ao receber uma mensagem de que a partição é do tipo usado no linux. Por exemplo:

"Filesystem type is ext2fs, partition type 0x83"

Logo em seguida, digite:

setup (hd0) [ENTER]

O GRUB mostrará uma sequencia de eventos. Se tudo correr bem, o menu GRUB será restaurado.

Se você soubesse de antemão que sua partição root Linux é a terceira do primeiro HDD, bastaria fazer direto:

  • root (hd0,2) [ENTER]
  • setup (hd0) [ENTER]