GRUB 2

Basic summary of GRUB 2:

Il file di configurazione di default di Grub 2

Il file /etc/default/grub contiene le impostazioni variabili di grub2. Per esempio, timeout del menu, voci di default del menu da attivare, parametri del kernel, l'uso della grafica di grub e così via.

I file script di Grub 2

I file in /etc/grub.d controllano il file generato che si chiama grub.cfg, che si trova in /boot/grub/.

Il file grub.cfg non dovrebbe essere mai modificato manualmente. Tutte le modifiche devono essere fatte con uno o tutti i seguenti script che si trovano in /etc/grub.d . os-prober dovrebbe gestire il 90% dei casi:

00_header:
05_debian_theme: configura sfondo, colori del testo, temi
10_hurd: trova i kernel Hurd
10_linux: trova i kernel Linux basandosi sul risultato del comando lsb_release.
20_memtest86+: se esiste il file /boot/memtest86+.bin, viene incluso nel menu di avvio.
30_os-prober: cerca s.o. Linux o altri in tutte le partizioni; li include nel menu di avvio.
40_custom: un esempio per aggiungere voci nel menu di avvio personalizzate per altri sistemi operativi.
60_fll-fromiso: un esempio per aggiungere voci nel menu di avvio personalizzate per chiavette USB/schede SSD.
60_fll-fromiso non deve essere modificato, usare /etc/default/grub2-fll-fromiso
Leggere Avviare "fromiso" con Grub 2

Dopo che viene fatta una modifica, grub.cfg deve sapere quali cambiamenti sono avvenuti. Nel caso di aggiornamenti del kernel aptosid il comando update viene avviato in automatico. Nel caso che la modifica sia fatta manualmente da te in qualità di amministratore di sistema devi avviare:

update-grub

Il pacchetto Debian di Grub2 è concepito in modo tale che una modifica tua raramente sarà necessaria.

Modificare le opzioni d'avvio di Grub2 attraverso la schermata di modifica

Grub2-Edit

Se, per qualche ragione, c'è bisogno di una modifica temporanea delle opzioni d'avvio di un kernel evidenziato in Grub2, premere la lettera e per modificare le opzioni del kernel e utilizzando i tasti freccia, scegliere la linea che si vuole modificare, quindi mentre si è ancora nella schermata di modifica usare Ctrl+x per avviare il computer con le opzioni modificate.

Per esempio, per avviare direttamente il sistema in level 3, aggiungere 3 alla fine della linea linux /boot/vmlinuz .

Le modifiche che vengono fatte attraverso la schermata di modifica non sono definitive. Per renderle permanenti si devono modificare i file appropriati. Vedere I file di Grub 2.

Avvio doppio o multiplo con Grub 2

Dal momento che Grub2 ha una configurazione modulare, permette un comando semplice per cercare nuovi sistemi operativi e se ne viene trovato uno prova ad applicare il cambiamento aggiornando menu.cfg. Il comando semplice è:

update-grub

Se si dovesse avere la necessità di aggiungere una voce di menu personalizzata in menu.cfg oppure se 30_os-prober non riesce a scrivere su grub.cfg con i menu chainloader utilizzare l'editor di testo preferito per fare gli aggiustamenti a /etc/grub.d/40_custom.

Esempi di personalizzazione del file 40_custom:

menuentry "second mbr"{
set root=(hd1)
chainloader +1
}
menuentry "second partition"{
set root=(hd0,2)
chainloader +1
}

A seguire si devono applicare i cambiamenti:

update-grub

Se si dovesse lamentare che non conosce la periferica grub di un disco significa che si deve rigenerare devicemap.

Assicurarsi di scegliere la partizione non l'MBR quando si installa un altro sistema operativo:

grub-mkdevicemap --no-floppy
update-grub

Gli avvertimenti possono essere semplicemente ignorati.

Se si dovesse fare un errore, l'aggiornamento probabilmente sovrascriverà l'MBR e si dovrà correggerlo con Grub2 - MBR sovrascritto.

Per riscrivere soltanto grub2 nell'MBR dall'hard disk:

/usr/sbin/grub-install --recheck --no-floppy /dev/sda

Questa riga potrebbe essere necessario lanciarla più volte, finché si convince che si vuole davvero fare quello.

Settore d'avvio MBR sovrascritto da Windows, corrotto o per ripristinare Grub2

NOTA: per ripristinare un gestore d'avvio Grub2 si deve avere una iso aptosid 2009-04 (moros) o succesiva. Alternativamente si può utilizzare chroot con qualsiasi live.iso.

Per riscrivere grub2 nell'MBR e/o per ripristinare grub 2 in generale, si deve avviare una aptosid.iso:

  1. Per identificare e confermare le partizioni (ad es. [h,s]d[a..]X) tutte le azioni seguenti richiedono privilegi di root, quindi diventare root (#):
    $ su
    
  2. Una volta che si è root scrivere:
    fdisk -l
    cat /etc/fstab
    
    Questo per ottenere i nomi corretti.
  3. Quando si è individuato la partizione corretta, creare il punto di mount:
    mkdir -p /media/[hdxx,sdxx,diskx]
    
  4. Montarla:
    mount /dev/xdxx /media/xdxx
    
  5. Adesso riscrivere Grub nell'MBR del primo hard disk (generico):
    /usr/sbin/grub-install --recheck --no-floppy --root-directory=/media/xdxx /dev/sda
    

Utilizzare chroot per ripristinare un Grub2 corrotto o cancellato nell'MBR

Per ripristinare Grub 2, se è stato sovrascritto o se si è corrotto nell'MBR, configurare un ambiente chroot. Qualsiasi iso live sarà sufficiente dal momento che attraverso chroot si riesce ad arrivare al sistema installato nell'hard disk e si può quindi ripristinare la versione di grub appropriata, grub1 (grub-legacy) oppure grub2.

Avviare una live aptosid.iso appropriata per il sistema (32 o 64 bit CD, DVD, chiavetta USB oppure una scheda SSD) ed aprire la console. Scrivere su e premere Invio per ottenere i permessi di root.

Utilizzando fdisk -l o blkid, verificare quale partizione è quella di avvio e prendere il nome corretto. Se si preferisce una interfaccia grafica utilizzare Gparted:

blkid

e controllare che in fstab corrisponda il risultato del comando blkid:

cat /etc/fstab

Facciamo conto che il filesystem di root è su /dev/sda2

mkdir /mnt/aptosid-chroot
mount /dev/sda2 /mnt/aptosid-chroot

Quindi si deve fare il mount per /proc, /run,/dec e /dsys come segue:

mount --bind /proc /mnt/aptosid-chroot/proc
mount --bind /run /mnt/aptosid-chroot/run
mount --bind /sys /mnt/aptosid-chroot/sys
mount --bind /dev /mnt/aptosid-chroot/dev
mount --bind /dev/pts /mnt/aptosid-chroot/dev/pts

If you boot using an EFI system partition you will also need to mount it. Assuming this is /dev/sda1:

mount /dev/sda1 /mnt/aptosid-chroot/boot/efi

Adesso l'ambiente chroot è configurato, si può accedere ad esso con:

chroot /mnt/aptosid-chroot /bin/bash

Ora si è in grado di utilizzare la cache locale di apt oppure modificare i file di cui si ha bisogno come se si fosse veramente avviati un s.o., in questo caso per correggere l'MBR per farci tornare Grub.

To restore Grub 2

apt-get install --reinstall grub-pc

To ensure that grub was installed to the correct disk or partition, run:

dpkg-reconfigure grub-pc

To restore Grub 2 EFI

apt-get install --reinstall grub-efi-amd64

To restore Grub 1 (grub-legacy)

apt-get install --reinstall grub-legacy

Seguire quindi le istruzioni del programma di installazione.

Per uscire dall'ambiente chroot:

Ctrl+d

Riavviare il PC.

Page last revised 29/06/2013 0850 UTC