Fonte: Matteo Campofiorito – bufferOverflow

Il kernel Linux è talmente adattabile da poter funzionare utilizzando qualsiasi dispositivo di memorizzazione, non soltanto hard disk o Cd-Rom ma anche l’ultima moda in fatto di storage: le pendrive Usb.
Le distribuzioni Gnu/Linux più promettenti che funzionano su chiavette Usb sono Runt e Knopperdisk. La prima arrivata alla versione 4.0 è basata su Slackware 10.0 e utilizza il kernel 2.4.26.

Knopperdisk è appena alla versione 0.2.1, si basa su Gentoo e utilizza il kernel 2.6.10. Entrambe sono distribuzioni Gnu/Linux complete che si installano su una pendrive Usb con capienza di 128 Mbyte. Vedremo in pratica le procedure per installare e rendere funzionante Runt supponendo di eseguire le operazioni richieste su una distribuzione Gnu/Linux funzionante e loggati come utente root.

Per cominciare sarà necessario scaricare il file compresso runt-4.0.zip che contiene la distribuzione e gli script di installazione. Le chiavette Usb sono viste dal kernel come dispositivi Scsi e dunque denominate come sda con numerazione crescente a seconda di quanti dispositivi usb sono connessi contemporaneamente (es. sda1, sda2 etc).

Come tutti i dispositivi, anche le pendrive Usb sono rese disponibili in Linux sotto forma di file (di solito presenti nella directory /dev) che devono essere montati in una directory del nostro filesystem per essere letti e scritti.

Supponiamo che la nostra chiavetta sia identificata dal kernel come /dev/sda1 e immaginiamo inoltre di aver creato la directory /pendrive all’interno di /mnt. Il comando che dovremo dare da utente root per rendere accessibile il nostro dispositivo di memorizzazione sarà:

# mount -t msdos /dev/sda1 /mnt/pendrive

Portiamoci nella direcotry in cui abbiamo salvato runt-4.0.zip, e scompattare il file .zip direttamente all’interno della pendrive appena montata con il comando:

# unzip runt-4.0.zip -d /mnt/pendrive (estrae il file zip nella directory che segue il flag -d)

A questo punto avremo all’interno di /mnt/pendrive due directory linux e runtutil.

Chi ha la fortuna di poter impostare da Bios come prima unità avviabile la propria chiave Usb dovrà portarsi nella directory runtutil ed eseguire makeboot.sh che renderà avviabile la pendrive (o makeboot.bat se si sta eseguendo la procedura da Windows):

# sh makeboot.sh

Chi invece non ha la possibilità di eseguire il boot dalla pendrive potrà approntare un floppy disk ad hoc che permetterà l’avvio e in seguito consentirà di eseguire il sistema Gnu/Linux presente su pendrive Usb. Bisognerà in questo caso eseguire mkfloppy.sh (o mkfloppy.bat se si esegue la procedura da Windows):

# sh mkfloppy.sh

A questo punto potremo riavviare lasciando il floppy inserito, far caricare il kernel in memoria e aspettare i messaggi a video. Il bootdisk ci darà il benvenuto e ci chiederà quale device avviare (di default /dev/sda1). Chi avesse un diverso numero di identificazione della propria pendrive dovrà dare i seguenti comandi al boot prompt:

boot: usb root=/dev/sdax (sostituendo x con il numero identificativo del proprio dispositivo usb)

Se tutto è andato per il verso giusto il sistema verrà avviato e al termine dei messaggi di boot potremo loggarci come root al prompt della shell e trovarci all’interno di un sistema Gnu/Linux perfettamente funzionante e dotato di tutte le utility e i programmi presenti in una vera e propria Slackware.

Potremo addirittura configurare l’indirizzo Ip della nostra macchina e relativi parametri di rete eseguendo l’utility netconfig e navigare su Internet utilizzando il browser testuale Links.