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

Quando si utilizza l'avvio da una chiavetta USB sono disponibili due metodi d'installazione. Il primo consiste nell'installazione completa da rete; il secondo è copiare l'immagine di un CD sulla chiavetta USB e utilizzarla come sorgente per i pacchetti (se possibile insieme a un mirror). Il secondo metodo è quello più comune.

Con il primo metodo d'installazione è necessario scaricare l'immagine dell'installatore dalla directory netboot (nella posizione specificata in Sezione 4.2.1, «Dove trovare le immagini per l'installazione») e utilizzare il «modo flessibile» spiegato in seguito per copiare i file sulla chiavetta USB.

Le immagini per l'installazione con il secondo metodo possono essere trovate nella directory hd-media e per copiarle sulla chiavetta USB si può usare il «modo semplice» oppure il «modo flessibile». Per questo metodo d'installazione è necessario anche scaricare l'immagine del CD. L'immagine per l'installazione e l'immagine del CD devono appartenere allo stesso rilascio di debian-installer; se non corrispondono, si possono avere degli errori[6] durante l'installazione.

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 appena viene 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.

Notare che la chiavetta USB deve essere da almeno 256 MB (è possibile fare anche installazioni più piccole seguendo Sezione 4.3.2, «Copia dei file — il modo flessibile»).

4.3.1. Copia dei file — il modo semplice

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 256 MB anche quando la capacità della chiavetta USB è superiore. Per poter ripristinare la capacità reale della chiavetta USB è necessario ripartizionarla e creare dei nuovi filesystem. Un altro svantaggio è che sulla chiavetta USB non è possibile copiare l'immagine di un CD completo, si possono copiare solo le immagini businesscard e netinst.

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 netinst o businesscard Debian. Infine smontare la chiavetta (umount /mnt).

4.3.2. Copia dei file — il modo flessibile

Se si preferisce avere più flessibilità o semplicemente si vuole capire cosa si sta facendo si deve 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.2.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 è necessario ripartizionare o riformattare la chiavetta. Per ripartizionare ugualmente la chiavetta usare cfdisk o un qualsiasi altro programma di partizionamento per creare una partizione FAT16[7] e poi crearci un 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.2.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 si deve aggiungere video=vesa:ywrap,mtrr vga=788 alla seconda riga.

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

4.3.3. Avvio da chiavetta USB

Avvertimento

Se il proprio sistema rifiuta di partire dalla chiavetta, la chiavetta potrebbe contenere un MBR (master boot record) non valido. Per risolvere questo problema usare il comando install-mbr contenuto nel pacchetto mbr:

# install-mbr /dev/sdX



[6] Il messaggio d'errore che più frequentemente viene mostrato è che non è possibile trovare i moduli del kernel. Questo vuol dire che la versione dei moduli del kernel negli udeb inclusi nell'immagine del CD è diversa dalla versione del kernel in uso.

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

[8] È possibile usare una qualsiasi tra le immagini businesscard, netinst o di un CD completo (vedere Sezione 4.1, «Set ufficiale di CD-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.