Última actualització: desembre 2012
Grub2 té fitxers a 3 directoris diferents:
- /etc/default /grub, és un fitxer en el que podrem configurar coses del menú de grub2
- /etc/grub.d/, és un directori que conté diferents scripts que es faran servir per a generar el fitxer grub.cfg
- /boot/grub/grub.cfg és el fitxer de configuració de grub2, que no tenim que tocar ni editar (aquest és un canvi important respecte a grub legacy i el seu fitxer menu.lst en el que si es podia treballar directament)
El fitxer de configuració de grub2 hem dit que és /boot/grub/grub.cfg. No s'ha de tocar degut a que les modificacions que haguem fet es perderan en exectuar (nosaltres o el sistema durant una actualització):
update-grub2
update-grub2 el que fa es llegir el directori /etc/grub.d i buscar scripts executables en el seu interior. Executa els scripts que troba en aquest directori, en ordre segons la seva numeració, i tenint en compte el que tinguem configurat al fitxer /etc/default/grub genera el fitxer grub.cfg.
/etc/default/grub.
Algunes coses que podem canviar a /etc/default/grub:
- GRUB_DEFAULT= 0/saved, si posem 0 es seleccionarà per defecte la primera entrada. L'opció saved es interessant, ja que quedarà seleccionada automàticament la última entrada que es va seleccionar a l'ultima arrencada del sistema
- GRUB_TIMEOUT=10, apareixeria el menú durant 10 segons abans d'arrencar el sistema per defecte. Si posen 0 arrencarà el sistema per defecte sense cap espera. Si posen -1 el comptador queda aturat i no arrencarà cap sistema fins que nosaltres manualment fem alguna selecció.
- GRUB_HIDDEN_TIMEOUT=0, així tal qual amaga el menú de grub. Si posem un valor esperarà els segons que haguem posat encara amb el menú amagat. Si comentem la línia llavors el menú de grub serà visible.
- GRUB_HIDDEN_MENU_QUIET=true, true mostra compte enrere; l'altre opció seria "false".
- #GRUB_CMDLINE_LINUX_DEFAULT="splash", si descomentem ens mostraria un menú gràfic i amagaria els missatges del kernel. Si volem l'arranc clàssic amb tots els detalls, hauríem de tenir activades les dues línies següents:
- GRUB_CMDLINE_LINUX_DEFAULT="nosplash debug"
- GRUB_TERMINAL=console
- #GRUB_GFXMODE=800x600, si descomentem la línia tindriem un menú de grub gràfic (no text) amb la resolució que aquí definim
Si volem poder accedir a grub2 via port serial (parlem d'un equip que no tingui monitor, p.e.), haurem de configurar les següents línies:
GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,9600n8"
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=9600 --unit=0 --word=8 --parity=no --stop=1"
/etc/grub.d/
- Si el que volem es afegir alguna entrada al menú manualment, ho podem fer afegint-la un fitxer /etc/grub.d/40_custom. Un cop afegida l'entrada que volguem, ens hem de recordar d'executar update-grub2.Un altre manera, potser més neta, seria crear un nou script, p.e. /etc/grub.d/41_custom, fer-lo executable i afegir-li les entrades que volguem d'aquesta manera:
#!/bin/sh -e
cat << EOF
menuentry "Linux" {
set root=(hd0,5)
linux /boot/vmlinuz
initrd /boot/initrd.img
}
menuentry "Windows" {
set root=(hd0,1)
chainloader (hd0,1)+1
}
EOF
- Per a canviar els colors del menú: ho podem fer modificant /etc/grub.d/05_debian_theme
Grub2 i els discs
- Grub legacy identificava els discs i particions començant per 0. Per exemple a grub-legacy /dev/sda1 s'dentificava com (hd0,0). En canvi a grub2, les particions es numeren començant per 1 i per tant /dev/sda1 s'identifica com (hd0,1).
- Grub identifica els discs segons la informació que li proporciona la BIOS (hd0 el primer disc, hd1 el segon...) i els guarda a una llista a /boot/grub/device.map. En ocasions aquesta informació potser no del tot correcte i provocar-nos problemes en l'arranc del sistema. Una opció seria modificar manualment aquest fitxer i mapejar correctament els discs. Un cop modificat el fitxer, recordar fer un grub-install.
Per a instal·lar o reinstal·lar grub2 a l'MBR:
grub-install /dev/sda (si sda és el disc a on el volem instal·lar)