Da tempo nel progetto Fedora esistono dei tool, semplici ed efficaci, per creare immagini LIVE della distribuzione, da usare a piacimento. Ecco una breve panoramica su cosa serve e come si procede.
Il kit per creare versioni LIVE
Occorre il solo pacchetto livecd-tools, che una volta installato si “tira dietro” tutti i pacchetti necessari tramite le dipendenze, tra cui syslinux, mkisofs e pykickstart. Nel pacchetto sono compresi alcuni file di esempio per creare versioni LIVE identiche a quelle già presenti nei mirror di Fedora, da usare anche come base per creare le proprie versioni personalizzate (in Fedora 10 ve ne è uno solo, da usare come base, con una installazione minima).
Un po’ di documentazione
La prima sorgente da cui attingere è il Fedora LiveCD HowTo, che elenca le capacità del tool di creazione e ne spiega il processo a grandi linee. Da leggere, di contorno, la documentazione riguardante il file di kickstart, usato per automatizzare le installazioni di Fedora.
Cosa si può fare
Creare la propria immagine Live di Fedora, con il software voluto, scelto dai depositi di Fedora al completo, compresi i nuovi depositi RPM Fusion, che comprendono i precedenti depositi Livna, con l’aggiunta di Freshrpms e Dribble.
Si può personalizzare a livello di singolo pacchetto cosa debba essere installato, senza preoccuparsi delle dipendenze, che verranno risolte al momento della creazione dell’immagine ISO.
Si possono eseguire script automatizzati, ad esempio per inserire software non compresi fra i pacchetti “standard” di Fedora.
Si possono inserire script di avvio personalizzati. Al termine del processo si ottiene una immagine ISO masterizzabile, con i pacchetti più nuovi, dato che vengono usati quelli degli aggiornamenti.
L’immagine ISO è anche installabile su disco nel computer, o volendo si può installare su un pen drive di capacità adeguata, usando il tool livecd-iso-to-disk, che non cancella i dati preesistenti sul drive, naturalmente a patto che vi sia spazio sufficiente. Pensate che comodità: un pen drive da 4Gbyte con Fedora Live pronta per l’uso e tutti i nostri dati, accessibili da Fedora.
Prima fase: il file di definizione
Tutto il processo è governato da un singolo file di kickstart, che contiene tutte le istruzioni per arrivare all’immagine ISO pronta per l’uso. Si può crearlo a mano, utilizzando come base uno degli esempi forniti in /usr/share/livecd-tools/ (in Fedora 10 è /usr/share/doc/livecd-tools-020/), oppure usare il tool grafico contenuto nel pacchetto system-config-kickstart.
Il file così come generato dal tool non è utilizzabile direttamente per creare una live, conviene invece prendere il file di esempio che crea una LIVE minima, chiamato livecd-fedora-minimal.ks, e copiarci la sola parte relativa alla selezione dei pacchetti del file creato col tool grafico, prendendola dalla sezione dei pacchetti, che vedremo fra poco. Il tool è comunque molto utile per fare la selezione dei pacchetti, che vengono scelti da tutti i depositi installati sulla macchina da cui si avvia il tool stesso, per cui se abbiamo installato anche i depositi RPM-Fusion, di cui parlavo prima, potremo selezionare pacchetti anche da lì.
Il file è diviso in sezioni:
- Le opzioni principali
- La selezione dei depositi
- La selezione dei pacchetti da includere/escludere
- Script/azioni da eseguire prima di iniziare
- Script/azioni da eseguire dopo l’installazione, ad esempio per installare software aggiuntivo
Andiamo a vedere le più importanti.
Le opzioni principali
Nelle opzioni principali si può scegliere la lingua, il tipo di tastiera, se avviare il desktop grafico all’avvio e cose simili. Alcune delle opzioni sono obbligatorie, altre opzionali. Per sapere quali basta riferirsi al manuale di Anaconda, citato sopra.
Ecco un esempio da un mio esperimento:
lang it_IT.UTF-8
keyboard it
timezone Europe/Rome
auth --useshadow --enablemd5
selinux --disabled
firewall --disabled
xconfig --startxonboot
part / --size 2048
services --disabled=network,sshd,NetworkManager,bluetooth
La riga con services --disabled=... indica quali servizi, pur installati, devono essere tenuti spenti. Quella invece con part / --size 2048 indica quanto deve essere grande il filesystem su cui verrà fatta l’installazione. Dato che il filesystem finale, ossia l’immagine ISO, sarà compresso e comprenderà solo lo spazio effettivamente occupato, possiamo anche abbondare, lo spazio effettivo lo vedremo al termine della creazione della LIVE, guardando l’immagine ISO.
La selezione dei depositi
Segue l’elenco dei depositi da cui verranno prelevati i pacchetti. Si possono specificare quanti e quali vogliamo, con l’accortezza, naturalmente, di sapere cosa stiamo facendo. Ad esempio, i depositi devono appartenere tutti alla stessa versione di Fedora; occorre stare attenti nell’includere depositi con pacchetti duplicati o in conflitto. Inserendo solo i depositi ufficiali ed eventualmente quelli di RPMFusion non dovrebbero esserci problemi di sorta.
Ecco come includere un deposito:
repo --name=undeposito --mirrorlist=url
Basta cambiare undeposito e url con i valori appropriati, presi ad esempio dai file di configurazione di yum, reperibili in /etc/yum.repos.d/. Non dimenticheremo di includere anche i depositi degli aggiornamenti, per avere a disposizione le ultime versioni dei pacchetti scelti.
La selezione dei pacchetti
La lista dei pacchetti deve essere compresa fra le parole chiave %packages e %end.
Per selezionare un pacchetto basta inserire il nome “ufficiale” nella lista, un pacchetto per riga, mentre per escluderlo basta farlo precedere da un segno meno. Si possono usare i jolly, ad esempio se inseriamo:
samba-*
-firefox
installeremo tutti i pacchetti del servizio Samba, ed escluderemo il Browser Firefox. Si possono installare anche gruppi di pacchetti, facendo precedere il nome del gruppo dal carattere ‘@’, ad esempio:
@base
@editors
@XFCE
andremo ad installare tutti i pacchetti che fanno parte del gruppo Base, Editors e XFCE. Dato che i pacchetti ed i gruppi sono realmente tanti, per questo passo conviene utilizzare il tool grafico e poi fare un copia/incolla della sola parte compresa fra i due tag.
L’esclusione dei pacchetti serve solo per non far installare quelli che vengono come predefiniti dentro un gruppo, altrimenti non serve: la logica è di installare solo ciò che è esplicitamente richiesto e le sue dipendenze. Torno a ripetere che se usiamo il tool grafico non dovremo occuparci di questi dettagli.
Gli script pre e post installazione
Chiusi rispettivamente fra i tag %pre / %end e %post / %end, sono normali script shell da eseguire prima di avviare l’installazione dei pacchetti e dopo aver installato il tutto, subito prima che il tool di creazione generi l’immagine ISO.
Un possibile uso è nel file di esempio riportato in fondo. Ho modificato uno degli script per evitare che all’avvio su un PC su cui c’è installato Linux venga attivata ed usata la partizione di swap, impedendo così qualsiasi modifica al disco locale del computer. Per far usare una eventuale partizione di swap presente sul computer in cui viene avviata la LIVE, occorre fermare il bootloader ed aggiungere la stringa useswap alla riga di avvio del kernel.
E’ evidente che l’uso di queste funzioni è destinato a chi sa dove mettere le mani.
La creazione della immagine ISO
Il comando da impartire è il seguente, da utente root:
livecd-creator -f MyLive --config=mylive.ks --cache=/home/cache
dove:
-f MyLiveè il nome che avrà l’immagine ISO--config=mylive.ksindica quale sia il file di kickstart da usare per generare l’immagine ISO della LIVE. Quello che abbiamo appena creato, insomma.--cache=/home/cacheindica dove posizionare la cache dei pacchetti scaricati. E’ estremamente utile impostare una cache, perché ci eviterà di dover riscaricare da Internet tutti i pacchetti per ogni tentativo o modifica al file di kickstart e successiva rigenerazione della immagine ISO. Ad ogni tentativo verranno scaricati solo gli eventuali pacchetti aggiunti o quelli che nel frattempo dovessero essere stati aggiornati. Naturalmente, diminuiremo anche il traffico verso i depositi di Fedora, cosa che non fa mai male.
Al termine del processo, piuttosto lungo (possono volerci anche ore se occorre scaricare tutti i pacchetti da Internet), avremo una immagine ISO dal nome MyLive.iso pronta per l’uso.
Il test della nostra LIVE
Naturalmente, pensare di masterizzare un CD ogni volta è impensabile, per cui possiamo usare la virtualizzazione, ad esempio con QEMU. Per lanciare una macchina virtuale con la nostra LIVE il comando sarà:
qemu-kvm -m 256 -boot d -cdrom MyLive.iso
In breve avremo la nostra LIVE pronta per tutti i test del caso.
Ora abbiamo tutte le informazioni per procedere alla creazione della nostra LIVE personalizzata: buon divertimento.
Riferimenti
- Un precedente scritto sulla virtualizzazione in Fedora con QEMU
- Il file kickstart di esempio che genera una LIVE con XFCE (molto rudimentale e con un sacco di difetti, ma funziona)
- Il Fedora LiveCD HowTo
- La documentazione riguardante il file di kickstart



#1 da Serendippo il 28 December 2008 - 03:13
ciao Mario,
spiacente di non esser stato alla Civetta – almeno non mi hai attaccato il TUO raffreddore!
Questa “mylive” sembra una cosa interessante – ma in confidenza, quanto tempo ci si impiega a impostare tutto? Non intendo, ovvio, il tempo necessario a scaricare i pacchetti, ma proprio quello richiesto PRIMA di avviare lo scaricamento.
E non vale considerare la tua esperienza in merito: diciamo una persona un po’ “niubba”, come me, insomma…
Grazie, e (vista la data) tanti auguri a te e famiglia.
#2 da Serendippo il 28 December 2008 - 14:31
mi è piaciuta così tanto, che mi sono permesso di citarti qui:
http://www.fedoraonline.it/modules/newbb/viewtopic.php?topic_id=8101&post_id=62022#forumpost62022
ariciao
Pingback: Personal Fedora LIVE parte II: la mia Live su pen drive USB « Il non-blog di Mario Pascucci
#3 da porcelinux il 3 September 2009 - 14:35
Grande Mario!
documentatore modello, bel lavoro,
il mondo ha bisongo di + gente come te!
a presto