
Costruisci una ''live'' fai da te derivata da Debian
Pensate che le distribuzioni “preconfezionate” siano tutte uguali e poco adatte alle vostre esigenze? Noi vi mostriamo come crearne una su misura per voi
(pagina 2 di 3)
Il segreto è nel kernel Linux
Per capire il perché di questa preziosa caratteristica, è necessario analizzare
il processo di bootstrap, che si attiva dopo la fase in cui il BIOS
analizza le unità disponibili per l’avvio e passa “la palla” al bootloader,
il quale provvede a sua volta al caricamento del kernel Linux da mandare
in esecuzione. Durante la sua fase di attivazione, il kernel provvede al
riconoscimento di tutti i componenti hardware per il quale è presente un
driver. Solo dopo questa fase procede con il mount dell’unità di memorizzazione
(in genere una partizione del disco o un’unità virtuale), nel
quale verrà invocato il processo init, incaricato di attivare tutti i servizi
della distribuzione. A questo punto, è chiaro che, più il kernel è compilato
per essere generico, più è flessibile ai cambiamenti (ovviamente mantenendo la stessa famiglia di processore
e l’architettura). Tuttavia, integrare
il supporto per ogni dispositivo hardware
nel kernel occuperebbe inutilmente memoria
su disco. Per questo motivo i kernel
generici utilizzano un file “initrd”, caricato
in memoria durante la fase di boot,
contenente un file system dentro il quale
sono presenti i moduli e tutto il necessario
per un corretto avvio del sistema.
Con Knoppix è nato Gnu/Linux “live”
Questa capacità di adattamento permette l’avvio di un sistema GNU/Linux
anche da dispositivi removibili. La maggiore difficoltà nella
realizzazione di
una distribuzione live non è la compilazione di un kernel adatto, ma la
creazione
di un sistema “init” capace di determinare la partizione/supporto
contenente
il sistema operativo e le applicazioni. Ovviamente, le difficoltà non
finiscono qui: in passato le distribuzioni live non potevano sfruttare
software e
pacchetti contenuti nelle distro classiche ed era indispensabile
compilare tutti
i suoi componenti uno per uno. Knoppix, nata nel 2000 (www.knoppix.com)
fu la prima distribuzione live per desktop basata su Debian GNU/Linux.
Uno
dei punti di forza è sicuramente la possibilità di includere una numero
considerevole
di programmi nello spazio di un CD grazie al sistema “cloop”, che
permette di utilizzare una partizione virtuale contenuta in un file
compresso per risparmiare spazio. In questo modo fu possibile fornire
agli utenti un sistema
completo anche di ambiente desktop KDE. La live fu determinante per
gli utilizzatori abituali di GNU/Linux che spesso si trovavano fuori
casa o per
coloro che nutrivano curiosità verso questo sistema operativo, ma non
avevano
la possibilità di installarlo sul proprio PC. Da buon progetto Open
Source,
gli ideatori di Knoppix decisero di rendere pubbliche tutte le
informazioni
tecniche per modificare la distribuzione o iniziare l’avventura di
realizzare
una nuova live. Purtroppo, per quanto il lavoro fosse semplificato, la
difficoltà
di realizzazione era pur sempre molto elevata.
Una live per ogni uso
Da sistema di recupero a desktop completo.
Una distribuzione live non ha limiti d’uso. Essa può sostituire il
desktop o essere utilizzata come sistema di recupero e ripristino.
Un uso meno frequente, ma in espansione, è la realizzazione
di CD dimostrativi per applicazioni e siti web, da lasciare
ai potenziali clienti come se fosse un biglietto da visita.
Il progetto debian live!
Lo scopo degli sviluppatori di Debian Live è stato quello di creare
un sistema in grado di semplificare tutte le operazioni di creazione e
personalizzazione di una distribuzione live basata su Debian GNU/
Linux, ovviamente utilizzando i pacchetti contenuti nei repository ufficiali della distro. La piattaforma è composta da numerosi programmi
che, grazie ad una procedura passo passo, guidano l’utente in tutte le
fasi necessarie alla realizzazione di una distribuzione live: da quella
di preparazione fino alla creazione di un’immagine per il supporto di
memorizzazione da voi scelto, CD o DVD. Anche se questo software
è compilabile con tutte le distribuzioni, è consigliato usare come base
di partenza una Debian GNU/Linux, sulla quale, ovviamente, abbiamo
i privilegi di amministratore. Il sistema base è necessario da usare sia
per l’installazione di Debian Live, sia per tutte le fasi necessarie alla
realizzazione della nostra live personalizzata. In particolare, il sistema
fa largo uso di “cdebootstrap”, il quale crea un ambiente contenente
un sistema operativo Debian GNU/Linux base in una directory a nostra
scelta. Per l’installazione dei programmi necessari basterà eseguire il
comando:
apt-get install cdebootstrap live-helper
Dopo aver installato i due pacchetti precedenti, creiamo una directory
temporanea ed eseguiamo il comando lh_config. A questo punto, nella
directory temporanea sarà presente una cartella “config”, nella quale
è contenuta la configurazione base. Eseguendo il comando lh_build,
invece, il programma provvederà a creare l’ambiente “chroot”, opererà
le aggiunte di pacchetti e opzioni contenuti nelle configurazioni
di Debian Live, e “impacchetterà” un’immagine per Cd-Rom. Nella
directory sono presenti due file, binary.packages e binary.list, i quali
contengono una lista di tutti i pacchetti installati e l’elenco dei file
personalizzati aggiunti al sistema base. L’immagine ISO appena creata
occuperà meno di 150 Mbyte, ma conterrà giusto il minimo essenziale
e non disporrà di alcuna interfaccia grafica. Complimenti, avete appena
realizzato il vostro primo sistema live! Nell’esempio precedente
abbiamo prodotto un’immagine ISO per un CD/DVD. Qualora volessimo
modificare il supporto di destinazione per realizzare una pendrive
USB con Debian Live, dovremmo spulciare le opzioni contenute nella
directory “config”, selezionare una diversa tipologia di immagine da
produrre e modificare le ottimizzazioni da operare sul sistema. Fortunatamente
il tool di configurazione, tra le sue numerose opzioni, offre
la possibilità di scegliere il supporto grazie al parametro “-b”: lh_con-
fig -b usb-hdd. L’argomento passato al parametro, permette di creare
un’immagine della Debian Live adatta alle penne USB. Le opzioni
permesse per questo parametro sono:
- iso: immagine per CD/DVD. Questa è la selezione predefinita:
non bisogna fornire l’opzione “-b” se l’ intenzione è quella di creare
un’immagine di questo tipo;
- usb-hdd: come mostrato nell’esempio, questo valore permette
la creazione di un’immagine da porre in un disco rimovibile
collegato al computer via USB. Per un avvio diretto della
distribuzione è necessario che il BIOS del computer supporti
il bootstrap da questo tipo di unità;
- net: anche in assenza di un dispositivo fisico è possibile attivare una
live. In questo caso, è necessario un BIOS che supporti il boot via
rete locale e un computer adibito a boot server che utilizzerà
l’immagine creata con questa opzione;
- tar: banalmente si tratta di un archivio compresso tar.gz
contenente tutto il sistema prodotto dai programmi di utilità di
Debian Live e le personalizzazioni scelte.
Chi conosce Debian GNU/Linux sa che questa storica distribuzione ha
una linea di sviluppo con tempi medio/lunghi dovuti alla necessità di
operare un forte controllo della qualità prima di accettare un nuovo pacchetto
contenuto nei rami experimental e sid in quello di test, il quale
a sua volta sarà la base per la nuova stable. Quando decidiamo di creare la distribuzione live, possiamo anche scegliere il ramo di sviluppo di
partenza utilizzando il parametro “-d”: lh_confi g -d lenny. Il nome del
ramo deve essere “conosciuto” dai programmi di utilità. Fortunatamente,
le definizioni delle distribuzioni vengono aggiornate di volta in volta.
Le personalizzazioni di base non fi niscono qui. Tra i file distribuiti con
le utility, ci sono tutta una serie di template per l’installazione dei pacchetti
Debian necessari per installare un desktop manager o un software
particolare. Se, ad esempio volessimo includere KDE nella nostra live,
è sufficiente aggiungere il seguente parametro: lh_confi g -p kde. Con
queste opzioni, anche senza operare personalizzazioni, possiamo ottenere
un sistema completo sia per un uso occasionale/dimostrativo, sia per
verificare il funzionamento della distribuzione e del software presente
nei rami di sviluppo meno stabili.
 |
Il tool di Debian Live per la costruzione dell’immagine all’opera |
Debian live per penna Usb
È necessario copiare il sistema manualmente
A differenza delle ISO, l’immagine di Debian Live realizzata
per le unità USB deve essere caricata manualmente nel
disco sovrascrivendo le partizioni ed eventuali dati in esse
contenuti. Il comando da utilizzare è “dd if=file.img of=/
dev/deviceusb”.
Ancora più facile con Live Magic
Grazie a questo tool è possibile scegliere rapidamente il dispositivo e la tipologia di sistema.
Tipo di immagine
La prima schermata del tool
ci permetterà di scegliere tra i
cinque template più diffusi. L’ultimo è di particolare
importanza, in quanto ci consentirà
di creare un sistema di ripristino in un batter
d’occhio. Questo risulterà utile in caso di avaria
hardware/software per recuperare dati
da un computer in panne.
La distribuzione base
La scelta della distro base a volte
determina la corretta creazione
della distribuzione live. Purtroppo, non
sempre gli script sono aggiornati, quindi,
in caso di difficoltà nel creare un’immagine
con testing o unstable, possiamo
sempre scegliere stable, l’unica con la
certezza assoluta di riuscita.
Tipo di supporto
La schermata immediatamente
successiva chiede il tipo di
supporto per il quale dovrà essere creata
l’immagine ISO della Debian Live. Bisogna
comunque fare molta attenzione! Per i lettori
CD collegati alla porta USB, è necessario
comunque scegliere il lettore CD/DVD
come destinazione.
L’archivio software
La creazione del chroot contenente
le applicazioni e l’ambiente
della distribuzione live necessita di numerosi
pacchetti Debian, i quali devono essere
reperiti dalla rete. In questa schermata
dovrete selezionare il mirror più vicino a voi
in modo da evitare perdite di tempo causate
da velocità di download non eccezionali.
Scelta dell'installer
Tra le altre cose, Debian Live
è nato per dare agli utenti la
possibilità di personalizzare l’installer
Debian qualora il CD ufficiale non
riuscisse ad inizializzare l’hardware
per l’installazione. Con questa opzione
possiamo trasformare la nostra live in
un CD per l’installazione di Debian.
Localizzazione
Le distribuzioni live usualmente
offrono supporto per
tutte le lingue. Anche la nostra live
non è da meno. Tuttavia, in questa
schermata è possibile selezionare la
lingua e il layout predefiniti per non
dover essere costretti ogni volta a
specificarli manualmente.
Personalizzare i programmi
I template per i diversi rami di sviluppo e le liste dei pacchetti sono
contenuti in file di testo messi a disposizione dal progetto Debian
Live. La loro semplicità fa sì che tutte le distribuzioni derivate da
Debian possano utilizzare questo sistema. A questo punto, è utile
dare un’occhiata alle liste dei pacchetti, le quali sono contenute
nella directory “/usr/share/live-helper/lists/”. Prendiamo, come
esempio, la lista dei package utilizzata per aggiungere KDE alla
nostra distribuzione:
## LH: KDE
#include
kde kdm
desktop-base
Nelle ultime due righe sono presenti una serie di nomi di pacchetti da
installare. Le prime due righe indicano che deve essere caricata anche
la lista “kde-core”. In questo modo è possibile definire le dipendenze
grazie alle quali si evita di indicare tutti i pacchetti necessari alla configurazione scelta. Ad esempio, se volessimo realizzare una lista con
dentro KDE e K3b ci basterebbe scrivere:
## LH: KDE
#include
k3b wodim dvd-tools
Se i pacchetti da aggiungere non sono tantissimi, possiamo anche
evitare di creare una vera e propria lista. L’inclusione di quelli addizionali
può essere effettuata tramite il comando “lh_config” o
modificando direttamente il file di configurazione “config/chroot”:
LH_PACKAGES=”k3b wodim”. Se non siete sicuri di quello che
fate, evitate tassativamente di rimuovere eventuali pacchetti già presenti
nella chiave di configurazione. Le soluzioni appena proposte
sono perfettamente valide qualora i pacchetti Debian che vogliamo
includere siano presenti nel repository. Queste strade però non
possono essere perseguite se vogliamo installare pacchetti di terze
parti o di nostra produzione. Copiando i pacchetti da includere nella
directory “config/chroot_local-packages”, il sistema provvederà
all’installazione automatica senza dover modificare alcun file
di configurazione. L’unico neo di questo sistema è la necessità di
nominare il file contenente il pacchetto Debian in forma canonica.
Se non sapete cosa vuol dire o non volete perdere tempo a determinare
il nome corretto ed effettuare il cambio a mano, potete usare
il programma dedicato “dpkg-name”: dpkg-name file.deb. L’invocazione
del comando rinominerà il file “file.deb” in “nomepacchetto_
versione_architettura.deb”.
Il filesystem? Compresso!
Indispensabile per ridurre gli ingombri
Come con Knoppix, il file system utilizzato è compresso.
In questo modo è possibile installare molti software in
spazi ristretti. Inoltre, grazie al file system unionfs, questa
tecnica permette all’utente di modificare qualsiasi file del
sistema live, anche se esso è contenuto in un dispositivo di
sola lettura. Ovviamente, le modifiche verranno eseguite
solo in memoria e scompariranno al riavvio.
Non solo pacchetti personalizzati
Ammettiamo di voler realizzare un CD live con la demo di alcuni siti
web per dei clienti. Oltre ai pacchetti necessari per installare Apache,
MySQL e PHP, sono necessari i file di configurazione dei servizi appena
citati, il database e i file delle pagine web. Realizzare un pacchetto
Debian personalizzato sarebbe fatica sprecata, in quanto la complessità
per la sua realizzazione non è esente da eventuali conflitti causati
dai file originali dei pacchetti di installazione del software necessario
per il nostro sito. Fortunatamente tutti i file nella directory “config/
chroot_local-includes” vengono inseriti nel chroot della distribuzione
subito dopo l’installazione di tutti i pacchetti Debian. In questo modo
possiamo non solo aggiungere nuovi file, ma anche sovrascrivere le
configurazioni predefinite dei software installati. La posizione dei file
deve corrispondere alla gerarchia di quelli presenti nel sistema secondo
questo semplice schema di esempio:
chroot_local_includes/etc/apache2 --> /etc/apache2
chroot_local_includes/var/www --> /var/www
Per completare il nostro esempio supponiamo di avere i file pronti in
archivi tar.gz e di volerli inserire nella distribuzione live. Per ottenere
ciò, basterà entrare nella directory che ci interessa e procedere alla
scompattazione dell’archivio:
cd chroot_local_includes/var/www
tar -zxf /path/wwwroot.tar.gz
cd ../lib/mysql
tar -zxf /path/mysqldata.tar.gz
Questo sistema però non procede all’eliminazione di file e non
è in grado di eseguire comandi complessi, dato che il suo unico
scopo è effettuare la copia di file. Quando è necessario eseguire
una procedura in fase di costruzione del chroot, bisogna necessariamente
aggiungere uno o più script nella directory “chroot_local_
hooks”.
 |
Il prompt del bootloader di una distribuzione creata con Debian Live |