Recuperando o GRUB
05/02/2012
- Postado em Linux
Bom, fazia um tempo que estava usando somente o Linux. Há uma semana reinstalei o Windows 7.
Como a minoria das pessoas sabem: o Windows apaga o boot do Linux. Para resolver o problema deixando o usuário escolher qual sistema iniciar é necessário reinstalar o GRUB.
Você deve iniciar o Linux pelo Live CD (eu utilizei o Kubuntu 11.04).
O primeiro passo é descobrir onde o Linux está instalado. Logue como root num terminal e dê o comando fdisk -l.
Eu tenho 2 HD's, o maior com 1TB para os documentos (em NTFS) e o menor com 250 GB só para sistema. E ele está dividido em 3 partições:
Você também pode visualizar as partições usando o GParted.
Vamos primeiramente criar uma pasta chamada nlinux, e em seguida, montar a partição do Linux (sda1) nela. Lembre-se que no meu caso, instalei o Linux em sda1, você deve identificar onde você instalou e trocar sda1 pela sua partição.
#mkdir /dev/nlinux
#mount /dev/sda1 /dev/nlinux
Agora vamos instalar o GRUB no HD.
#grub-install --root-directory= /dev/nlinux /dev/sda
Após a instalação, se correr tudo certo, uma mensagem aparecerá informando que a instalação completou e não houve erro "Installation Finished. No error reported ".
Para finalizar dê o seguinte comando.
#update-grub
Reincie o sistema operacional.
Você pode retirar algumas entradas de menus e setar o Windows para iniciar primeiro no arquivo: /boot/grub/grub.cfg. Lembre-se de abrí-lo como root para efetuar as alterações.
Antes de alterar faça backup.
Procure a linha
set default="0" - o número 0 refere-se ao primeiro menuentry "nome do sistema" encontrado no arquivo. Você pode apagar os menuentry que não deseja ficando apenas 2, o do Window e do Linux.
Mais informações você encontra em https://help.ubuntu.com/community/Grub2.
Logo abaixo mostro como ficou configurado meu GRUB.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="1"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
set locale_dir=($root)/boot/grub/locale
set lang=pt_BR
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,71,115; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Kubuntu Linux 2.6.38-13' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
linux /boot/vmlinuz-2.6.38-13-generic-pae root=UUID=e4f4b685-8ed1-41b6-9a4c-002ec950e9ec ro quiet splash vt.handoff=7
echo 'Carregando o Kubuntu Linux ...'
initrd /boot/initrd.img-2.6.38-13-generic-pae
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set=root 063CDDE63CDDD0B3
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Como a minoria das pessoas sabem: o Windows apaga o boot do Linux. Para resolver o problema deixando o usuário escolher qual sistema iniciar é necessário reinstalar o GRUB.
Você deve iniciar o Linux pelo Live CD (eu utilizei o Kubuntu 11.04).
O primeiro passo é descobrir onde o Linux está instalado. Logue como root num terminal e dê o comando fdisk -l.
Eu tenho 2 HD's, o maior com 1TB para os documentos (em NTFS) e o menor com 250 GB só para sistema. E ele está dividido em 3 partições:
- /sda1 Linux (o sistema)
- /sda2 a partição swap
- /sda3 onde o windows foi instalado

Você também pode visualizar as partições usando o GParted.

Vamos primeiramente criar uma pasta chamada nlinux, e em seguida, montar a partição do Linux (sda1) nela. Lembre-se que no meu caso, instalei o Linux em sda1, você deve identificar onde você instalou e trocar sda1 pela sua partição.
#mkdir /dev/nlinux
#mount /dev/sda1 /dev/nlinux
Agora vamos instalar o GRUB no HD.
#grub-install --root-directory= /dev/nlinux /dev/sda
Após a instalação, se correr tudo certo, uma mensagem aparecerá informando que a instalação completou e não houve erro "Installation Finished. No error reported ".
Para finalizar dê o seguinte comando.
#update-grub
Reincie o sistema operacional.
Você pode retirar algumas entradas de menus e setar o Windows para iniciar primeiro no arquivo: /boot/grub/grub.cfg. Lembre-se de abrí-lo como root para efetuar as alterações.
Antes de alterar faça backup.
Procure a linha
set default="0" - o número 0 refere-se ao primeiro menuentry "nome do sistema" encontrado no arquivo. Você pode apagar os menuentry que não deseja ficando apenas 2, o do Window e do Linux.
Mais informações você encontra em https://help.ubuntu.com/community/Grub2.
Logo abaixo mostro como ficou configurado meu GRUB.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="1"
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=auto
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
set locale_dir=($root)/boot/grub/locale
set lang=pt_BR
insmod gettext
if [ "${recordfail}" = 1 ]; then
set timeout=-1
else
set timeout=10
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,71,115; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
menuentry 'Kubuntu Linux 2.6.38-13' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod part_msdos
insmod reiserfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root e4f4b685-8ed1-41b6-9a4c-002ec950e9ec
linux /boot/vmlinuz-2.6.38-13-generic-pae root=UUID=e4f4b685-8ed1-41b6-9a4c-002ec950e9ec ro quiet splash vt.handoff=7
echo 'Carregando o Kubuntu Linux ...'
initrd /boot/initrd.img-2.6.38-13-generic-pae
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set=root 063CDDE63CDDD0B3
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
→