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

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.1466679671.txt.gz · Last modified: 2016/06/23 13:01 by niccolo