Usare il GRUB esistente per bootare un hard disk esterno

eri ho ritirato l’hard disk esterno LaCie “Design by Neil Poulton” (molto fashion, come amano dire fin troppe persone) fa 500 Gb e ho pensato di fare una partizione da 10 giga solo per testare le varie distribuzioni che mi capitano tra le mani.

Hard disk

Il problema era GRUB, perché, se lo avessi installato nella suddetta partizione, avrei potuto fare il boot solo con il disco collegato e acceso, cosa che non accadrà spesso, infatti sono in attesa del Linksys NSLU2 che ho comprato su eBay (dall’America a 70 dollari compresa spedizione, un vero affare). L’NSLU2 è davvero un bel giocattolo con Linux dentro, quindi vi lascio immaginare quanti usi può avere, per farvi un’idea c’è questo interessantissimo sito.

Tornando all’argomento di questo post, ecco come fare ad usare il GRUB che abbiamo già installato nel nostro computer per bootare una distro installata sul disco fisso esterno.

Prima di tutto bisogna individuare il device assegnato al disco fisso USB, nel mio caso era sdb (il numero della partizione va tralasciato). Per trovarlo è utile il comando mount, che dà un output con una riga simile a questa:

/dev/sdb1 on /media/disk type ext3 (rw,relatime,errors=remount-ro)

È quindi evidente che in questo caso il device è sdb. Bisogna adesso “spiegare” a GRUB come accedere ad esso. Infatti, ad esempio, hda1 in GRUB diventa (hd0,0), cioè la prima partizione del primo hard disk, si parte da zero. Per fare ciò bisogna editare il file /boot/grub/device.map, che contiene qualcosa come
(hd0) /dev/sda

Aggiungiamo quindi un riferimento ad (hd1) in modo che punti a sdb:

(hd1) /dev/sdb

Ecco, ora è necessario aggiungere a menu.lst (la lista dei sistemi operativi che vediamo all’avvio) la voce corretta.
Nel mio caso, con Ubuntu 8.04 Hardy Heron la voce è la seguente:

title Ubuntu-esterno
root (hd1,2)
kernel /boot/vmlinuz-2.6.24-16-generic root=/dev/sdb3 ro quiet splash
initrd /boot/initrd.img-2.6.24-16-generic
quiet

Notare che con root (hd1,2) indico che la distribuzione è installata sulla terza partizione del disco esterno, ed è specificato anche con il parametro del kernel root=/dev/sdb3, infatti la prima è una partizione da poco più di 450 giga per i dati, la seconda sono 2 giga di swap e l’ultima è quella di root.

Bisogna chiaramente adattare distro per distro i parametri kernel e initrd, ma spesso (Ubuntu in primis) è possibile impostare initrd a /initrd.img kernel a /vmlinuz root=/dev/PROPRIO-DEVICE-QUI ro

NOTA IMPORTANTE: Ricordarsi sempre di non far installare il boot loader alla distribuzione che si vuole provare!

2 thoughts on “Usare il GRUB esistente per bootare un hard disk esterno

Leave a Reply

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