Recupere o Grub na MBR após uma instalação do Windows

Não é sempre, mas às vezes pode ocorrer de você ficar sem o Grub (gerenciador de boot) devido a uma reinstalação inevitável do Windows, ou instalação do openSUSE, que por estranho que pareça reconhece por padrão o MS, mas não a partição com o seu Ubuntu e então o que fazer? Aqui lhe mostro uma maneira prática de como resolver isso.

[ Hits: 30.760 ]

Por: Lúcio SLV em 23/03/2011


Código do shell script recgrub.sh



#!/bin/bash
# Programa: recGrub.sh
# Descrição: Recupera o gerenciador de inicialização Grub na MBR
# Autor: Lúcio M.V. Silva <[email protected]> Fev/2011


Reiniciar() {

echo "Deseja reiniciar a máquina agora?[s/n]"
read resp

if [ $resp = s ]; then

sudo init 6

else

echo "Você optou por não reiniciar neste momento"

exit

fi

}

zenity --warning --text "Este Shell Script RecGrub.sh tem a finalidade de recuperar o Grub na MBR do seu disco. No entanto, vale salientar que não me responsabilizo por qualquer eventual perda de dados, exclusão de partição e etc. Caso não tenha familiaridade com este procedimento ou com os termos básicos e comuns ao sistema Linux, aconselho a estudá-los antes de tentar usar este script. O mesmo foi testado em situações controladas e funcionou adequadamente. Quando o gparted (editor de partições do Gnome) abrir procure não editar absolutamente nada, apenas faça se souber o que está fazendo. Atenha-se apenas a verificar o sistema de arquivo da partição Linux que você deseja recuperar com o grub. Isto posto, obrigado por utilizar esse script, apesar de simples funciona e no final é isso que importa! Seja Livre, use Linux!:)"

echo "RecGrub----------------------------------------------------"
echo "Verifique se o seu disco é /dev/sda ou /dev/hda"
sudo fdisk -l | grep Disco* | cut -c6-24
echo "------------------------------------------------------------"
echo "1. /dev/sda"
echo "2. /dev/hda"
echo "------------------------------------------------------------"
echo -e "Qual é o modelo?[número]: "
read mod

case $mod in

1)

DEV=(sda1 sda2 sda3 sda4 sda5 sda6 sda7 sda8)

echo "Verifique apenas o sistema de arquivo com gparted:(Seja cuidadoso!)"
sudo gparted

echo -n "Informe o sistema de arquivo da partição[ext3/ext4/reiserfs]: "
read tip
echo

if [ $tip = ext3 ];then
echo "sda1, sda2, sda3, sda4, sda5, sda6 ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t ext3 /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/sda

echo "Reinicie o Sistema para que as mudanças sejam aplicadas."

Reiniciar

elif [ $tip = ext4 ];then

echo "sda1, sda2, sda3, sda4, sda5, sda6 ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t ext4 /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/sda

echo "Reinicie o sistema para que as mudanças sejam aplicadas."

Reiniciar

elif [ $tip = reiserfs ];then

echo "sda1, sda2, sda3, sda4, sda5, sda6 ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t reiserfs /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/sda

echo "Reinicie o sistema para que as mudanças sejam aplicadas."

Reiniciar

else

echo "Error:Sistema de Arquivo Inválido!"

fi

exit
;;

2)

DEV=(hda1 hda2 hda3 hda4 hda5 hda6 hda7 hda8)

echo "Verifique apenas o sistema de arquivo com gparted:(Seja cuidadoso!)"
sudo gparted

echo -n "Informe o sistema de arquivo da partição[ext3/ext4/reiserfs]: "
read tip
echo

if [ $tip = ext3 ];then
echo "hda1, hda2, hda3, hda4, hda5, hda6, ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t ext3 /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/hda

echo "Reinicie o sistema para que as mudanças sejam aplicadas."

Reiniciar

elif [ $tip = ext4 ];then
echo "hda1, hda2, hda3, hda4, hda5, hda6, ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t ext4 /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/hda

echo "Reinicie o sistema para que as mudanças sejam aplicadas."

Reiniciar

elif [ $tip = reiserfs ];then

echo "hda1, hda2, hda3, hda4, hda5, hda6, ..."
echo "Modo referêncial: o item 1 é o 0, o item 2 é o 1, o item 3 é o 2, ..."
echo -n "Qual partição dará a partida na MBR?: "
read opc
echo ${DEV[$opc]}

sudo mkdir /media/${DEV[$opc]}
sudo mount -t reiserfs /dev/${DEV[$opc]} /media/${DEV[$opc]}
sudo grub-install --root-directory=/media/${DEV[$opc]} /dev/hda

echo "Reinicie o sistema para que as mudanças sejam aplicadas."

Reiniciar

else

echo "Error:Sistema de Arquivo Inválido!"

fi

exit

;;

*)

echo "Error:Opção Inválida."

;;

esac

Página anterior    

Páginas do artigo
   1. Onde está Grub?
   2. Padrão do disco, sistema de arquivos e journaling
   3. Código do shell script recgrub.sh
Outros artigos deste autor

Quão segura é a sua senha?

O Mestre, o Tecnólogo e o Aprendiz

Afinal, o que é o Ubuntu?

Qual é o melhor Sistema Operacional?

Por que mudar de sistema operacional pode ser um bom negócio?

Leitura recomendada

Integrando o BIND com DHCPd

Configurando PHP com Apache2 no Linux

Como configurar o MySQL no Slackware

CUPS + Jasmine (gerenciador de impressões e relatórios de impressão)

Entendendo TCP/IP (parte 4) - DHCP

  
Comentários
[1] Comentário enviado por alelima.xandao em 23/03/2011 - 12:36h

Agradeço pela dica. É muito valiosa, pois sempre que instalo um Fedora, o Grub some.
Abraço,

[2] Comentário enviado por removido em 23/03/2011 - 15:10h

Excelentes informações Lúcio !


Abraço.

[3] Comentário enviado por murderb13 em 24/03/2011 - 09:41h

Boa!

[4] Comentário enviado por murderb13 em 24/03/2011 - 09:42h

Existem vários tutoriais para esse "probleminha",,kkkkk
mas gostei desse script, mais fácil para indicar para usuários menos familiarizados com o Pinguim.!

[5] Comentário enviado por rone.martins em 24/03/2011 - 12:02h

Parabéns !
Um script simples e eficiente testei com a minha máquina que tinha o Debian squezze instalado fiz algumas modificações e funcionou normalmente, muito bom mesmo !

[6] Comentário enviado por MilbolTylerDurde em 24/03/2011 - 19:54h

eu lembro quando fiquei sem Grub, entrei em pânico xD!, ai usei o Grub disc e resolveu meu problema ^^

[7] Comentário enviado por pinduvoz em 24/03/2011 - 20:38h

Muito interessante.

Eu acho que já passou da hora de existir algo parecido, mas com uma GUI, para cuidar desse problema.

E o ideal seria que esse programa de recuperação funcionasse tanto no Windows quanto no Linux, assim como o UnetBootIn.

É uma pena que a maioria dos usuários de Linux achem que todo mundo está disposto a aprender a recuperar o Grub, ou mesmo o sistema inteiro, com um terminal.

[8] Comentário enviado por gokernel em 25/03/2011 - 09:48h

Concordo com o comentário do pindovoz, se essa dica fosse para uma pessoa tipo( minha esposa ou minha irmã ) elas falariam: "melhor usar o windows que é só colocar o CD de instalação e tudo fica pronto para usar".

Vale também esta dica usado o slitaz, pois o mesmo é pequeno.

Como usuario root:
___________________________________________
grub-install /dev/hda root-directory <SEU_PONTO_DE_MONTAGEM>
___________________________________________

Este unstala o grub 1.x e não o grub 2, agora é só editar as entradas do menu: /boot/grub/menu.lst

Gokernel.

[9] Comentário enviado por removido em 28/03/2011 - 21:52h

Já passei por este problema, e a única solução que dispunha era formatar e instalar tudo novamente.

[10] Comentário enviado por Lúnix:) em 30/03/2011 - 12:03h

ERRATA:

Caros amigos, quero desdizer o que eu disse no artigo sobre o espaço da MBR,pois não são 1024 kbytes, mas sim 512 bytes dos quais destes, 446 bytes são reservados para o setor de boot, enquanto os outros 64 bytes guardam a tabela de partição e os dois ultimos a assinatura.

(446+64+2=512)


No qual é possível ter 4 partições primárias e 63 sub-partições extendidas e complementando no Linux há diferentes maneiras de se fazer as coisas. Por exemplo: Há um disco de recuperação chamado "Super Grub Disc" que pode recuperar o GRUB, porém pouco amigável principalmente para principiantes, o mesmo é espartano até pra quem possui alguma noção sobre o assunto. Eu o utilizo já algum tempo, mas criei este script que é simples, fácil e eficiente. Onde se pode recuperar o Grub sem quebrar a cabeça e correr o risco de reinstalar um sistema que pode e deve ser recuperado com uma solução fácil, que qualquer um pode realizar tal feito bastando apenas ler as orientações e utilizar o recGrub.sh. Pois entre perder dados e ter o trabalho de reinstalar um sistema eu prefiro recuperá-lo e o tempo que eu perderia nisso, ganho fazendo algo mais produtivo e prazeroso.

Lúcio M.V. Silva

[11] Comentário enviado por andreuebe em 07/04/2011 - 11:21h

Valeu!!!!

Abs


[12] Comentário enviado por crimelordz em 21/10/2011 - 13:43h

MARAVILHAAAA. parabéns e obrigado pela ajuda!


Contribuir com comentário