IMPORTANT: Degut a un error a la farga de la generalitat no es pot accedir com a usuari anonymous als fitxers dels cursos. Utilitzeu l'usuari: prova i la paraula de pas 123456
GRUB 2
De SergiTurWiki
La principal novetat de la versió 2 és que permet uns menús d'arrancada completament gràfics.
Paquets instal·lat en una Ubuntu Jaunty (9.04):
$ dpkg -l | grep grub ii grub 0.97-29ubuntu53 GRand Unified Bootloader ii grub-common 1.96+20080724-12ubuntu2 GRand Unified Bootloader, version 2 (common
Contingut |
Fases de grub 2
Les fases per les que passa el procés d'arrancada amb GRUB són:
- La BIOs llegeix el IPL (fase 1) del MBR.
- S'executa el codi IPL del bootloader (/boot/grub/boot.img) que en el cas de Grub 2 és la fase 1, fixeu-vos que ocupa 512 bytes, el mateix que el MBR.
- Això executa el primer sector de la imatge principal (/boot/grub/diskboot.img), la localització d'aquest fitxer es troba guardada a algun lloc del fitxer de la fase 1 (/boot/grub/boot.img) i normalment es troba a la regió de compatibilitat de dos, és a dir a la resta de la pista 1 que no és el MBR (En sistemes duals amb Windows 7 pot ser diferent ja que aquesta secció ja no es troba lliure.) Això és el que abans era la fase 1.5
- Finalment s'executa la fase 2 amb l'imatge /boot/grub/core.img
- normal.mod executa i interpreta el fitxer de configuració de grub (típicament mostra el menú de GRUB).
$ ls -la /boot/grub/*img -rw-r--r-- 1 root root 512 2010-12-27 09:17 /boot/grub/boot.img -rw-r--r-- 1 root root 512 2010-12-27 09:17 /boot/grub/cdboot.img -rw-r--r-- 1 root root 23817 2010-12-27 09:17 /boot/grub/core.img -rw-r--r-- 1 root root 512 2010-12-27 09:17 /boot/grub/diskboot.img -rw-r--r-- 1 root root 10240 2010-12-27 09:17 /boot/grub/grldr.img -rw-r--r-- 1 root root 29028 2010-12-27 09:17 /boot/grub/kernel.img -rw-r--r-- 1 root root 1024 2010-12-27 09:17 /boot/grub/lnxboot.img -rw-r--r-- 1 root root 1024 2010-12-27 09:17 /boot/grub/pxeboot.img
El sistema és més flexible, si us fixeu per exemple es pot precarregar la imatge pxeboot.img abans de la core.img per tal de tenir suport per a xarxa.
Instal·lació
Karmic Koala (9.10) en endavant
Sembla que ja vindrà instal·lat per defecte
Jaunty Jackalope (9.04) o anteriors
Per instal·lar
$ sudo apt-get install grub2
Apareixerà el següent missatge:
Que ens indica que GRUB 2 ha trobat fitxers antics de GRUB i ens recomanen que el GRUB 2 que instal·lem s'executi des de GRUB 1 mitjançant Chain Loading (és a dir tenir GRUB 1 i GRUB 2 al mateix temps conservant el GRUB 1 al MBR). Un cop comprovem que el GRUB 2 instal·lat és correcte se'ns indica que podrem passar GRUB 2 al MBR amb la comanda:
upgrade-from-grub-legacy
El Chain Loading el farà automàticament l'instal·lador.
Ara us mostrarà un missatge sobre les opcions del kernel. Accepteu:
Ara podeu provar el nou GRUB tornant a iniciar la màquina:
$ sudo reboot
Durant la càrrega estigueu atents per entrar al menú de GRUB (amb ESC) i trobareu una nova entrada:
Si us dona l'error:
Error 11: Unrecognized device String
Seguiu les passes deError 11: Unrecognized device String per solucionar el problema. El resultat serà quelcom similar a:
Si voleu fer els canvis permanents, inicieu el sistema i executeu:
$ sudo upgrade-from-grub-legacy Installing GRUB to Master Boot Record of your first hard drive ... Installation finished. No error reported. This is the contents of the device map /boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'. (hd0) /dev/sda GRUB Legacy has been removed, but its configuration files have been preserved, since this script cannot determine if they contain valuable information. If you would like to remove the configuration files as well, use the following command: rm -f /boot/grub/menu.lst*
Canvis respecte a la versió anterior de Grub (Grub Legacy)
Temes
A la versió 1.96 encara no esta suportat. Ho estarà per la Karmic?
Vegeu:
http://grub.gibibit.com/
Notació de Grub 2
Hi ha canvis respecte Grub 1...
- La notació del dispositiu (típicament un disc dur) és igual que a GRUB legacy. hd0 és el primer dispositiu (per exemple sda), hd1 és el segon (p. ex sdb)
- La notació de les particions és diferent. Ara es comença a comptar des de 1
Exemples:
- (hd0,1): és la primera partició del primer disc dur.
- (hd0,2): és la segona partició del primer disc dur.
- (hd1,2): és la segona partició del segon disc dur.
Consulteu també la notació de Grub 1 (Grub legacy) Grub#Notaci.C3.B3_Grub
Mòduls de grub 2
Els trobareu a la carpeta /boot/grub. Com que el MBR és molt petit com per contenir tots els mòduls de Grub 2, només el menú i algunes comandes molt bàsiques es troben al MBR. La gran part de la funcionalitat de GRUB2 es troba a /boot/grub en forma de mòduls (fitxer amb l'extensió .mod) i són inserits a mesura que és necessiten amb l'ordre insmod.
$ ls 915resolution.mod cpuid.mod gcry_crc.mod help.mod multiboot2.mod raid5rec.mod ufs2.mod acpi.mod crc.mod gcry_des.mod hexdump.mod multiboot.mod raid6rec.mod uhci.mod affs.mod crypto.lst gcry_md4.mod hfs.mod nilfs2.mod raid.mod usb_keyboard.mod afs_be.mod crypto.mod gcry_md5.mod hfsplus.mod normal.mod read.mod usb.mod afs.mod cs5536.mod gcry_rfc2268.mod iorw.mod ntfscomp.mod reboot.mod usbms.mod aout.mod datehook.mod gcry_rijndael.mod iso9660.mod ntfs.mod regexp.mod usbtest.mod ata.mod date.mod gcry_rmd160.mod jfs.mod ohci.mod reiserfs.mod vbeinfo.mod ata_pthru.mod datetime.mod gcry_seed.mod jpeg.mod part_acorn.mod relocator.mod vbe.mod at_keyboard.mod diskboot.img gcry_serpent.mod kernel.img part_amiga.mod scsi.mod vbetest.mod befs_be.mod dm_nv.mod gcry_sha1.mod keystatus.mod part_apple.mod search_fs_file.mod vga.mod befs.mod drivemap.mod gcry_sha256.mod linux16.mod part_bsd.mod search_fs_uuid.mod vga_text.mod biosdisk.mod echo.mod gcry_sha512.mod linux.mod part_gpt.mod search_label.mod video_bochs.mod bitmap.mod efiemu32.o gcry_tiger.mod lnxboot.img partmap.lst search.mod video_cirrus.mod bitmap_scale.mod efiemu64.o gcry_twofish.mod loadenv.mod part_msdos.mod serial.mod video_fb.mod blocklist.mod efiemu.mod gcry_whirlpool.mod locale part_sun.mod setjmp.mod video.lst boot.img elf.mod gettext.mod loopback.mod part_sunpc.mod setpci.mod video.mod boot.mod example_functional_test.mod gfxmenu.mod lsmmap.mod parttool.lst sfs.mod videotest.mod bsd.mod ext2.mod gfxterm.mod ls.mod parttool.mod sleep.mod xfs.mod bufio.mod extcmd.mod gptsync.mod lspci.mod password.mod tar.mod xnu.mod cat.mod fat.mod grldr.img lvm.mod password_pbkdf2.mod terminal.lst xnu_uuid.mod cdboot.img font.mod grub.cfg mdraid.mod pbkdf2.mod terminal.mod zfsinfo.mod chain.mod fshelp.mod grubenv memdisk.mod pci.mod terminfo.mod zfs.mod cmostest.mod fs.lst gzio.mod memrw.mod play.mod test.mod cmp.mod functional_test.mod halt.mod minicmd.mod png.mod tga.mod command.lst gcry_arcfour.mod handler.lst minix.mod probe.mod trig.mod configfile.mod gcry_blowfish.mod hashsum.mod mmap.mod pxeboot.img true.mod core.img gcry_camellia.mod hdparm.mod moddep.lst pxecmd.mod udf.mod cpio.mod gcry_cast5.mod hello.mod msdospart.mod pxe.mod ufs1.mod
Un dels mòduls més importants és linux.mod que té el suport per a les ordres initrd i linux. Consulteu l'apartat Grub shell per a més informació.
Grub shell
Cal tenir en compte que respecte a Grub 1 (Grub legacy) moltes ordres han canviat de sintaxi.
Com que el MBR és molt petit com per contenir tots els mòduls de Grub 2, només el menú i algunes comandes molt bàsiques es troben al MBR. La gran part de la funcionalitat de GRUB2 es troba a /boot/grub en forma de mòduls (fitxer amb l'extensió .mod) i són inserits a mesura que és necessiten.
La consola de Grub (Grub shell) apareix quan hi ha problemes.
Hi ha diferents consoles de shell, per exemple si us surt:
grub rescue>
És un conjunt restringit de la shell normal, per intentar activar la shell "normal" de Grub:
grub rescue> set prefix=(hdX,Y)/boot/grub grub rescue> insmod (hdX,Y)/boot/grub/normal.mod rescue:grub> normal sh:grub>
En aquest últim cas vegeu com ha canviat el PROMPT, aquest prompt és el prompt de shell normal.
Anem a veure ara com es pot fer una arrencada "normal" amb ordres de Grub:
Algunes de les ordres disponibles a GRUB rescue són:
"insmod", "ls", "set" i "unset"
L'ordre ls us mostrarà les particions detectades.
El primer que cal saber és on està la partició que conté la carpeta /boot
grub rescue> set prefix=(hdX,Y)/boot/grub
on X és el número de disc físic i Y és el número de partició. Tingueu en compte que la notació de Grub 2 (GRUB_2#Notaci.C3.B3_de_Grub_2) és diferent que la de Grub 1,
Per exemple:
grub rescue> set prefix=(hd0,0)/boot/grub
Correspon a la primera partició del primer disc dur. El següent pas és inserir el modul de linux per tenir més comandes disponibles:
grub rescue> insmod (hdX,Y)/boot/grub/linux.mod
nota: Si /boot està a una partició a part cal ometre el prefix /boot: prefix=(hdX,Y)/grub i insmod (hdX,Y)/grub/linux.mod).
Ara teniu disponibles les ordres "linux" i "initrd" que són similars a les disponibles a Grub 1, per arrancar una sistema Linux:
set root=(hd0,5) linux /boot/vmlinuz26 root=/dev/sda5 initrd /boot/kernel26.img boot
IMPORTANT: Noteu com ara root no és un ordre sinó una variable que s'estableix amb l'ordre set
Suport de paginació
Per activar el suport de paginació:
sh:grub> set pager=1
Podeu consultar també GRUB#GRUB_Shell.
Grub 2 commands
Resum dels canvis:
TODO:
find is replaced with search geometry is gone and replaced by ls kernel (in menu.lst) is replaced by linux (and other terms for different OSs) title (in menu.lst) is replaced by menuentry (in grub.cfg) root is still used but is now a variable setup is gone; the work is done by grub-install map is replaced by drivemap device is replaced by loopback (makes a drive out of a file) set is a GRUB 2 term used to set a variable
Splash images
Podeu instal·lar imatges splash amb:
$ sudo apt-get install grub2-splashimages
Ara les imatges es troben a:
/usr/share/images/grub/
Les podeu copiar a la carpeta de GRUB amb:
$ sudo cp /usr/share/images/grub/*.tga /boot/grub/
A:
http://members.iinet.net/~herman546/p20/GRUB2%20Splashimages.html
Trobareu thumbnails de les imatges.
Per utilitzar-les cal editar el fitxer
$ gksu gedit /etc/grub.d/05_debian_theme
Busqueu la línia:
for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
I canvieu-la per
for i in {/boot/grub,/usr/share/images/desktop-base}/Windbuchencom.{png,tga} ; do
On Windbuchencom és la imatge escollida. Ara executeu:
$ sudo grub-mkconfig Updating /boot/grub/grub.cfg … Found Debian background: Windbuchencom.tga Found linux image: /boot/vmlinuz-2.6.27-7-generic Found initrd image: /boot/initrd.img-2.6.27-7-generic Found memtest86+ image: /boot/memtest86+.bin done
A Karmic Koala o
$ sudo update-grub Found Debian background: Windbuchencom.tga Updating /boot/grub/grub.cfg ... Found linux image: /boot/vmlinuz-2.6.28-11-generic Found initrd image: /boot/initrd.img-2.6.28-11-generic Found memtest86+ image: /boot/memtest86+.bin done
En versions anteriors d'Ubuntu per tal d'escriure els canvis a la configuració de GRUB.
Recursos:
Resolució de problemes
Mostrar el menu de grub quan teniu un únic sistema operatiu (Ubuntu)
Cal modificar el fitxer:
$ sudo [joe]] /etc/default/grub
Cal comentar les línies:
GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true
Afegint un # al inici de la línia:
#GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=true
Assegureu-vos també que teniu un valo de GRUB_TIMEOUT diferent de 0 (nombre de segons que teniu per escollir una opció del menú).
NO oblideu de fer:
$ sudo update-grub
Per tal d'aplicar els canvis.
No detecta correctament kopt del grub anterior?
Error 11: Unrecognized device String
Presioneu qualsevol tecla per tal de continuar. Seleccioneu la opció:
Chainload into GRUB 2
Pressioneu la tecla e per tal d'editar-la. Seleccioneu la opció:
root xxxxxxxxxxxxxxxxxxxx
On xxxxxxxxxxxxxxxxxxxx és el UUID del vostre disc dur. Torneu a editar premen la tecla e. Canvieu root per uuid:
uuid xxxxxxxxxxxxxxxxxx
I ara executeu b per iniciar amb els nous canvis. Per fer aquests canvis permanents cal editar el fitxer /boot/grub/menu.lst.
Recursos:
Vegeu també
Enllaços externs
- https://wiki.ubuntu.com/Grub2
- http://members.iinet.net.au/~herman546/p20.html
- http://gabuntu.wordpress.com/2009/07/31/grub-2-con-nuevo-arranque-grafico/
- http://www.soloubuntu.com/2009/06/grub-2-para-arrancar-karmic-koala.html
- http://mundogeek.net/archivos/2009/06/09/grub-2-en-ubuntu-karmic-koala/
- http://www.javipas.com/2009/08/25/probando-karmic-koala-y-grub-2/




