Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Recuperando o Grub Perdido
Colaboração: André Marques Saunite
Data de Publicação: 05 de abril de 2010
Quem nunca instalou um outro SO ou fez alguma besteira e perdeu o Grub (ou lilo)?
Todos seus arquivos estão lá, seu SO está do jeito que você deixou, mas você não consegue iniciar o sistema pois a MBR está incorreta.
Bom, pra resolver é bem simples.
- Ligue a máquina com um Live CD de sua preferência, o ideal é que seja o mais similar possível ao sistema instalado, principalmente versão de kernel;
- Após o boot, liste as partições existentes para descobrir quais as partições necessárias para o SO:
# fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x053687be Device Boot Start End Blocks Id System /dev/sda1 * 1 5099 40957686 7 HPFS/NTFS /dev/sda2 5100 19457 115330635 5 Extended /dev/sda5 5100 7649 20482843+ b W95 FAT32 /dev/sda6 7650 10199 20482843+ 7 HPFS/NTFS /dev/sda7 10200 12749 20482843+ b W95 FAT32 /dev/sda8 12750 12762 104391 83 Linux /dev/sda9 12763 16586 30716248+ 83 Linux /dev/sda10 16587 19391 22531131 83 Linux /dev/sda11 19392 19457 530113+ 82 Linux swap / Solaris
- Crie um mount point e monte sua partição de root:
# mkdir /mnt/recover # mount /dev/sda10 /mnt/recover
Caso você não saiba qual é sua partição de root, monte partição por partição até encontrar, o conteúdo da raiz não será muito diferente disso:# ls -1 / bin boot cdrom dev emul etc home initrd.img initrd.img.old lib lib32 lib64 media mnt opt proc root sbin selinux srv sys tmp usr var vmlinuz vmlinuz.old
- Verifique no seu
/etc/fstabquais outras partições de sistema existem, se existir elas precisam ser montadas, em geral o que pode ser necessário é:/opt /tmp /usr /var /boot
Caso seu/etc/fstabmostre o UUID do disco ao invés do dispositivo, você pode descobrir qual é o dispositivo com o comando blkid:# blkid /dev/sda10 /dev/sda10: LABEL="linux" UUID="57c5cf37-4a13-4a85-a088-716e758e6a0b" TYPE="xfs"
- Monte todas as partições necessárias no seu local correto, por exemplo, para montar a partição
/usr, após verificar que ela está presente na partiçãosda8:# mount /dev/sda8 /mnt/recover/usr
- Certifique-se de que todas as partições necessárias estão montadas, principalmente a partição
/boot. - Monte os pseudo devices:
# mount -t proc none /mnt/recover/proc # mount -o bind /dev /mnt/recover/dev
- Entre no ambiente
# chroot /mnt/recover /bin/bash
- Crie o
/etc/mtab# grep -v rootfs /proc/mounts > /etc/mtab
Nesse ponto, caso você tenha muitas partições de sistema, como /usr por exemplo, é possível que seja necessário editar o arquivo e retirar o prefixo/mnt/recover. - Confira se o
/boot/grub/grub.confou/boot/grub/menu.lstou /boot/grub/grub.cfgestá correto (o arquivo depende da versão do grub e/ou da configuração). - Execute o
grub-installno disco.# grub-install /dev/sda
- Reinicie a máquina e fique feliz!
É possível que, devido ao novo SO instalado, alguns discos mudem de ID para o grub, nesse caso, você receberá uma mensagem de que a partição não é bootável.
Nesse caso, aconselho editar a linha do grub no momento da inicialização (apertando "e") e mudando o (hdX,Y) por valores de outras partições que existem no sistema, até se encontrar qual é a partição de root correta.
Uma vez encontrada a partição correta, inicie o sistema e edite o arquivo de configuração do grub com as informações corretas.
Referências Adicionais
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
Avalie esta dica
Opinião dos Leitores
03 Mai 2011, 17:27
só uma coisa '-' sou leigo nisso, to entrando no linux agora, ate consegui restaurar o grub e talz. ele mostra meu ubunto e o xp, ubunto roda tranquilo, mas o xp da erro de disco e pede para reiniciar. tenho certeza q o xp esta instalado, ate acesso pelo linux. Tenho quase certeza de q o grub esta reconhecendo a partição do xp no lugar errado, no boot mostra o xp np /dev/sda1, porem usando o #fdisk -l mostra q essa é uma partição estendida (nem sei oq é '-') e tem outra partição ntfs com o msm tamanho no /dev/sda5. creio q la q esta o xp e por isso ele não inicia. se poderem me ajudar eu agradeço, estou com o ubunto 11.4 e o q encontro na net é com um grub mas antigo, parece q certos comandos nem funcionam mais. bom, se poderem me ajudar agradeço ^^ me desculpe a biblia.





