Debian | creare un live CD

Debian offre un favoloso tool per creare una distro live (ossia un CD contenente un sistema operativo Debian pienamente funzionante e senza necessità di installarlo sull’hard disk). Il tool si chiama “live-helper”. Esiste anche un wiki fatto davvero bene.

Installiamo il pacchetto con:

# apt-get install live-helper

Creiamo poi una directory di lavoro, per esempio:

$ mkdir /home/user/debianlive

Spostarsi della directory di lavoro appena creata:

$ cd /home/user/debianlive

Per un live CD minimale basta dare il seguente comando (da root):

# lh_config && lh_build

In questo modo si ottiene un’immagine chiamata “binary.iso” che può essere masterizzata (es. con k3b) oppure testata con l’emulatore “qemu”(per installarlo # apt-get install qemu). Per testare l’immagine prima di masterizzarla dare il seguente comando:

$ qemu -cdrom binary.iso

Il comando “lh_build” crea una distro minimale con lingua (inglese) e impostazioni di default. Se vogliamo personalizzare la distro aggiungendo pacchetti, dati e altre magie bisogna aggiungere alcune opzioni al comando “lh_config”.

Il comando “lh_config” può essere impartito da user (non root). In particolare, se vogliamo un ambiente grafico con xfce4, basta scrivere:

$ lh_config -p xfce-desktop

Per la configurazione della lingua:

$ lh_config –bootappend-live “locale=it”

Per indicare mirror locali:

$ lh_config –mirror-bootstrap “http://ftp.it.debian.org/debian/”

$ lh_config –mirror-binary “http://ftp.it.debian.org/debian/”

$ lh_config –packages “nome dei pacchetti separati da semplice spazio”

Nel mio caso avevo necessità di inserire anche il software gis (come qgis) che non si trova (aggiornato) nei repo ufficiali debian. Così ho copiato il pacchetto prelevato dal repo debian.gfoss.it all’interno della direcotry “…./config/chroot_local-packages/” assieme a tutti i pacchetti e dipendenze collegate come:

gdal-bin_1.5.2-3_i386.deb libqgis1-dev_1.0.0-gfossit20081222-2_i386.deb libqgis-core1_1.0.0-gfossit20081222-2_i386.deb libqgis-gui1_1.0.0-gfossit20081222-2_i386.deb python-qgis_1.0.0-gfossit20081222-2_i386.deb qgis_1.0.0-gfossit20081222-2_i386.deb qgis-plugin-grass_1.0.0-gfossit20081222-2_i386.deb

Il builder si preoccuperà di scaricare tutte le altre dipendenze non risolte.

Con lh_config” ho aggiunto anche una serie di pacchetti utili per avere un webgis funzionante:

$ lh_config –packages “apache2 mapserver-bin cgi-mapserver php5-mapscript php5 lynx locate gdal-bin openssh-client opnssh-server ssh”

Per il webgis avevo anche necessità di copiare i dati da consultare con l’applicativo pmapper preconfigurato. I dati personalizzati (file, directory) devono essere copiati in “…/config/chroot_local-includes/”. Questa directory corrisponde alla directory radice “/” della live distro. Pertanto, dovendo copiare file che andranno in “/var/www”, ossia nella directory pubblica del webserver apache, ho creato il seguente albero “…./config/chroot_local-includes/var/www/” all’interno del quale ho copiato i dati del webgis.

A questo punto si puo lanciare il builder per la creazione della ISO. Diventare root e dare:

# lh_build

Dopo alcuni minuti (dipende molto dalla velocità di connessione alla rete disponibile) troviamo l’immagine creata “binary.iso”.

Possiamo testare l’immagine creata mediante qemu:

$ qemu -cdrom binary.iso

Dopo qualche minuto (non è velocissimo, essendo un emulatore) ci appare il nostro desktop live funzionante.

Può essere comodo personalizzare l’aspetto del desktop, oppure impostare un programma che venga avviato automaticamente allo startup. Nel mio caso avevo necessità di avviare il browser iceweasel che puntasse ad una determinata pagina caricata in locale “localhost”.

Per fare ciò seguire i seguenti passaggi:

Nella VM (quella avviata con qemu) avviare una console e avviare il gestore degli startup chiamato xfce4-autostart-editor. Appare una finestra grafica in cui si possono togliere e/o aggiungere programmi all’avvio del PC. Io ho disabilitato il “tips & tricks” e aggiunto iceweasel. Chiudere tutto. In questo modo viene creato un file di configurazione chiamato “iceweasel-desktop” all’interno della directory nascosta “/home/user/.config/”. Apriamo poi il browser iceweasel e, dal menù preferenze,impostare la pagina che si vuole caricare all’avvio. Chiudere tutto. Tornare alla console e tramite SCP copiamo il contenuto di tutta la directory “/home/user” dalla VM al PC host. Il comando da dare è questo:

$ scp -r /home/user user_host_pc@10.0.0.13:/home/user_host_pc/directory_destinazione/

dove 10.0.0.13 è l’indirizzo IP del pc host (dal quale abbiamo avviato la VM). Viene richiesto se salvare la key e poi la password dell’utente del host PC.

Tutti i dati vengono copiati nel pc host nella directory “/home/user_host/pc/directory_destinazione”. Da qui li copiamo in “…./config/chroot_local-includes/etc/skel/”. Tutto quello che sta in “/etc/skel/ verrà caricato nella home directory quando il builder crea l’immagine. In questo modo salveremo tutte le impostazione del desktop settate dalla VM.

A questo punto possiamo ricreare l’immagine. Ricordarsi di ripulire la vecchia build con:

# lh-clean

e subito dopo ri-buildare con:

#lh_build

Fatto!

aggiornare data e ora di sistema su Debian

Per aggiornare data e ora di Debian è necessario installare il pacchetto “ntpdate”:
# apt-get install ntpdate
quindi, da root, lanciare:
#ntpdate ntp1.inrim.it
In questo modo si sincronizza con l’ora del server indicato (nel nostro caso “ntp1.inrim.it”).

Per modificare l’ora:
# date -s “9 FEB 2009 15:51:00”
Si invoca il comando date e si danno come parametri data e ora nella forma indicata sopra; tutto fra doppie apici.