Reinstallare o spostare GRUB2 e fargli riconoscere Windows

Ubuntu 9.10 Karmic Koala ha adottato Grub2 al posto dello storico Grub. Per reintallare Grub2 o spostarlo sull’MBR (Master Boot Record) di un altro disco occorre seguire i seguenti passi:

1. Avviare il pc con il disco live di Karmic Koala.
2. Lanciare il Terminale da Applicazioni/Accessori.
3. Montare il disco rigido dove è installata Ubuntu con sudo mount /dev/sda1/mnt
4. Montare la directory speciale dev con sudo mount -o bind /dev /mnt/dev
5. Cambiare la partizione di root con sudo chroot /mnt
6.
Digitare per sicurezza un sudo update-grub
7. Installare GRUB sul disco voluto sudo grub-install /dev/sdc
8. Digitare exit per tornare al cd live
9. Smontare dev con sudo umount /mnt/dev
10. Smontare mnt con sudo umount /mnt
11. Riavviare il pc.

Naturalmente nel mio caso Ubuntu è installata su sda1 e ho voluto mettere GRUB2 sull’mbr del disco sdc.

Se non si conosce dove è ubicata la directory boot che contiene la configurazione di GRUB2 basta digitare:
sudo fdisk -l per vedere i dischi installati nel sistema e quindi sudo fdisk -l /dev/sda per vedere le partizioni, in questo caso del disco sda.

Nel mio caso l’output del secondo comando è:

Disco /dev/sda: 300.1 GB, 300090728448 byte
255 testine, 63 settori/tracce, 36483 cilindri
Unità = cilindri di 16065 * 512 = 8225280 byte
Identificativo disco: 0x00023644

Dispositivo Boot Start End Blocks Id System
/dev/sda1 * 1 2350 18876343+ 83 Linux
/dev/sda2 36353 36483 1052257+ 82 Linux swap / Solaris
/dev/sda3 2351 34856 261104445 83 Linux
/dev/sda4 34857 36352 12016620 83 Linux

Le voci nella tabella delle partizioni non sono nello stesso ordine del disco.

Nel mio caso ho dovuto modificare il file /boot/grub/device.map perché grub2 non si accorgeva dell’ordine dei dischi variato da bios.

Quindi al posto di:
(hd0) /dev/sda
(hd1) /dev/sdb
(hd2) /dev/sdc

ho messo:
(hd0) /dev/sdc
(hd1) /dev/sdb
(hd2) /dev/sda

Grub2 è sostanzialmente diverso da Grub. In /boot/grub/ c’è il file di configurazione grub.cfg al posto del menu.lst. Il secondo era editabile mentre il primo contiene un messaggio che lo sconsiglia. Come si fa a modificarlo?

Niente paura. Le opzioni si configurano tramite il file /etc/default/grub mentre le voci di menu si aggiungono, se necessario, tramite i file contenuti in /etc/grub.d

Supponiamo di avere un’installazione di Windows non rilevata automaticamente. Occorre aprire il file /etc/grub.d/40_custom e aggiungere le seguenti linee:
menuentry “Microsoft Windows XP” {
insmod ntfs
set root=(hd0,1)
search –fs-uuid –set 60CCBCB7CCBC88B4
chainloader +1
}

Al solito occorre modificare hd0,1 secondo il proprio disco e partizione. Attenzione alle partizioni: grub contava da 0 mentre grub2 conta da 1. Inoltre occorre mettere la UUID del proprio disco.

Per trovare l’UUID occorre dare il comando ls -l /dev/disk/by-uuid/

Per approfondimenti consiglio la lettura del manuale e uno sguardo a questa guida. E’ interessante anche questo tutorial.

One thought on “Reinstallare o spostare GRUB2 e fargli riconoscere Windows

  1. Hello! This is kind of off topic but I need some advice from an established blog. Is it hard to set up your own blog? I’m not very techincal but I can figure things out pretty quick. I’m thinking about making my own but I’m not sure where to begin. Do you have any points or suggestions? Many thanks

Leave a Reply

Your email address will not be published. Required fields are marked *