Installare una distro Linux bootabile su un drive USB

Da Hacknowledge.

In questa sede vedremo come installare Slax, una live distro basata su Slackware a.k.a. 'coltellino svizzero' su un drive USB, e come aggiungere nuove applicazioni e personalizzare il nostro gioiellino da portare sempre con noi.

Unici requisiti:

- un driver USB >= 256 MB - un sistema Linux funzionante


  1. Passo 1: Inserire il drive USB nel sistema e creare un filesystem EXT3 su di essa con il seguente comando,
 supponendo che il drive sia su /dev/sdb1
 (Attenzione: tutti i dati eventualmente presenti verranno cancellati)
 mke2fs -L EXT3 -j /dev/sdb1
  1. Passo 2: Scaricare da qui il pacchetto syslinux: http://www.kernel.org/pub/linux/utils/boot/syslinux/
 Scompattare l'archivio e spostarsi nella directory che contiene l'eseguibile di extlinux
  1. Passo 3: Montare il drive USB. Se la directory /mnt/usb non esiste, crearla.
 mount -t ext3 /dev/sdb1 /mnt/usb
  1. Passo 4: Creare un'immagine extlinux sul drive montato attraverso il comando:
 ./extlinux --install /mnt/usb
  1. Passo 5: Creare il file /mnt/usb/extlinux.conf con il seguente contenuto:
PROMPT 0
TIMEOUT 600
DEFAULT vesamenu.c32
 
LABEL slax
MENU LABEL Slax Console mode
KERNEL vmlinuz
APPEND vga=769 initrd=initrd.gz ramdisk_size=6666 root=/dev/ram0 changes=slax/slaxsave.dat rw
 
LABEL normal
MENU LABEL Slax Normal mode
KERNEL vmlinuz
APPEND vga=normal initrd=initrd.gz ramdisk_size=6666 root=/dev/ram0 changes=slax/slaxsave.dat rw
 
LABEL xconf
MENU LABEL Slax Graphics mode (KDE)
KERNEL vmlinuz
APPEND vga=769 initrd=initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=slax/slaxsave.dat autoexec=xconf;kdm
 
LABEL copy2ram
MENU LABEL Slax Graphics mode using Copy To RAM
KERNEL vmlinuz
APPEND vga=769 initrd=initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=slax/slaxsave.dat copy2ram autoexec=xconf;kdm
 
LABEL startx
MENU LABEL Slax Graphics VESA mode (1024×768)
KERNEL vmlinuz
APPEND vga=769 initrd=initrd.gz ramdisk_size=6666 root=/dev/ram0 rw changes=slax/slaxsave.dat autoexec=kdm
 
LABEL memtest86
MENU LABEL Run Memtest utility
KERNEL mt86p
  1. Passo 6: Scaricare da http://www.slax.org/get_slax.php la versione di Slax per drive USB
  1. Passo 7: Scompattare il pacchetto all'interno della root del drive USB:
 tar xvf slax-6.0.2.tar
  1. Passo 8: Spostare l'intero contenuto della directory boot nella root del dispositivo:
 mv boot/* .
 rmdir boot/

Il sistema è ora pronto per essere avviato dal drive USB.

Passiamo ora alla seconda parte, ovvero come aggiungere in modo pratico nuove applicazioni alla nostra distro bootabile. Slax provvede un formato di moduli estremamente comodo, lzm, in cui è possibile convertire la maggior parte dei formati di pacchetti disponibili per Linux attraverso i semplici comandi

- mo2lzm (moduli per Slax 5, vecchio standard, in LZM) - deb2lzm - dir2lzm (intere directory in pacchetti LZM) - tgz2lzm

In questa sede esamineremo la conversione di un pacchetto tgz in lzm, in quanto è il formato di pacchetti usato da Slackware, distro sulla quale è basata Slax, e offre quindi meno problemi di dipendenze. Avviamo il nostro sistema live Slax e scarichiamo, ad esempio, il pacchetto di Firefox 2.0.0.12 da www.slacky.eu. A questo punto possiamo convertire il pacchetto tgz in lzm con il semplice comando:

 tgz2lzm mozilla-firefox-it-2.0.0.12-i386.tgz firefox.lzm

Ora possiamo copiare il pacchetto appena creato in slax/modules/ se vogliamo che venga caricato nel sistema all'avvio, oppure in slax/optional/ se vogliamo caricarlo a mano al boot di Slax. In questo caso dovremmo passare al boot, ad esempio, un'opzione come questa:

 slax load=firefox initrd=initrd.gz boot=........

È possibile così anche aggiungere in modo più o meno permanente al sistema i nostri file di configurazione, e quindi personalizzare il sistema e le applicazioni che usiamo. Immaginiamo ad esempio di avere il nostro file di configurazione .bashrc tutto carino con le impostazioni dei colori nel terminale o con la variabile PS1 settata per bene, e non vogliamo perdere questa configurazione sul nostro sistema live o non vogliamo riscrivere il file .bashrc di volta in volta. In questo caso possiamo fare un bel modulo lzm con tutti i nostri file di configurazione preferiti che verranno caricati all'avvio. Supponiamo di aver solo bisogno di .bashrc. In tal caso, creiamo una nuova directory (es. personale). Ora creiamo nella directory la stessa gerarchia prevista per il file .bashrc, quindi

 mkdir personale/root

quindi copiamo il file .bashrc al suo interno

 cp .bashrc personale/root

Ora creiamo il pacchetto tgz

 cd personale/
 makepkg personale.tgz

e convertiamolo in lzm

 tgz2lzm personale.tgz personale.lzm

quindi copiamolo nella directory dei moduli in modo che venga caricato all'avvio:

 cp personale.lzm /<path_to_slax_live_fs>/slax/modules/
Strumenti personali