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: 32.261 ]

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 <lunix3411@hotmail.com> 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

O Mestre, o Tecnólogo e o Aprendiz

Será este o ano do Linux?

Fazendo jus ao nome GNU/Linux

Quão segura é a sua senha?

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

Leitura recomendada

Backup com Rsync

MUGPIS 14.1

Criando um servidor SFTP

Rodando um aplicativo em modo Kiosk no Ubuntu Linux 20.04

Configuração do Shaperd no Debian Lenny

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts