sabato 30 giugno 2012

Archlinux: aggiornare GRUB alla versione 2

Aggiornamento: da ieri, 20 Luglio 2012, nei repository ufficiali di Archlinux è completamente sparito GRUB prima versione per lasciare posto a GRUB2. Quindi da oggi in poi sicuramente se installate (o aggiornate) Archlinux vi ritroverete con GRUB2.
Per questa ragione la seguente guida ormai non serve più ;)

L'installer predefinito di Archlinux (AFI ossia Arch Installation Framework) non supporta GRUB2 quindi se avete installato Archlinux seguendo la procedura classica sicuramente vi ritroverete, come me, ad usare GRUB prima versione (0.97) invece del più moderno GRUB2.
In questa miniguida vi spiegherò come aggiornare il vostro GRUB alla nuova versione direttamente dal vostro Archlinux (quindi senza dover rifare tutta la procedura di installazione del sistema operativo!).
Prima di cominciare però alcune premesse: darò per scontato che avete installato GRUB tramite la procedura ufficiale (quindi nella partizione montata su /boot) e sul Hard Disk primario, quindi /dev/sda (ovviamente ricordatevi di sostituire eventualmente sda con il valore corrispondente al vostro Hard Disk primario se diverso, quello su cui è installato tutto il sistema operativo boot compreso. Se avete seguito la procedura ufficiale comunque dovrebbe essere sda anche per voi!).
Infine darò per scontato anche che abbiate già installato sudo (perché ovviamente servono i diritti di root per poter scrivere e svolgere operazioni sulla partizione di boot).

Bene, ora cominciamo!
Innanzitutto, per evitare qualsiasi guaio futuro, facciamo un bel backup dell'attuale configurazione di GRUB.
Da un terminale digitare, uno dopo l'altro, i seguenti tre comandi:
sudo mv /boot/grub /boot/grub-legacy
sudo dd if=/dev/sda of=/home/mbr_backup bs=512 count=1
sudo dd if=/dev/sda of=/home/bootcode_backup bs=446 count=1

Ora che abbiamo backuppato tutto (e quindi possiamo ripristinare in caso di eventuali errori) andiamo ad installare GRUB2.
Sempre da terminale digitare:
sudo pacman -S grub2-bios
Vi verrà chiesto di rimuovere la vecchia versione di GRUB in quanto, ovviamente, è in contrasto con GRUB2. Accettate e proseguite con l'installazione di tutto il necessario.
Ora dobbiamo caricare un modulo che permetta a GRUB2 di identificare correttamente i dischi e le partizioni.
Da terminale date:
sudo modprobe dm-mod

Una volta installato GRUB2 dobbiamo configurarlo.
Da terminale digitate in sequenza i seguenti comandi, uno per volta:
sudo grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --debug /dev/sda

sudo mkdir -p /boot/grub/locale

sudo cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

sudo grub-mkconfig -o /boot/grub/grub.cfg

Se non otterrete alcun messaggio di errore allora avrete finalmente GRUB2 installato e configurato alla perfezione. Riavviate e testate che tutto sia a posto ;)

P.s.: nel caso invece in cui si verifichino problemi o riceviate dei messaggi di errore durante una qualsiasi delle operazioni innanzitutto NON disperate (avete sempre dei backup pronti al ripristino in ogni caso!) e fate riferimento alla Wiki ufficiale di Archlinux per trovare possibili soluzioni: GRUB2 wiki.