Normalmente GRUB è già installato. Può accadere però che se viene installato per ultimo un sistema operativo che come windows ignora la presenza di altri sistemi sul disco (andando a sovrascrivere il MBR), e vuole monopolizzare il vostro pc, ci si ritrovi nella necessità di dover installare nuovamente GRUB. Oppure semplicemente è capitato di voler provare un altro boot loader e di voler poi ritornare a GRUB. Cmq la procedura da seguire per entambi i casi è la stessa. Utilizzate un liveCD per avviare il sistema e dopo l’avvio monteremo la partizione di root del sistema Linux installato sull’hard disk.
mkdir /mnt/root
mount /dev/sda3 /mnt/root
mount –bind /dev/ /mnt/root/dev/
mount -t proc none /mnt/root /proc
Ora con chroot si può cambiare al volo la partizione di root del nostro livecd:
chroot /mnt/root /bin/bash
Per usare Grub è necessario installarlo nel MBR con il seguente comando:
grub-install –no-floppy /dev/sda
In questo modo ogni altro boot loader verrà sovrascritto e all’avvio apparirà grub che permetterà di avviare ogni sistema presente su hard disk.
Per chi è alle prime armi ecco cosa può essere utile sapere per comprendere meglio quanto scritto sopra:
Innanzi tutto cerchiamo di capire come un sistema GNU/Linux assegna i nomi ai propri device (ad es. hard disk, unità rimovibili USB, …). Un device è rappresentato come un file sotto la directory /dev .
Se si tratta di un hard disk IDE ATA il nome del dispositivo è /dev/hdXn, mentre se si tratta di un hard disk SATA o SCSI il nome del dispositivo è /dev/sdXn. Dove X sarà sempre una lettera minuscola dell’alfabeto: hda per indicare il primo disco rilevato, hdb il secondo, hdc il terzo e cosi via. Mentre n è un numero intero che a partire da 1 identifica la partizione nel disco: hda1 hda2 sono rispettivamente la prima e la seconda partizione del primo disco.
Se sapete qual’è la partizione semplicemente montatela così (supponiamo che sia /dev/sda3 ):
mkdir /mnt/root
mount /dev/sda3 /mnt/root
Se non vi dice nulla il montaggio è avvenuto e potete vedere l’elenco di file nella directory “/mnt/root” che avete appena creato…
ls /mnt/root
la directory root di linux ha (più o meno) questo contenuto:
————————————————————————————————————–
bin etc initrd.img.old mnt sbin tmp vmlinuz.old
boot home lib opt selinux usr
cdrom initrd lost+found proc srv var
dev initrd.img media root sys vmlinuz
—————————————————————————————————————
se invece siete arrivati a questo punto avendo ancora dei dubbi su quale partizione sia quella corretta, o vi rendete conto di aver sbagliato partizione date il comando:
umount /mnt/root
e riprovate a montare un altra partizione
mount /dev/sdb2 /mnt/root
ls /mnt/root
il secondo comando vi mostrerà il contenuto della directory /mnt/root
quindi se volete potete trovare il disco corretto procedendo per tentativi, montando e smontando via via le partizioni che pensate essere la partizione di root. Io in genere non mi metto a fare i calcoli che ho spiegato sopra.. Se non ricordo più qual’è la partizione di root provo a montare quelle Linux finché la trovo.
Per aiutarci nell’individuazione delle partizioni possiamo usare il comando fdisk:
fdisk -l
che produrra un output del genere (nell’esempio è presente un solo disco):
—————————————————————————————————————–
Disk /dev/hda: 203.9 GB, 203928109056 bytes
255 heads, 63 sectors/track, 24792 cylinders
Units = cilindri of 16065 * 512 = 8225280 bytes
Dispositivo Boot Start End Blocks Id System
/dev/hda1 1 7182 57688711 7 HPFS/NTFS
/dev/hda2 13710 19126 43512052+ 83 Linux
/dev/hda3 19253 24792 44500050 83 Linux
/dev/hda4 7182 13709 52428769 5 Esteso
/dev/hda5 7182 13504 50781433+ 83 Linux
/dev/hda6 13504 13709 1647303+ 82 Linux swap / Solaris
Partition table entries are not in disk order
——————————————————————————————————————-
se ne avete uno solo (di disco) allora è quello che avete usato prima per montare la partizione. Semplicemente usatelo SENZA IL NUMERINO FINALE (questo è importante)— /dev/sda3 NO!!, /dev/sda SI!!
Altrimenti cercate di capire qual’è il disco che si avvia… “il primario”. In genere è quello che finisce con la lettera “a” (es. /dev/sda o /dev/hda).
grub-install /dev/sda (–no-floppy è opzionale)
questo comando dovrebbe riuscire automaticamente a installare grub…
ora potete riavviare la live ed estrarre il CD… se volete invece lavorare ancora potete uscire dall’ambiente di chroot
exit
e smontare la partizione procedendo a ritroso…
umount /mnt/root /proc
umount /mnt/root /dev
umount /mnt/root
_______________________________________________________
Comando: grub-install
Path: /sbin/grub-install
SINTASSI
# grub-install [option] device
DESCRIZIONE
option indica la modalità di funzionamento di grub-install. Può assumere i seguenti valori:
- -h | –help visualizza un aiuto sommario di grub-install;
- -v | –version visulizza la verione di grub-install;
- –root-directory=dir indica di installare i file di GRUB nella directory dir (per default vengono installati in ‘/’). Tale opzione è utilizzata quando si vuol installare i file in una specifica partizione (diversa da ‘/’) o in un disco rimovibile;
- –grub-shell=file indica quale è il file eseguibile che deve fungere da shell per GRUB;
- –force-lba indica di utilizzare la modalità LBA anche se il BIOS sembra non supportarla;
- –recheck indica di eseguire un controllo dei dischi per ricreare il file device.map;
device specifica il dispositivo nel quale installare il boot loader GRUB (può essere specificato un file di dispositivo oppure un disco, o partizione, nella sintassi di GRUB);