usando o grub2 com /boot separado
Tomei coragem pra testar o
GRUB 2.
Instalando
- Primeiro, instalando:
# aptitude install grub2
- Até aí tudo bem porque é adicionado apenas uma entrada no /boot/grub/menu.lst para o novo chainloader do Grub2
- Então, implantamos o grub no disco:
# grub-install /dev/sda
- E já no primeiro boot nada de funcionar.
Entendendo o problema
No GRUB2 há alguns arquivos novos de configuração:
- /etc/default/grub : com alguns parâmetros básicos
- /etc/grub.d : pasta com scripts que geram o novo formato de arquivo de configuração do grub
Para gerar o novo arquivo de configuração que possua as entradas de menu, rode:
# update-grub
Mas comigo isso dá:
# update-grub
grub-probe: error: unknown filesystem
Resolvendo o problema
Assim não é criado
/boot/grub/grub.cfg e quando a máquina inicia tenho o terminal do GRUB apenas. Daí vi que no
/usr/sbin/update-grub é feito na linha 77:
GRUB_FS="`grub-probe --target=fs /`"
Mas aí está o
problema minha instalação usa LVM, logo (por compatibilidade com o grub antigo) meu
/boot é na verdade uma partição
ext3 nativa sem lvm. Por algum motivo esta versão do GRUB2
parece não entender LVM. De toda forma, mexendo na unha funciona, trocando a linha 77 acima por:
GRUB_FS="`grub-probe --target=fs /boot`"
Além disso foi preciso resolver também:
- Informar ao grub qual minha partição com o /boot no /etc/default/grub (partição de boot = /dev/sda3 = (hd0,3)) :
GRUB_DRIVE="(hd0,3)"
- Ainda assim o update-grub gera uma coisa errada que é o caminho para fonte, que no meu caso o script /etc/grub.d/00_header gerou como:
font (vg0-root)/usr/share/grub/unifont.pff
- Para consertar isso fiz:
- Alterei o /etc/grub.d/00_header na linha 38 para:
for i in /boot/grub/unifont.pff /usr/share/grub/unifont.pff ; do
if test -e $i && grub_path=`convert_system_path_to_grub_path $i` ; then
- Copiei obviamente /usr/share/grub/unifont.pff para /boot/grub/unifont.pff
E agora o
update-grub funciona, gera meu arquivo bonitinho e a máquina inicializa numa boa.
No meu caso o
/boot/grub/grub.cfg ficou:
# DO NOT EDIT THIS FILE
#
# It is automaticaly generated by /usr/sbin/update-grub using templates from /etc/grub.d
# and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,3)
font (hd0,3)/grub/unifont.pff
set gfxmode=800x600
insmod gfxterm
insmod vbe
terminal gfxterm
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###
### BEGIN /etc/grub.d/10_linux ###
menuentry "Debian GNU/Linux, linux 2.6.22-3-amd64" {
linux (hd0,3)/vmlinuz-2.6.22-3-amd64 root=/dev/mapper/vg0-root ro
initrd (hd0,3)/initrd.img-2.6.22-3-amd64
}
menuentry "Debian GNU/Linux, linux 2.6.22-3-amd64 (single-user mode)" {
linux (hd0,3)/vmlinuz-2.6.22-3-amd64 root=/dev/mapper/vg0-root ro single
initrd (hd0,3)/initrd.img-2.6.22-3-amd64
}
### END /etc/grub.d/10_linux ###
Onde colocar parâmetros de boot e startupmanager
Uma coisa bem legal para os iniciantes é que o
startupmanager funciona também com GRUB2 !
Mas se você quer customizar mais seus parâmetros de boot você vai precisar editar na mão o arquivo
/etc/default/grub a exemplo:
GRUB_CMDLINE_LINUX="splash GRUB_DISTRIBUTOR=Debian vga=791 video=nvidiafb:1280x800-16@60"
Parabéns a quem dá metendo a mão no GRUB2 !!! Tá ficando muito bom !!! Tem até joguinho que roda em cima do GRUB2

:
# aptitude install grub-invaders
Entrada de boot para o Ruindow$
Conforme
http://grub.enbug.org/TestingOnX86:
# Entry 1 - Chainload another bootloader, but does not work for NTFS here
# To boot the windows from that partition get Ultimate Boot CD, boot it,
# select F3 for Filesstem Tools, from the next list of options select
# Smart Boot Manager by pressing 3, after the boot manager comes up
# browse the NTFS partition and boot from it. Both grub-0.97 nor 1.95
# cannot do that, somehow.
menuentry "Chainload other OS" {
set root=(hd0,1)
chainloader +1
}
Conforme informação acima, parece não funcionar com partições NTFS. Mas já é o caminho.
Esta obra está licenciada sob uma Licença Creative Commons.