preLINUX
GRUB in parte si sostituisce al Master Boot Code, in parte si installa subito dopo il MBR e prima della prima partizione. L'operazione viene effettuata in automatico quando si installa un sistema Linux. Qualche sistema operativo non-Linux cancella questa parte di disco e, quando ciò capita, è necessario reinstallare GRUB (grub-install /dev/sda). La stessa riga di comando va eseguita qualora si tratti di riparare un sistema danneggiato o di sostituire file di configurazione persi.
GRUB presenta, all'avvio della macchina e in caso di presenza di più Sistemi Operativi (se ne esiste uno solo questo viene avviato e non viene presentato alcun menù), un menù da cui si può scegliere quale sistema avviare fra quelli installati nel HD. GRUB si basa su alcuni file di configurazione dislocati in varie directory attraverso i quali se ne possono controllare le azioni.
$ less /boot/grub/grub.cfg # # DO NOT EDIT THIS FILE # # It is automatically generated by grub-mkconfig using templates # from /etc/grub.d and settings from /etc/default/grub # ...
Il file principale che contiene le informazioni visualizzate nel menù di avvio è /boot/grub/grub.cfg ma, come riportato anche nelle prime righe del file, si tratta di un file generato, per esempio, per mezzo del comando update-grub (forma semplificata del comando suggerito grub-mkconfig) in conseguenza al contenuto di altri file.
Un primo file con le impostazioni generali è /etc/default/grub:
$ less /etc/default/grub # If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. # For full documentation of the options in this file, see: # info -f grub -n 'Simple configuration' GRUB_DEFAULT=0 ... GRUB_TIMEOUT=10 ...
Le opzioni che possono interessare maggiormente sono:
GRUB_DEFAULT che gestisce il sistema da avviare per default se l'utente non sposta il cursore per la selezione. Il valore 0 indica la prima voce visualizzata nel menù. Se si vuole modificare il sistema avviato per default, si può specificare la nuova riga (si tenga conto del fatto che il conteggio delle righe comincia da 0).
GRUB_TIMEOUT che gestisce il tempo di attesa dell'input dell'utente prima che venga avviato il sistema di default. Nell'esempio è impostato a 10 secondi. È ammesso anche il valore 0 (nessun tempo di attesa) e -1 (attesa indefinita fino all'azione dell'utente).
Le scelte del menù di avvio sono ricavate dai file presenti in /etc/grub.d:
$ ls /etc/grub.d/ 00_header 10_linux 20_memtest86+ 30_uefi-firmware 41_custom 05_debian_theme 20_linux_xen 30_os-prober 40_custom README
Il file README spiega il significato di tali file:
$ less /etc/grub.d/README All executable files in this directory are processed in shell expansion order. 00_*: Reserved for 00_header. 10_*: Native boot entries. 20_*: Third party apps (e.g. memtest86+). The number namespace in-between is configurable by system installer and/or administrator. For example, you can add an entry to boot another OS as 01_otheros, 11_otheros, etc, depending on the position you want it to occupy in the menu; and then adjust the default setting via /etc/default/grub.
I file sono script elaborati nell'ordine del numero contenuto nel nome e se si vuole modificare l'ordine inserendo la voce di un sistema personalizzato si può usare come numero d'ordine 01, 11 ecc... anche se il modo più semplice di modificare il sistema da avviare per default è di intervenire in /etc/default/grub.
Dopo eventuali modifiche del contenuto dei file suddetti è necessario rigenerare il file /boot/grub/grub.cfg, con il comando update-grub, in modo che sia sincronizzarlo con le modifiche effettuate.
http://ennebi.solira.org