GRUB 2 és el gestor i carregador d'arrencada per defecte d'Ubuntu des de la versió 9.10 (Karmic Koala). Quan l'ordinador s'inicia, GRUB 2 presenta un menú i espera l'entrada de l'usuari o bé transfereix el control automàticament al nucli del sistema operatiu. GRUB 2 és descendent de GRUB (de l'anglès GRand Unified Bootloader), i ha estat reescrit completament per tal de proporcionar a l'usuari més flexibilitat i rendiment. GRUB 2 és programari lliure.
En aquesta guia, GRUB 2 fa referència a la versió del Grub 1.98 o posterior i GRUB fa referència al GRUB antic (versió 0.97). Per determinar la vostra versió, utilitzeu la comanda grub-install -V. La versió 1.99, la predeterminada de l'Ubuntu 11.04 (Natty Narwhal), va introduir alguns canvis importants en el contingut del fitxer del Grub. Aquesta guia cobreix l'ús del Grub 1.98, la versió predeterminada de l'Ubuntu 10.04 LTS (Lucid Lynx) i el Grub 1.99, la versió inclosa a l'Ubuntu 12.04 LTS (Precise Pangolin). El contingut que faci referència a altres versions del GRUB 2 serà indicat apropiadament.
Millores
Les principals millores del GRUB 2 respecte el GRUB original inclouen:
- Compatibilitat amb scripts incloent expressions condicionals i funcions
- Càrrega de mòduls dinàmics
- Mode rescat
- Menús personalitzats
- Temes
- Compatiblitat amb el menú gràfic d'arrecnada i capacitat de presentació millorada
- Possibilitat d'arrencar imatges ISO autònomes directament des del disc dur
- Nova estructura del fitxer de configuració
- Compatibilitat amb arquitectures no-x86 (com per exemple PowerPC)
- Compatibilitat universal per UUIDs (no només de l'Ubuntu)
GRUB contra GRUB 2
El menú per defecte del GRUB 2 serà familiar per als usuaris del GRUB però hi ha un gran nombre de diferències per sota la superfície.
- En una nova instal·lació de l'Ubuntu 9.10 o posterior sense cap altre sistema operatiu instal·lat, el GRUB 2 arrencarà directament a la pantalla d'inici de sessió si n'hi ha o a l'escriptori en cas contrari, sense mostrar cap menú.
- Mantingueu premuda la tecla MAJ dreta per mostrar el menú durant l'arrencada. En alguns casos, prémer la tecla ESC també pot mostrar el menú.
No hi ha /boot/grub/menu.lst, s'ha substituït per /boot/grub/grub.cfg.
- No hi ha "/find boot/grub/stage1" a l'indicador del grub. La fase 1.5 ha estat eliminada.
El fitxer de configuració principal de Grub 2, normalment situat a la carpeta /boot/grub, és grub.cfg. És el producte de diversos scripts i normalment no s'ha d'editar directament.
El fitxer grub.cfg es sobreescriu durant certes actualitzacions de paquets del Grub 2, sempre que s'afegeix o elimina un nucli, o quan l'usuari executa update-grub
El menú amb la llista dels nuclis de Linux disponibles es genera automàticament executant update-grub.
L'usuari pot crear un fitxer personalitzat on hi pot posar les seves pròpies entrades de menú. Aquest fitxer no se sobreescriurà. Per defecte, un fitxer personalitzat anomentat 40_custom està disponible a la carpeta etc/grub.d.
El fitxer de configuració principal per canviar la configuració del menú s'anomena grub i per defecte es troba a la carpeta /etc/default
Hi ha diversos fitxers per configurar el menú - /etc/default/grub esmentat anteriorment, i tots els fitxers del directori /etc/grub.d/.
La numeració de particions ha canviat. La primera partició ara és 1 en lloc de 0. El primer dispositiu/unitat encara és hd0 per defecte (sense cap canvi). Aquestes denominacions es poden alterar en el fitxer device.map a la carpeta /boot/grub
Les cerques automatitzades per a altres sistemes operatius, com Windows, es realitzen sempre que s'executa update-grub. Els sistemes operatius trobats s'afegiran al menú del GRUB 2.
Els canvis fets als fitxers de configuració no tindran efecte fins que s'executi l'ordre update-grub.
Actualitzant a GRUB 2 des de GRUB
El GRUB 2 és el gestor d'arrencada per defecte d'Ubuntu. Els usuaris que encara tenen el Grub 0.97 instal·lat en els seus sistemes de l'Ubuntu poden actualitzar a GRUB 2 mitjançant la instal·lació de les versions de l'Ubuntu actualemnt en període de manteniment o mitjançant l'habilitació de dipòsits que contenen el paquet del GRUB 2 grub-pc.
Visiteu la documentació de la comunitat a Grub2/Upgrading per a més informació i instruccions.
Estructura de fitxers
GRUB 2 incorpora una jerarquia de directoris i fitxers totalment revisada. Les principals carpetes del GRUB 2 inclouen /etc/grub.d, que conté els principals scripts del GRUB 2, i /boot/grub, que conté els mòduls del GRUB 2 i el fitxer de menú (grub.cfg). La personalitzacions de l'usuari normalment es fan al fitxer /etc/default/grub.
La descripció de les principals carpetes i fitxers del GRUB 2 es toben a la pàgina Grub2/Setup de la documentació de la comunitat.
Configuració del GRUB 2
Els canvis de configuració normalment es fan al fitxer /etc/default/grub i als scripts personalitzats que es troben a /etc/grub.d. No s'aplica cap canvi al menu del GRUB 2 fins que no s'executa la comanda update-grub com a administrador. Aquesta comanda executa els scripts de configuració del GRUB 2 i actualitza el fitxer /boot/grub/grub.cfg.
Les descripcions de les opcions del GRUB 2 i com canviar-les es poden trobar a la pàgina Grub2/Setup de la documentació de la comunitat.
Comportament de la pantalla d'arrencada
GRUB 2 loads before any operating system. Its modular components are loaded on an as-needed basis. Menu display behavior is generally determined by settings in /etc/default/grub. Review the "Configuring GRUB 2" section above for specific entry and formatting guidance.
El GRUB 2 es carrega abans que qualsevol sistema operatiu. Els seus components modulars es van carregant segons sigui necessari. El comportament de la visualització del menú es determina generalment pels paràmetres de /etc/default/grub. Reviseu la secció "Configuració del GRUB 2" de més amunt per a més informació.
Inici per defecte
- Si no es detecta cap altre sistema operatiu el GRUB 2 iniciarà directament el sistema operatiu per defecte sense mostrar cap menú.
- Si es detecta algun altre sistema operatiu el GRUB 2 mostrarà el menú.
Pantalla temporitzada
El menú es mostra durant un nombre predeterminat de segons. L'entrada predeterminada està ressaltada i l'usuari pot fer altres seleccions fins que el temps d'espera expiri. El temps d'espera per defecte és de 2 segons. El temporitzador continua fins que es prem qualsevol tecla o se selecciona l'entrada ressaltada prement ENTER.
- Si l'usuari no prem cap tecla, el GRUB 2 arrenca amb l'entrada predeterminada al final del període de temps d'espera.
- Una vegada premuda una tecla el temps d'espera queda desactivat i l'usuari ha de fer una selecció manualment.
L'entrada predeterminada està determinada per l'opció GRUB_DEFAULT= del fitxer /etc/default/grub; la primera entrada del menú té el valor "0".
Ocult
- Operacions ocultes normals habilitades:
- No es mostra cap entrada de menú. La pantalla de presentació, si està configurada, es mostrarà
El temps que la pantalla es manté buida però disponible per a la visualització queda determinat per una opció a /etc/default/grub (GRUB_HIDDEN_TIMEOUT)
GRUB 2 pot mostrar un compte enrere per proporcionar retroacció visual sobre el temps restant fins que es tria la selecció predeterminada. La configuració del temps d'espera està habilitada a /etc/default/grub (GRUB_HIDDEN_TIMEOUT_QUIET)
- L'usuari pot fer que es mostri el menú prement qualsevol tecla.
- Quan es mostra el menú, el compte enrere GRUB_TIMEOUT comença. Prement qualsevol tecla s'atura el compte enrere.
Si no es prem cap tecla abans de que s'acabi el compte enrere es seleccionarà l'entrada de menú per defecte, determinada a /etc/default/grub.
- Quan es mostra el menú, el compte enrere GRUB_TIMEOUT comença. Prement qualsevol tecla s'atura el compte enrere.
- Operacions del menú ocult no esperades (anormal):
- L'usuari pot ser capaç de mostrar el menú d'una o més de les següents maneres:
- Mantenint premuda la tecla MAJ al principi del procés d'arrencada fins que es mostri el menú.
- El GRUB 2 cerca un senyal de tecla MAJ premuda durant l'arrencada. Si es prem la tecla o el GRUB 2 no en pot determinar l'estat, es mostra el menú.
- Prement la tecla ESC en una finestra de temps de 3 segons mentre s'executa el GRUB 2.
- Mantenint premuda la tecla MAJ al principi del procés d'arrencada fins que es mostri el menú.
- L'usuari pot ser capaç de mostrar el menú d'una o més de les següents maneres:
Desat
Es pot desar un sistema operatiu executant sudo grub-set-default en cas que la opció GRUB_DEFAULT=saved estigui activada a /etc/default/grub. També es pot desar si GRUB_SAVEDEFAULT=true també està activat a /etc/default/grub. En aquest cas, es manté el sistema operatiu per defecte fins que se seleccioni un altre sistema opertariu del menú del GRUB 2 o s'executi la comanda grub-set-default`
Ha fallat l'última arrecnada o arrencada en mode recuperació
Si l'última arrencada ha fallat o després d'iniciar una arrencada en mode de recuperació el menú es mostrarà fins que l'usuari faci una selecció.
Per canviar aquest comportament, editeu /etc/default/grub afegint la variable GRUB_RECORDFAIL_TIMEOUT. Establiu el valor de manera similar a l'opció GRUB_TIMEOUT:
- Per al valor -1, no hi haurà compte enrere i per tant no es mostrarà el menú.
- Per al valor 0, el menú no es mostrarà, ni tant sols per a arrencades fallides.
Per a valors >=1, el manú es mostrarà durant el nombre de segons especificats.
Executeu update-grub desprès d'efectuar els canvis.
A vegades l'edició de GRUB_RECORDFAIL_TIMEOUT no funciona correctament. En aquests casos, editeu el fitxer /etc/grub.d/00_header i canvieu el valor de timeout a la línia 236 (aquesta línia és a la funció make_timeout()):
set timeout=-1
pel valor que assignaríeu a GRUB_RECORDFAIL_TIMEOUT.
Executeu update-grub després d'efectuar el canvi. Agaïments especials a McCunha per a aquesta solució.
Aquest canvi, però, encara fa que el GRUB 2 s'iniciï en mode text. Per tant, es requereix un canvi addicional. Editeu /etc/grub.d/10_linux i canvieu la línia 188 a
set linux_gfx_mode=keep
Altre cop, executeu update-grub un cop s'hagi efectuat el canvi.
Protecció per contrasseya
El GRUB 2 és capaç de protegir mitjançant una contrassenya l'edició del menú, l'accés a la línia d'ordres del GRUB 2 i una o més entrades del menú. També pot limitar l'accés a entrades del menú específiques a usuaris específics i pot xifrar les contrassenyes de text pla per a més seguretat. Consulteu la documentació de la comunitat a Grub2/Passwords
Entrades de menú personalitzades
El GRUB 2 permet als usuaris crear seleccions de menú personalitzades que s'afegiran automàticament al menú principal quan s'executi sudo update-grub. El fitxer 40_custom disponible a /etc/grub.d/ que es pot fer servir com a exemple per crear altres menús personalitzats. La informació sobre la construcció i l'ús de menús personalitzats al GRUB 2 es troba a la documentació de la comunitat Grub2/CustomMenus.
Resolució de problemes
El GRUB 2 proporciona una excel·lent capacitat per resoldre i corregir problemes d'arrencada des del menú d'arrencada o des del terminal GRUB 2. Els procediments de recuperació i resolució de problemes es detallen en el document de la comunitat Grub2/Troubleshooting, que inclou la secció Selected_Problems_and_Bugs amb indicacions per a la resolució de problemes freqüents.
Solució de bloquejos durant el reinici o l'aturada
Si l'ordinador es congela en intentar tancar o reiniciar, intenteu modificar el fitxer /etc/default/grub. Obriu el fitxer amb la comanda gksudo gedit /etc/default/grub (per editar-lo mitjançant una interfície gràfica) o sudo nano /etc/default/grub (per editar-lo mitjançant una la línia de comandes). També podeu utilitzar qualsevol altre editor de text pla (com Vim, Emacs, Kate, Leafpad). Aneu a la línia que comença per GRUB_CMDLINE_LINUX_DEFAULT i afegiu-hi reboot=bios al final.
La línia resultant hauria de ser semblant a GRUB_CMDLINE_LINUX_DEFAULT="quiet splash reboot=bios".
Guardeu el fitxer, executeu sudo update-grub i reinicieu l'ordinador. Ara els reinicis i aturades haurien de funcionar correctament.
Per a un cert maquinari (especialment DELL) el paràmetre del nucli que s'ha d'afegir és reboot=pci (en lloc de reboot=bios). La resta del procediment continua sent el mateix.
Pantalles
El GRUB 2 pot fer més que proporcionar un simple menú en blanc i negre. El seu menú pot ser personalitzat per l'usuari per presentar un menú visualment més atractiu canviant els fons, colors de la lletra i resolucions.
Per a més informació sobre l'ús d'imatges de fons i el canvi de colors i resolucions de menú, vegeu la documentació de la comunitat Grub2/Displays
Temes
La personalització del GRUB 2 mitjançant temes encara està en desenvolupament, tal com la integració amb gfxmenu. Els elements del tema inclouen colors, tipus de lletra, indicadors de progrés, menús i etiquetes. Consulteu la secció Enllaços a la part inferior d'aquesta pàgina per obtenir referències.
Instal·lació/Reinstal·lació/Migració del GRUB2
Visiteu la documentació de la comunitat a Grub2/Installing. Informació referent a l'actualització des del GRUB 0.97 (antic) cap al GRUB 2 es pot trobar a Grub2/Upgrading.
Arrencant una imatge ISO des d'una entrada del menú
Les imatges ISO d'Ubuntu, així com moltes imatges ISO d'utilitats i alguns altres sistemes operatius Linux, es poden arrencar des d'un disc dur a través d'una entrada del menú del GRUB 2. Això elimina la necessitat de crear un CD/DVD i permet que els fitxers d'imatge d'arrencada s'emmagatzemin només al disc dur.
Per obtenir informació sobre aquesta característica del GRUB 2, visiteu la pàgina de documentació de la comunitat Grub2/ISOBoot
Seguretat
Impedint arrancar des de la línia de comandes del GRUB2
La capacitat d'arrencar manualment utilitzant la línia de comandes del Grub constitueix el major risc de seguretat en Linux. Qualsevol sistema operatiu es pot arrencar d'aquesta manera des de qualsevol unitat USB o CD/DVD, evitant les restriccions de BIOS. Posar contrasenyes o bloquejar els elements del menú (des dels fitxers de configuració de Grub) no impedeix que un usuari arrenqui manualment utilitzant les ordres introduïdes a la línia d'ordres de GRUB. (Un cop s'inicia un sistema operatiu, per descomptat, es pot utilitzar per accedir a qualsevol part d'un disc dur no encriptat).
Actualment no hi ha opcions per evitar l'ús de la línia d'ordres de Grub. Fer-ho restringiria la càrrega d'arrencada només a les opcions del menú i això no es considera savi.
Miscel·lània
Arrencada d'una consola sèrie
Si voleu que el GRUB funcioni sobre una línia sèrie, haureu de descomentar l'opció GRUB_TERMINAL a /etc/default/grub i posar el seu valor a serial el lloc del valor console que té per defecte. Alternativament es pot afegir l'opció en lloc de sobreescriure-la (resultant GRUB_TERMINAL="console serial") per tenir el menú del GRUB 2 tant en sèrie com a la consola local. Per defecte, els paràmetres per la línia sèrie estan configurats per utilitzar el primer port sèrie (ttyS0) amb una taxa de transferència de 9600 bit/s (bauds) amb 8 bits de dades, 1 bit de final de paraula i sense paritat.
Si voleu utilitzar un port sèrie diferent o el vostre terminal sèrie utilitza paràmetres diferents, haureu d'afegir una línia GRUB_SERIAL_COMMAND per especificar els paràmetres addicionals a la comanda serial. La comanda serial del GRUB 2 utilitza la mateixa sintaxi que en el GRUB anitc (documentada aquí). Per exemple, la línia indicant els paràmetres per defecte descrits més amunt:
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1"
Un altre exemple d'una línia sèrie a 4800 bit/s (bauds), 7 bits de dades, 1 bit de final de paraula i paritat parella:
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=4800 --word=7 --parity=even --stop=1"
Arrencada del FreeBSD, NetBSD, i encadenament o sistemes multiarrencada
Vegeu la pàgina Grub2OtherOs de la ducumentació de la comunitat.
Enllaços
Grub 2 (Ubuntu Wiki)