Per quale motivo dovrei voler installare GRUB su di una chiavetta USB?
per renderla avviabile dal BIOS (bootable):
- per installarci delle applicazione di diagnostica hardware
- per installarci un sistema operativo completo (DamnSmallLinux, Ubuntu, ecc)
- perché ho una vecchia chiave da 256M o 512M con cui ho voglia di fare esperimenti
- perché ho un sistema multiboot con 3 o 4 sistemi operativi differenti e voglio che il boot manager non risieda sui dischi fissi
Ambiente: Ubuntu
File necessari: ISO di DamnSmallLinux, immagine BIN di MemTest86+
Risultato: Chiave USB avviabile con MemTest86 (diagnostica memoria RAM) e DamnSmallLinux (Sistema Operativo Linux completo)
- ripartizionare la chiavetta USB utilizzando il gestore di partizione (SISTEMA > AMMINISTRAZIONE > EDITOR DI PARTIZIONI ) oppure fdisk; ci dev’essere un’unica partizione FAT sulla quale è stato attivato il flag BOOT.
- dopo che la chiavetta è stata rimontata, anche manualmente, creare la struttura di cartelle visualizzate in figura. (NDT: ho preferito separare logicamente gli applicativi (contenuti in IMAGES) che GRUB proporra nel suo menu, ognuno la propria cartella)
- installare GRUB sulla chiavetta e copiarvi sopra i files necessari al suo funzionamento:
Aprire un terminale e copiare alcuni file di GRUB necessari per l’avvio sulla chiavetta (es: /media/KINGSTON )
$ cd /boot/grub
$ cp stage1 stage2 fat_stage1_5 /media/KINGSTON/boot/grub/
Installare GRUB nel MBR della chiavetta:
$ sudo grub
grub> find /boot/grub/stage1
(hd0,0)
(hd2,0)
GRUB identifica gli hard disk secondo la sequenza logica di avvio del BIOS quindi (hd0,0) corrisponde al primo, a quello in cui è installata Ubuntu; il secondo che viene riportato è il supporto USB in cui è stato copiato il file stage1.
grub> root (hd2,0)
grub> setup (hd2)
Checking if “/boot/grub/stage1” exists… yes
Checking if “/boot/grub/stage2” exists… yes
Checking if “/boot/grub/fat_stage1_5” exists… yes
Running “embed /boot/grub/fat_stage1_5 (hd2)”… 16 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd2) (hd2)1+16 p (hd2,0)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.
grub> quit
L’installazione di GRUB sul supporto USB lo rende, de facto, un boot manager pronto per essere configurato e quindi ideale per un sistema multi boot.
- Copia delle immagini da caricare e relativa configurazione di GRUB
Per prima cosa copiare l’immagine di memtest sulla chiavetta.
Occorre la versione Pre-Compiled Bootable Binary:
$ cd ~/download
$ gunzip memtest86+-4.00.bin.gz
$ cp memtest86+-4.00.bin /media/KINGSTON/boot/images/memtest
Adesso occorre montare la ISO di DamnSmallLinux per estrarre i file che servono
$ mkdir dsl
$ sudo mount -t iso9660 -o loop dsl-4.4.10.iso dsl
$ cp dsl/KNOPPIX/KNOPPIX /media/KINGSTON/boot/images/dsl/dsl
$ cp dsl/boot/isolinux/linux24 /media/KINGSTON/boot/images/dsl/
$ cp dsl/boot/isolinux/minirt24.gz /media/KINGSTON/boot/images/dsl/
$ sync
$ sudo umount dsl && rmdir dsl
Ora che tutti i file necessari sono sul supporto rimovibile non resta che configurare /boot/grub/menu.lst ed istruire GRUB perché esegua queste immagini.
Con gedit, pico oppure nano si crea e, allo stesso tempo, edita il file menu.lst sulla chiavetta
$ gedit /media/KINGSTON/boot/grub/menu.lst
il contenuto del file menu.lst:
default 0
timeout 10
root (hd0,0)
title Damn Small Linux
kernel /boot/images/dsl/linux24 ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 toram nomce noapic quiet knoppix_dir=/boot/images/dsl knoppix_name=dsl
initrd /boot/images/dsl/minirt24.gz
quiet
title Memtest86 v4
kernel /boot/images/memtest/memtest86+-4.00.bin
quiet
Basato sull’articolo in inglese: http://www.freesoftwaremagazine.com/articles/grub_intro?page=0%2C1