4.3. Preparazione dei file per l'avvio da chiavetta USB

Per preparare la chiavetta USB è necessario un sistema GNU/Linux con supporto USB già funzionante. Con gli attuali sistemi GNU/Linux la chiavetta USB dovrebbe essere riconosciuta non appena inserita. Se questo non accade, controllare che il modulo del kernel usb-storage sia stato caricato. All'inserimento, la chiavetta USB viene mappata su un device con nome /dev/sdX, dove «X» è una lettera nell'intervallo a-z. È possibile vedere su quale device è stata mappata la chiavetta USB usando il comando dmesg dopo averla inserita. Per scrivere sulla chiavetta potrebbe essere necessario disattivare la protezione dalla scrittura.

Avvertimento

La procedura descritta in questa sezione distrugge qualunque cosa sia presente sul device, fare attenzione a usare il nome corretto per il device della chiavetta USB. Se si usa il device sbagliato, potrebbe accadere, per esempio, di perdere tutte le informazioni su un disco fisso.

4.3.1. Preparazione di una chiavetta USB con un'immagine ibrida di CD o DVD

Adesso è possibile scrivere le immagini dei CD o DVD Debian direttamente sulla chiavetta USB, questo è un metodo estremamente semplice per creare una chiavetta USB dalla quale è possibile avviare il sistema. È sufficiente scegliere un'immagine di dimensione adatta alla capacità della chiavetta USB. Si veda Sezione 4.1, «Set ufficiale di CD/DVD-ROM Debian GNU/Linux» per procurarsi l'immagine di un CD o DVD.

In alternativa per le chiavette USB estremamente piccole, con capacità di pochi megabyte, è possibile scaricare l'immagine mini.iso dalla directory netboot (nella posizione specificata in Sezione 4.2.1, «Dove trovare le immagini per l'installazione»).

È possibile scrivere l'immagine di un CD o DVD direttamente sulla chiavetta USB sovrascrivendone il contenuto attuale. Per esempio, con un sistema GNU/Linux, è possibile scrivere il file con l'immagine del CD o DVD sulla chiavetta USB eseguendo, dopo essersi assicurati che la chiavetta non è montata:

# cp debian.iso /dev/sdX
# sync

Importante

La semplice scrittura dell'immagine del CD o DVD sulla USB dovrebbe funzionare correttamente per la maggior parte degli utenti. Le altre possibilità descritte in seguito sono più complesse e particolarmente adatte a chi ha necessità particolari.

L'immagine ibrida sulla chiavetta non occupa tutto lo spazio disponibile quindi potrebbe essere interessante usare lo spazio libero per i file con il firmware, per dei pacchetti oppure per altri file. Questo può essere utile se si dispone di una sola chiavetta USB oppure se si vuole tenere tutto ciò che serve in un solo dispositivo.

Creare sulla chiavetta una seconda partizione FAT, montare la partizione e copiare o spacchettare il firmware al suo interno. Per esempio:

# mount /dev/sdX2 /mnt
# cd /mnt
# tar zxvf /percorso/di/firmware.tar.gz
# cd /
# umount /mnt

Se fosse stato necessario scrivere mini.iso sulla chiavetta USB, la seconda partizione non deve essere creata perché, molto probabilmente, è già presente. Scollegare e poi ricollegare la chiavetta USB per rendere visibili le due partizioni.

4.3.2. Copia manuale dei file sulla chiavetta USB

Un metodo alternativo per preparare la chiavetta USB è copiare manualmente i file dell'installatore e l'immagine del CD sulla chiavetta. Notare che la chiavetta USB deve essere da almeno 1 GB (è possibile fare anche installazioni più piccole seguendo Sezione 4.3.3, «Copia manuale dei file sulla chiavetta USB — il modo flessibile»).

C'è un file all-in-one hd-media/boot.img.gz che contiene non solo tutti i file dell'installatore (kernel compreso) ma anche syslinux e il suo file di configurazione.

Notare che, nonostante la sua comodità, questo metodo ha lo svantaggio che la dimensione logica del device è limitata a 1 GB anche quando la capacità della chiavetta USB è superiore. Per poter ripristinare la capacità reale della chiavetta USB è necessario ripartizionarla e creare dei nuovi filesystem.

Per utilizzare questa immagine è sufficiente estrarla direttamente sulla chiavetta USB:

# zcat boot.img.gz > /dev/sdX

Poi montare la chiavetta USB (mount /dev/sdX /mnt), che adesso avrà un filesystem FAT, e copiarci l'immagine ISO di Debian (netinst o un CD completo). Infine smontare la chiavetta (umount /mnt).

4.3.3. Copia manuale dei file sulla chiavetta USB — il modo flessibile

Chi preferisce avere più flessibilità o semplicemente vuole capire cosa sta facendo, dovrebbe usare questo metodo per scrivere i file sulla chiavetta. Uno dei vantaggi di questo metodo è quello che se la chiavetta USB è sufficientemente capiente, è possibile copiarci l'immagine di un CD completo.

4.3.3.1. Partizionamento della chiavetta USB

Verrà spiegato come preparare la chiavetta per usare solo la prima partizione anziché l'intero dispositivo.

Nota

Poiché la maggior parte delle chiavette USB viene venduta con una singola partizione FAT16 già configurata, probabilmente non sarà necessario partizionare né formattare la chiavetta. Invece, se fosse necessario preparare la chiavetta, usare cfdisk o un qualsiasi altro programma di partizionamento per creare una partizione FAT16[5], installare un MBR con:

# install-mbr /dev/sdX

Il comando install-mbr è contenuto nel pacchetto Debian mbr. Infine creare il filesystem usando:

# mkdosfs /dev/sdX1

Fare attenzione a usare il nome di device della chiavetta USB. Il comando mkdosfs è contenuto nel pacchetto Debian dosfstools.

Per far partire il kernel dopo aver avviato da un chiavetta USB è necessario mettere un bootloader sulla chiavetta. Nonostante il fatto che qualsiasi bootloader (p.e. lilo) dovrebbe funzionare è più comodo usare syslinux dato che utilizza una partizione FAT16 e può essere riconfigurato semplicemente modificando un file di testo. Qualsiasi sistema operativo con supporto per il filesystem FAT può essere usato per fare delle modifiche alla configurazione del bootloader.

Per collocare syslinux sulla partizione FAT16 della chiavetta USB installare i pacchetti syslinux e mtools ed eseguire:

# syslinux /dev/sdX1

Di nuovo fare attenzione a usare il nome corretto del device. La partizione non deve essere montata quando si avvia SYSLINUX, la procedura scrive il settore di avvio sulla partizione e crea il file ldlinux.sys che contiene il codice del bootloader.

4.3.3.2. Aggiunta dell'immagine dell'installatore

Montare la partizione (mount /dev/sdX1 /mnt) e copiare i seguenti file con l'immagine dell'installatore sulla chiavetta:

  • vmlinuz o linux (kernel)

  • initrd.gz (immagine del ramdisk iniziale)

È possibile sceglie se usare la versione dell'installatore tradizionale o quella grafica. Quest'ultima può essere trovata nella sottodirectory gtk. Se si vuole rinominare questi file ricordarsi che syslinux può gestire solo nomi di file in formato DOS (8.3).

Poi è necessario creare il file di configurazione syslinux.cfg, deve contenere almeno le due righe seguenti (modificare il nome del kernel in «linux» se si usa l'immagine netboot):

default vmlinuz
append initrd=initrd.gz

Per utilizzare l'installatore grafico è necessario aggiungere vga=788 alla seconda riga; è possibile aggiungere anche altri parametri.

Se si è utilizzato un'immagine hd-media, adesso si deve copiare il file di un'immagine ISO Debian[6] sulla chiavetta. Una volta finita la copia, smontare la chiavetta USB (umount /mnt).



[5] Ricordarsi di attivare il flag «bootable».

[6] È possibile usare una qualsiasi tra le immagini netinst o di un CD completo (vedere Sezione 4.1, «Set ufficiale di CD/DVD-ROM Debian GNU/Linux»). Assicurarsi di sceglierne una che entra nella chiavetta. Notare che l'immagine «netboot mini.iso» non può essere usata per questo scopo.