usando o grub2 com /boot separado

Tomei coragem pra testar o GRUB 2.

Instalando

  1. Primeiro, instalando:
     # aptitude install grub2 
  2. Até aí tudo bem porque é adicionado apenas uma entrada no /boot/grub/menu.lst para o novo chainloader do Grub2
  3. Então, implantamos o grub no disco:
     # grub-install /dev/sda 
  4. E já no primeiro boot nada de funcionar.

Entendendo o problema

No GRUB2 há alguns arquivos novos de configuração:

  1. /etc/default/grub : com alguns parâmetros básicos
  2. /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:

  1. 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)"
  2. 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
  3. Para consertar isso fiz:
    1. 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
    2. 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. smile

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 cool! :

 # 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.

Tags:
Debian1Add my vote for this tag create new tag


Creative Commons License Esta obra está licenciada sob uma Licença Creative Commons.