Mi è capitato di dover ripristinare il boot loader GRUB da una installazione Ubuntu 10.04 LTS. Esistono in rete decine di tutorial completi ed esaurienti (come questo: GRUB 2 bootloader – Full tutorial) ma la prossima volta che mi succede voglio evitare di andare a cercare su Google, così ecco i miei bravi appunti di lavoro:
Boot da una Live CD. Entro in console e guardo la situazione dei dischi con un bel:
dmesg | grep sda
“sda” funziona nel 90% dei PC che ormai hanno dischi SATA. Se avete dischi PATA, provate con hda, hdb…
[ 1.384229] sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB) [ 1.384428] sd 0:0:0:0: [sda] Write Protect is off [ 1.384439] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 1.384525] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 1.411538] sda: sda1 sda2 sda3 sda4
Ecco, nel mio caso, cosa è uscito a schermo. Ne deduco che l’hard disk principale ha 4 partizioni e si chiama, effettivamente, “sda”. A questo punto cerco di capire se si tratta del disco giusto con un controllo più approfondito al disco:
sudo fdisk /dev/sda
a cui il terminale risponde chiedendo la password di root
[sudo] password for utente: Comando (m per richiamare la guida): p Disk /dev/sda: 250.1 GB, 250059350016 bytes 255 testine, 63 settori/tracce, 30401 cilindri, totale 488397168 settori Unità = settori di 1 * 512 = 512 byte Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificativo disco: 0x29133921 Dispositivo Boot Start End Blocks Id System /dev/sda1 * 2048 97656831 48827392 83 Linux /dev/sda2 97656832 99610623 976896 82 Linux swap / Solaris /dev/sda3 99610624 255860735 78125056 83 Linux /dev/sda4 255860736 488396799 116268032 83 Linux Comando (m per richiamare la guida):
Per uscire da “fdisk” premere “q”.
ATTENZIONE: se non siete esperti non usate fdisk ! Con un uso improprio potreste danneggiare i vostri dati.
A questo punto capisco che la partizione di avvio è la /dev/sda1 e che l’MBR si trova in /dev/sda.
Adesso passo a ripristinare grub, montando la directory di root del PC con:
mount /dev/sda1 /mnt
e successivamente credo un “mount simbolico” anche di /dev e /proc:
mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc
adesso, con l’aiuto di chroot, reinstallo, riconfigurandolo, GRUB:
chroot /mnt dpkg-reconfigure grub-pc
accetto tutti i parametri di default fino alla conferma di avvenuta installazione:
Installation finished. No error reported. Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.2.0-27-generic-pae Found initrd image: /boot/initrd.img-3.2.0-27-generic-pae Found linux image: /boot/vmlinuz-3.2.0-26-generic-pae Found initrd image: /boot/initrd.img-3.2.0-26-generic-pae Found linux image: /boot/vmlinuz-3.2.0-23-generic-pae Found initrd image: /boot/initrd.img-3.2.0-23-generic-pae Found memtest86+ image: /boot/memtest86+.bin done
A questo punto possiamo riavviare il PC, togliendo il Live CD, e verificare che tutto funzioni perfettamente 🙂