User Tools

Site Tools


doc:appunti:linux:sa:install_usb

This is an old revision of the document!


Boot da USB

Installare GRUB sul MBR di una chiavetta USB

I file di GRUB devono risiedere su una partizione, per comodità si crea una partizione primaria /dev/sdc1, formattata FAT32.

Questa stessa partizione può essere usata come partizione dati. Nota che Windows XP riconosce solo la prima partizione presente su una chiavetta USB, quindi questa è l'unica utilizzabile per lo scambio dei dati.

mkfs.vfat /dev/sdc1
mount /dev/sdc1 /mnt/sdc1
cp -p /usr/lib/grub/i386-pc/* /mnt/sdc1/boot/grub/
grub --no-floppy --device-map=/dev/null
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Ovviamente si deve creare anche un file menu.lst.

Installare GRUB su una partizione FAT32

Nel nostro caso si è scompattata la distribuzione GRML sulla partizione FAT32 /dev/sdc6 e si vuole rendere la partizione stessa avviabile (tramite chainloading da un boot manager che si trova su /dev/sdc):

mount /dev/sdc6 /mnt/sdc6
cp -p /mnt/sdc6/usr/lib/grub/i386-pc/* /mnt/sdc6/boot/grub/
grub --no-floppy --device-map=/dev/null
grub> device (hd0) /dev/sdc
grub> root (hd0,5)
grub> setup (hd0,5)
grub> quit

Ovviamente nella directory grub si deve installare anche un file menu.lst.

GRUB: chainload di una partizione logica

Supponiamo che GRUB sia installato sul MBR di /dev/sdc, vogliamo una voce nel menu che passi il controllo al GRUB (o altro boot manager) che si trova installato sulla partizione /dev/sdc6:

title           GRML 2009.05 Boot Menu (/dev/sdc6)
rootnoverify    (hd0,5)
chainloader     +1

Avvio di Ubuntu Live da USB

NOTA: Questa operazione viene automatizzata dal programma Unetbootin, che trasferisce una immagine ISO avviabile su una chiavetta USB, formattata vfat.

Come travasare un CD Live Ubuntu in una chiavetta USB. Provato con Ubuntu 8.04 e chiavetta da 2 Gb.

  1. Formattare la chiavetta (supponiamo che sia /dev/sdb), creando una partizione primaria di tipo e (W95 FAT16 LBA) oppure di tipo b (W95 FAT32). Marcare la partizione come attiva.
  2. Montare la partizione /dev/sdb1.
  3. Montare l'immagine ISO del CD-ROM e copiare tutto il contenuto nella chiavetta, i link simbolici non si copiano sul filesystem vfat, ma non dovrebbero servire. Fare attenzione invece ad eventuali directory nascoste, ad esempio .disk/, che sono indispensabili.
  4. Spostare tutti i file contenuti nella directory isolinux nella directory radice della chiavetta USB.
  5. Rinominare isolinux.cfg in syslinux.cfg.
  6. Rendere la chiavetta USB avviabile con i comandi
    install-mbr /dev/sdb
    syslinux /dev/sdb1

Problemi con Syslinux

Ci possono essere problemi con immagini Syslinux v.6 e alcuni creatori di chiavette USB che invece installano il binario del boot manager in versione 4. Il problema si manifesta con l'errore in fase di boot:

not a COM32R image

Su un host che abbia installato il pacchetto syslinux versione 6, supponendo che la partizione FAT da rendere avviabile sia /dev/sdb1, è sufficiente dare il comando:

syslinux --install /dev/sdb1

Viene sostituito il file ldlinux.sys con la versione più aggiornata.

In altri casi il messaggio di errore potrebbe essere:

Failed to load COM32 file menu.c32

pare che in questo caso sia sufficiente copiare i due file libutil.c32 e menu.c32 da /usr/lib/syslinux/modules/bios/ di una installazione Debian alla directory radice della chiavetta.

Assegnare una label ad una partizione FAT32

:!: ATTENZIONE: Impostare una label MS-DOS su una partizione FAT può corrompere l'installazione di GRUB sulla stessa partizione e viceversa. In particolare l'installazione di GRUB può risultare in un errore rilevato da dosfsck.

Una label sulla partizione può tornare utile per l'automount: i punti di montaggio diventano qualcosa del tipo /media/LABEL:

dosfslabel /dev/sdc6
dosfslabel /dev/sdc6 LABEL

Se ci sono errori sul filesystem si può tentare di ripararli con:

dosfsck -r /dev/sdb6
doc/appunti/linux/sa/install_usb.1481385137.txt.gz · Last modified: 2016/12/10 16:52 by niccolo