http://www.valug.it/~pctips/articoli/penne_usb/ http://freshmeat.net/projects/runt/ Installare Linux su una penna USB Le penne USB Le penne USB sono delle memorie portatili di capienza variabile (i formati più diffusi sono quelli da 64, 128 e 256 MB, 1G, 2G) facilmente trasportabili nel taschino della camicia e collegabili attraverso la porta USB e senza l'installazione di alcun driver a qualsiasi computer dotato di un sistema operativo recente. Esse sono compatibili con lo standard USB Mass Storage, che permette al sistema operativo di riconoscere tali dispositivi come dei dischi rigidi veri e propri. Inoltre, possono essere anche "bootabili": infatti, a patto di avere un BIOS che supporti tale funzionalità, è possibile effettuare il boot a partire da esse. Come avrete potuto notare, la versatilità di questi dispositivi è notevole. Linux & Penne USB I kernel Linux dei rami 2.4 e successivi supportano senza problemi le penne USB. Il sistema operativo, infatti, riconosce una penna USB come un normale disco SCSI e permette di effettuare su di essa tutte le operazioni praticabili su un disco rigido standard. Per utilizzare correttamente un dispositivo di questo tipo occorre inserire nel kernel (anche sotto forma di moduli) il supporto all'emulazione SCSI ed ai dischi rigidi SCSI, oltre ovviamente a quello per gli standard USB e USB Mass Storage. In ogni caso, quasi tutte le distribuzioni recenti supportano questi dispositivi senza problemi, pertanto non sarà necessario ricompilare il kernel. Installare Linux su una Penna USB Come detto in apertura, il nostro scopo è quello di installare un sistema Linux completo su una penna USB. Molti di voi si chiederanno come questo sia possibile: in realtà la risposta è molto semplice. Linux è ormai noto per la sua capacità di funzionare su dispositivi "esotici" come l'iPod di Apple o le PlayStation 1 e 2 di Sony, quindi non c'è da meravigliarsi se esso è in grado di lavorare su un dispositivo standard come quello in questione. Tuttavia, per effettuare il boot occorre seguire delle procedure non classiche che analizzeremo in seguito. La scelta della distribuzione Per quanto concerne la scelta della distribuzione, a mio avviso quella che più si adatta ai nostri scopi è la DAMN Small Linux. Essa deriva da Knoppix ed in 50 MB offre un ambiente di lavoro più che soddisfacente. Infatti, sono disponibili molti applicativi quali browser grafici (Dillo, leggerissimo e veloce) o testuali (Links), un client di posta elettronica (Sylpheed), un riproduttore di file multimediali (XMMS), vari applicativi per l'ufficio (Scite ed ABS Spreadsheet) e così via. Damn Small Linux è compilata con la libreria C uClibc (molto più leggera della glibc) ed è in grado di funzionare su sistemi molto vecchi. L'ultima versione disponibile al momento in cui si scrive è la 0.6.2 e l'home page del progetto è www.damnsmalllinux.org Nota: le procedure descritte sono applicabili, eventualmente con alcune piccole modifiche, anche a versioni s uccessive della distribuzione, salvo improbabili cambiamenti radicali che ne stravolgano la struttura di base. Modalità di installazione All'interno di questo articolo esamineremo entrambe le modalità di installazione disponibili, ovvero quella live e quella classica. La modalità di installazione live ricorda molto da vicino Knoppix: un'immagine contenente un filesystem viene letta da un supporto fisico e caricata in memoria, quindi il sistema operativo la utilizza come partizione di root. In questo modo crash o spegnimenti accidentali non danneggeranno i dati presenti sul disco, ma il salvataggio dei dati sul disco stesso potrebbe risultare difficoltoso. Questa modalità di installazione richiede circa 50 MB, quindi per adottarla occorrerà disporre di una penna USB da 64 o più megabytes. La modalità di installazione classica, invece, prevede che i dati del sistema operativo vengano letti direttamente dal disco, proprio come avviene con le distribuzioni Linux installate sui nostri computer. Installazione live Operazioni iniziali La prima operazione da effettuare è la masterizzazione di un cd-rom contenente la ISO di DAMN Small Linux. Quindi dovrete avviare il vostro sistema da questo supporto: la maggioranza assoluta dei BIOS recenti supportano questa caratteristica. Se il boot da cd-rom non viene effettuato automaticamente, modificate la sequenza di boot impostata nel BIOS della vostra scheda madre. Una volta avviato il sistema, aprite un terminale (come rxvt) e digitate: $ sudo su In tal mondo potrete lavorare con i privilegi di utente root. Ora effettuate il mount della vostra partizione di root con: # mount /mnt/hdax Dove "hdax" sta per il nome di dispositivo della partizione (es. hda1). A questo punto dovrete creare una cartella temporanea in cui copiare alcuni moduli del kernel (la ragione di questa operazione verrà esposta in seguito). Procedete digitando: # mkdir -p /mnt/hdax/dsl/usb/ # cd /lib/modules/2.4.22-xfs/kernel/drivers/usb/ # cp host/* storage/usb-storage.o usbcore.o /mnt/hdax/dsl/usb Infine riavviate il sistema con: # init 6 E fate partire la vostra distribuzione Linux installata sul disco fisso. A questo punto effettuate il partizionamento della vostra penna USB. Nel nostro caso adotteremo una modalità di formattazione analoga a quella di un floppy disk: viene creato un filesystem su tutto il disco senza utilizzare una tavola delle partizioni. Questa procedura è necessaria per permettere il boot su BIOS che non supportano la lettura della tabella delle partizioni da dispositivi removibili (come le penne USB). Ad ogni modo, se non volete adottare questa soluzione, potete procedere con un partizionamento standard, ricordandovi però di sostituire ogni volta "/dev/sda" con il nome della vostra partizione ("/dev/sda1", "/dev/sda2" e così via) Per eliminare l'MBR e creare un filesystem FAT 32 sulla penna digitate: # dd if=/dev/zero of=/dev/sda bs=512 count=1 # mkfs.msdos -F 32 -I /dev/sda Miniroot.gz La distribuzione DAMN Small Linux, come tutte le altre derivate da Knoppix, prevede che al momento del boot venga caricata in memoria una partizione di root contenente dei moduli da caricare nel kernel per il supporto ai controller SCSI ed alle immagini di tipo compressed loop (o cloop: si tratta di immagini di loopback compresse con gzip; grazie a questo espediente molte distribuzioni includono circa 2 GB di software nei soli 700 MB canonici di un cd-rom standard), oltre ad uno script di avvio. Nel passaggio precedente avete effettuato la copia di alcuni moduli USB sul disco rigido per un motivo particolare: essi devono essere copiati nell'immagine iniziale di root per permettere al sistema di accedere ai dati memorizzati nella nostra penna USB. L'immagine di root iniziale è memorizzata all'interno di un file chiamato miniroot.gz; come prima operazione occorrerà copiare un altro file sul disco fisso. Fate il login come utente root e digitate: # mount /mnt/cdrom Dove per "/mnt/cdrom" si intende il punto di mount del vostro lettore cd-rom. A questo punto effettuate la copia dei dati sul disco con: # cp /mnt/cdrom/KNOPPIX/boot.img /dsl Il file boot.img contiene proprio i dati che verranno letti all'avvio dal sistema. Di conseguenza, da esso dovrà essere estratta l'immagine iniziale di root e quindi modificata per funzionare con penne USB. I passaggi da effettuare sono: # cd /dsl # mkdir boot_mnt # mount -o loop boot.img boot_mnt # cp boot_mnt/miniroot.gz . In questo modo il file immagine miniroot.gz è stato copiato in "/dsl". A questo punto dovrete lavorare con tale file immagine. Per prima cosa effetuatene il mount con: # mkdir miniroot_mnt # gunzip miniroot.gz # mount -o loop miniroot miniroot_mnt La prima operazione da effettuare è l'attivazione del supporto USB: # cd miniroot_mnt/ # mkdir modules/usb # cp /dsl/usb/* modules/usb L'opeazione successiva consiste nel modificare un file di configurazione (linuxrc) per poter accedere ai dati presenti sulla penna USB. Dopo aver aperto tale file con un editor di testo, posizionatevi sulla riga finale di questo paragrafo: # Try to load the given modules (full path or current directory) loadmodules(){ TYPE="$1"; shift test -n "$INTERACTIVE" && echo "6" > /proc/sys/kernel/printk for i in "$@"; do echo -n "${CRE}${BLUE}Probing ${TYPE}... ${MAGENTA}$i${NORMAL}" if test -f /modules/scsi/$i && insmod -f /modules/scsi/$i >/dev/null 2>&1 then echo "${CRE} ${GREEN}Found ${TYPE} device(s) handled by ${MAGENTA}$i${GREEN}.${NORMAL}" case "$TYPE" in scsi|SCSI) FOUND_SCSI="yes"; ;; esac fi done test -n "$INTERACTIVE" && echo "0" > /proc/sys/kernel/printk echo -n "${CRE}" } Andate a capo due volte ed aggiungete al testo esistente: # Supporto per USB ed USB Mass Storage insmod -f /modules/usb/usbcore.o insmod -f /modules/usb/ehci-hcd.o insmod -f /modules/usb/uhci.o insmod -f /modules/usb/usb-uhci.o insmod -f /modules/usb/usb-ohci.o insmod -f /modules/usb/usb-storage.o ash -c "sleep 4" Ora posizionatevi all'inizio di questo paragrafo: # Now that the right SCSI driver is (hopefully) loaded, try to find CDROM DEVICES="/dev/hd?" test -n "$FOUND_SCSI" -a -z "$NOCD" && DEVICES="/dev/scd? /dev/scd?? $DEVICES" # New: Also try parallel port CD-Roms [for Mike]. DEVICES="$DEVICES /dev/pcd?" # New: also check HD partitions for a KNOPPIX/KNOPPIX image test -n "$FOUND_SCSI" && DEVICES="$DEVICES /dev/sd?[1-9] /dev/sd?[1-9][0-9]" DEVICES="$DEVICES /dev/hd?[1-9] /dev/hd?[1-9][0-9]" for i in $DEVICES do echo -n "${CRE}${BLUE}Looking for CDROM in: ${MAGENTA}$i${NORMAL} " if mountit $i /cdrom "-o ro" >/dev/null 2>&1 then if test -d /cdrom/KNOPPIX then echo -n "${CRE} ${GREEN}Accessing KNOPPIX CDROM at ${MAGENTA}$i${GREEN}...${NORMAL}" FOUND_KNOPPIX="$i" break fi umount /cdrom fi done Ed inserite un "#" all'inizio di ogni riga appartenente al paragrafo, in modo tale da disabilitare le istruzioni presenti. Infine, andate a capo due volte ed aggiungete al testo esistente: # Mount della partizione contenente il sistema operativo FOUND_KNOPPIX="/dev/sda" mount -t vfat /dev/sda /cdrom A questo punto memorizzate il file di testo ed uscite dall'editor. Il file di configurazione linuxrc Figura 1: Modifica del file di configurazione "linuxrc" attraverso un editor di testo L'ultima modifica da effettuare all'immagine iniziale di root è l'aggiunta di un particolare programma di nome sleep. Esso è presente nel pacchetto GNU core-utils e nelle vecchie sh-utils e va compilato staticamente, ma potete utilizzare tranquillamente una versione precompilata (per maggiori informazioni consultate il box sulle risorse on-line). Aggiungete tale programma al filesystem con: # cp /PERCORSO_FILE/sleep static/ # chmod +x static/sleep Completate le ultime operazioni con: # cd .. # umount miniroot_mnt # gzip -9 miniroot Infine controllate le dimensioni del file: # du miniroot.gz Il valore dovrebbe attestarsi su quota 608 blocchi. Operazioni finali Dopo aver apportato delle modifiche all'immagine di root iniziale, dovrete occuparvi della copia dei dati sulla penna USB e del metodo di avvio. Per prima cosa montate la partizione VFAT della vostra penna USB con: # mount -t vfat /dev/sda /mnt/penna Dove per "/mnt/penna" si intende il punto di mount del dispositivo. A questo punto create una cartella di nome KNOPPIX e copiate al suo interno l'immagine di loop compressa contenente il sistema operativo: # mkdir /mnt/penna/KNOPPIX # cp /mnt/cdrom/KNOPPIX/KNOPPIX /mnt/penna/KNOPPIX La copia del file KNOPPIX sulla penna potrebbe richiedere alcuni minuti. Successivamente passate alla scelta di un metodo di avvio. Il primo metodo prevede la creazione di un floppy di boot. Poiché i canonici 1440Kb non sono sufficienti, procedete con una super-formattazione con: # superformat /dev/fd0u1600 Nel caso in cui riscontraste errori ma non abbiate a disposizione un floppy di qualità superiore, potete effettuare una formattazione meno sicura con: # fdformat /dev/fd0u1600 Alla fine di questa operazione il vostro floppy avrà la capacità di 1600Kb. Quindi create un filesystem FAT sul dischetto con: # mkfs.msdos /dev/fd0u1600 A questo punto effettuate il mount del floppy con: # mount /dev/fd0 /mnt/floppy Dove per "/mnt/floppy" si intende il punto di innesto del lettore. Dunque procedete con la copia dei file di avvio sul dischetto con: # cp miniroot.gz /mnt/floppy # cd boot_mnt/ # cp boot.msg f2 german.kbd ldlinux.sys logo.16 syslinux.cfg vmlinuz /mnt/floppy Infine, procedete con l'umount dei dispositivi utilizzati: # umount /dsl/boot_mnt # umount /mnt/floppy Ed installate il boot loader syslinux sul floppy disk con: # syslinux /dev/fd0 La seconda modalità di installazione prevede il boot diretto dalla penna USB. In questo caso le operazioni da effettuare sono semplicissime: # mount /mnt/floppy # cp /mnt/floppy/* /mnt/penna # umount /mnt/penna # umount /mnt/floppy # syslinux /dev/sda Fine L'illustrazione della prima tecnica di installazione è stata completata. Per utilizzare il sistema sarà sufficiente avviarlo attraverso una delle due modalità descritte in precedenza ed attendere il suo caricamento. Nota: è molto frequente riscontrare dei problemi con il secondo metodo di avvio. Potete leggere il contenuto dei box aggiuntivi di questo articolo per approfondire tale questione. Installazione classica Operazioni iniziali La prima operazione da effettuare per la modalità di installazione classica è il ripartizionamento della penna USB. Sarà sufficiente creare una partizione di tipo ext2 ed eventualmente una partizione aggiuntiva di swap (soluzione poco pratica per la ridotta velocità di questi dispositivi) o per i documenti. Vi ricordo che dovrete dedicare almeno 128 MB alla partizione principale. Dopo aver completato questo passaggio, avviate il sistema con il cd-rom di DAMN Small Linux. La stringa di avvio utilizzata in queste prove è "knoppix lang=it toram xvesa", ma, nel caso in cui abbiate esigenze hardware particolari, non esitate a modificarla. Per avviare l'installazione aprite un terminale (rxvt) e digitate: $ sudo dsl-hdinstall Vi verranno poste alcune domande molto semplici: selezionate la modalità di installazione standard, impostate come partizione di destinazione "/dev/sda" e rispondete negativamente alla domanda relativa al boot loader. La copia dei dati sulla penna potrebbe richiedere diversi minuti. Una volta completata l'operazione riavviate il sistema con la vostra distribuzione Linux installata sul disco fisso. Ricompilazione del kernel A questo punto dovrete affrontare la ricompilazione del kernel: questa operazione è fondamentale poiché permetterà al sistema di potersi avviare da un dispositivo USB. Vi consiglio di scaricare il kernel 2.4.22 poiché, sebbene non sia il più recente, è quello che si adatta meglio ai nostri scopi. Dopo aver decompresso l'archivio contenete i sorgenti nella cartella "/usr/src", copiate la patch (che trovate nel box sul boot da penne USB) in "/usr/src/linux-2.4.22/" ed applicatela con: # patch -p0 < usbboot-2422.patch Ora configurate il vostro kernel ricordandovi di compilare staticamente il supporto agli standard USB, USB 2.0, USB-UHCI, USB-OHCI, USB Mass Storage, SCSI, SCSI Disk, SCSI Generic e SCSI Emulation. Inoltre, scegliete come processore di destinazione il 386 standard (per garantire la maggiore compatibilità possibile con altri modelli) e compilate sotto forma di moduli tutti i driver non fondamentali. Avviate la compilazione dei sorgenti con: # make dep # make bzImage && make modules Effettuate il mount della partizione di root della penna USB con: # mount -t ext2 /dev/sda /mnt/penna Dove per "/mnt/penna" si intende il punto di mount del vostro dispositivo. A questo punto installate il nuovo kernel con: # make modules_install INSTALL_MOD_PATH=/mnt/penna # cp System.map /mnt/penna/boot/System.map-2.4.22 # cp arch/i386/boot/bzImage /mnt/penna/boot/vmlinuz-2.4.22 E rimuovete quello vecchio con: # rm /mnt/penna/boot/*2.4.22-xfs /mnt/penna/boot/System.map /mnt/penna/boot/vmlinuz /mnt/penna/vmlinuz # ln -s /mnt/penna/boot/vmlinuz-2.4.22 /mnt/penna/boot/vmlinuz # ln -s /mnt/penna/boot/System.map-2.4.22 /mnt/penna/boot/System.map < FONT SIZE=3># ln -s /mnt/penna/boot/vmlinuz /mnt/penna/vmlinuz L'installazione del nuovo kernel è stata così completata. Metodologie di avvio Come per la modalità di installazione precedente, anche in questo caso esistono due differenti modalità di avvio: il boot da floppy e quello diretto dalla penna. Tuttavia, per il primo avvio è caldamente consigliata solo la prima. Per creare un floppy di avvio occorre seguire pochissimi passi. Per prima cosa formattate un dischetto con: # superformat /dev/fd0u1440 Anche in questo caso vale la nota fatta per il metodo di installazione precedente: nel caso in cui riscontraste qualche errore ma non abbiate un floppy di qualità superiore, potete effettuare una formattazione meno sicura con: # fdformat /dev/fd0u1440 Una volta completata la formattazione, create un filesystem FAT con: # mkfs.msdos /dev/fd0u1440 Effettuate il mount del dischetto ed accedetevi con: # mount /dev/fd0 /mnt/floppy # cd /mnt/floppy Dove per "/mnt/floppy" si intende il punto di mount del lettore. Ora copiate l'immagine del kernel appena compilata sul floppy con: # cp /usr/src/linux-2.4.22/arch/i386/boot/bzImage . A questo punto con un editor di testo memorizzate in un file chiamato "boot.msg" queste righe: Benvenuto in DAMN Small Linux per penne USB! Premere INVIO per avviare il sistema. Quindi create un file "syslinux.cfg" contenente questo testo: DEFAULT vmlinuz APPEND root=/dev/sda TIMEOUT 300 PROMPT 1 DISPLAY boot.msg F1 boot.msg In tal modo sono stati creati i file necessari al boot loader syslinux. Infine, effettuate l'umount e rendete il dischetto avviabile con: # cd .. # umount floppy # syslinux /dev/fd0 La seconda modalità di avvio verrà analizzata in seguito. Il file di configurazione syslinux.cfg Figura 2: Creazione di un file di configurazione per il boot loader syslinux Avvio del sistema Il primo avvio del sistema avverrà attraverso il dischetto appena creato. Vi verranno chieste due nuove password per gli utenti root e damnsmall. Non appena vi apparirà la schermata di login, identificatevi come utente normale (ossia damnsmall) ed attendete il caricamento dell'interfaccia grafica. Il sistema è quasi pronto per l'uso: restano solo alcune semplici operazioni da effettuare. Per prima cosa abilitate il caricamento della mappa di tastiera italiana digitando da un terminale: $ echo "loadkeys it" >> ~/.bash_profile Quindi salvate il file ed uscite dall'editor. Le modifiche avranno effetto solo al prossimo avvio del server grafico, quindi dovrete lavorare ancora con la mappa di tastiera americana. A questo punto aprite un terminale e digitate: $ sudo su In modo tale otterrete i privilegi di superutente. Sicuramente alcuni di voi si saranno accorti di un'enorme breccia nella sicurezza del sistema: infatti, l'utente damnsmall (ed anche quello knoppix) può assumere indiscriminatamente i privilegi di superutente senza inserire alcuna password. Per ovviare a questo "piccolo" inconveniente digitate: # scite /etc/sudoers E posizionatevi su questo paragrafo: knoppix ALL=NOPASSWD: ALL damnsmall ALL=NOPASSWD: ALL Quindi sostituite tali righe con: knoppix ALL=(ALL) ALL damnsmall ALL=(ALL) ALL Salvate il file ed uscite dall'editor di testo. D'ora in poi, sarà necessario inserire la password dell'utente root per assumere i privilegi di superutente. Per spegnere il sistema sarà sufficiente aprire il menu del Window Manager con il tasto destro e selezionare la voce relativa allo shutdown. Boot diretto da penna USB Nel caso in cui vogliate avviare il sistema direttamente dalla penna USB, vi basterà seguire alcuni semplici passi. Per prima cosa, fate il login come utente damnsmall ed aprite rxvt. Quindi assumete i privilegi di superutente con: $ sudo su Ed inserite la password di root. Quindi create il file "/etc/lilo.conf" con: # scite /etc/lilo.conf E copiate al suo interno quanto segue: vga=normal lba32 boot=/dev/sda map=/boot/map delay=50 prompt timeout=50 default=Linux image=/boot/vmlinuz label=Linux read-only root=/dev/sda Quindi salvate il file ed uscite dall'editor di testo. Per abilitare il boot loader LILO sarà sufficiente digitare: # lilo Fine L'illustrazione della seconda modalità di installazione è stata così completata. Il sistema è pronto per l'uso ed eventualmente potete espanderlo con nuove applicazioni seguendo le istruzioni presenti nel sito della distribuzione. Conclusioni In conclusione, dopo aver seguito correttamente le operazioni descritte, avrete a disposizione un sistema Linux completo da portare nel taschino della camicia. Spero di essere stato sufficientemente chiaro ed esaustivo nella trattazione dell'argomento. Per commenti, critiche e suggerimenti potete contattarmi all'indirizzo e-mail pctips@hardwaretips.com Daniele Cono D'Elia – pctips SPB Linux SPB Linux è una distribuzione Linux in grado di lavorare senza problemi su penne USB. Essa è strutturata in maniera modulare: infatti, esiste un pacchetto principale in grado di lavorare in poco spazio e di offrire un sistema di base; successivamente è possibile aggiungere nuovi add-ons che estendono notevolmente i campi di impiego di questa distribuzione: ad esempio, ne esistono vari che permettono di far funzionare la macchina come un server di rete oppure di riprodurre file multimediali attraverso MPlayer. L'home page di questo progetto è http://www.8ung.at/spblinux/ RUNT RUNT (ResNet USB Network Tester) è una distribuzione Linux appositamente studiata per lavorare con penne USB e deriva da Slackware. Essa occupa solo 128 MB e si avvia attraverso un floppy di boot. RUNT ricorda molto da vicino zipslack, che però occupa solo 100 MB e non offre tutti gli strumenti da network tester presenti in questa distribuzione: pertanto essa potrà essere molto utile a tutti coloro che praticano questo tipo di lavoro ma non solo. L'home page di questo progetto è http://www.ncsu.edu/resnet/runt/ Patch per il boot da USB All'interno di questo articolo si è fatto riferimento ad una patch particolare, disponibile nel sito denominato "Materiale extra per l'articolo", da applicare al kernel per poter effettuare il boot da dispositivi USB. Questa patch è necessaria poiché i dispositivi USB richiedono alcuni secondi (in genere meno di quattro) per poter essere riconosciuti: infatti, il nuovo codice tenta di effettuare più volte il mount della partizione di root fino a quando il dispositivo viene riconosciuto dal sistema. Boot da dispositivi USB All'interno dell'articolo si è fatto riferimento ad alcuni problemi che possono insorgere nel tentativo di un boot diretto da penna USB. Essi sono dovuti al fatto che alcuni BIOS supportano un unico metodo di avvio oppure questi dispositivi hanno delle geometrie non standard. Se riscontrate qualche problema potete provare ad utilizzare questo boot sector alternativo: http://home.tele2.ch/spblinux/spbsetup/Linux/spb2_mbr.sec La libreria uClibc La libreria uClibc è una libreria C alternativa per Linux ed è molto più leggera della glibc: per questo motivo essa è molto adottata dalle mini-distribuzioni Linux in quanto permette di contenere le dimensioni dei pacchetti. DAMN Small Linux è compilata integralmente con tale libreria: in tal modo in così poco spazio (meno di 128 MB dopo la decompressione) è disponibile una miriade di pacchetti per i più vari campi di utilizzo del sistema. Per maggiori informazioni su questa libreria visitate http://www.uclibc.org/ Risorse on-line Su Internet sono disponibili moltissime risorse che possono aiutarvi nell'installazione di Linux su una penna USB. Personalmente ho trovato due pagine molto interessanti che vorrei consigliarvi per un approfondimento sulle tecniche descritte in questo articolo: The Linux USB sub-system Una guida completa sul supporto alle periferiche USB di Linux. http://www.linux-usb.org/USB-guide/book1.html Boot KNOPPIX from an USB Memory Stick Una guida alla modalità di installazione live di Linux su una penna USB. http://rz-obrian.rz.uni-karlsruhe.de/knoppix-usb/ Materiale extra per l'articolo Materiale aggiuntivo per questo articolo. http://www.valug.it/listing/~pctips/articoli/penne_usb/materiale/ Licenza Copyright (c) 2003 pctips Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". Una copia della licenza GNU Free Documentation License è disponibile nel sito denominato "Materiale extra per l'articolo".