Knoppix Remastering

 :: GNU/Linux :: Altro

Andare in basso

Knoppix Remastering

Messaggio Da floatman il Mar Set 15, 2009 12:28 am

PREMESSA

Per realizzare una distribuzione Linux si utilizzano vari modi:

Lavorare sui sorgenti - si pone un sistema minimale, si crea una lista di pacchetti sorgenti o compilati; per l'installazione si formatta una partizione, ci si copia una base di compilazione/installazione e quindi si esegue l'installazione del resto dei pacchetti in base ad un ordine di dipendenza.
Questo metodo è utilizzato dalle grandi distro che vivono "di sè stesse" (Debian, Gentoo, Slackware, RedHat...)

Lavorare sui pacchetti - si "apre" il disco di installazione di una delle prime distro, si prendono tutti i pacchetti e si vede di modificarli, personalizzarli, ridurli, addirittura cambiarne l'installatore.
Il sistema è usato da molte grandi distro "derivate" (Ubuntu, Slax, Knoppix...)

Lavorare sul "remastering" - questa procedura prevede di "scompattare" un cd live, in maniera da modificarlo in base alle proprie necessità e personalizzazioni, quindi masterizzarlo nuovamente.
Ad un occhio inesperto questo metodo potrebbe apparire di basso livello e senza alcun uso professionale...siete sicuri?
Damn Small Linux rimasterizza Knoppix 3, Musix e Helix la versione 5, Backtrack rimasterizza Slax, Sabayon rimasterizza Gentoo-live, tutti i progetti derivati da Ubuntu sono sue rimasterizzazioni ecc...

La tecnica di remastering si basa su due principi fondamentali:

1. la buona conoscenza della distro da utilizzare

2. la capacità di "staccare" il più possibile il cd scompattato dal sistema in cui si sta lavorando.

Le mie competenze mi portano a scegliere la distro più rimasterizzata, cioè Knoppix.
Knoppix è una Debian quasi perfetta (molto più di Ubuntu), ha una quantità di software impressionante, ha un riconoscimento hardware invidiabile, è *il* cd-live per antonomasia. Insomma è un capolavoro di ingegneria del software e non viene scelta a caso.

Nota: La guida ufficiale è presente a questo indirizzo:
http://www.knoppix.net/wiki/Knoppix_Remastering_Howto
Lo cito per dovere, anche se da un lato aggiunge qualcosa in più a quello che dico qui, dall'altro lato è molto "carlona" soprattutto per chi non sa nulla di remastering.


OCCORRENTE

Cosa ci serve?

- un cd di Knoppix (ma va?)
- una partizione formattata per Linux
- una connessione ad internet attiva *per Knoppix*

Per questa guida ho utilizzato la versione 5.1 di Knoppix (kernel 2.6.19), qualunque versione va bene.
La partizione è di 4 GB ed è più che sufficiente, ovviamente tutto dipende da quanto volete aggiungere e togliere.

IMPORTANTE: Per fare questo procedimento esistono vari modi; il sistema "host" (cioè quello che lavora sul cd) può essere una qualunque distro, oppure Knoppix stesso.
In questa guida lavorerò da Knoppix in modo tale da presentare una procedura applicabile anche da un pc con un altro sistema operativo, purchè venga creata una partizione in ext3 ed eventualmente un po' di swap (sempre usando Knoppix).
L'utilizzo di un'apposita partizione non è un obbligo e se avete Linux installato potete tranquillamente utilizzare una directory qualunque.

PREPARAZIONE

La partizione che utilizzerò per il remastering è hda4, che come ho detto ho formattato in ext3.
Avvio il pc con Knoppix inserito e digito "knoppix lang=it" per avere la tastiera Italiana e la parziale traduzione.
(ovviamente boot del BIOS da cd-rom, "=" fatto con il tasto "ì" per la tastiera Americana iniziale)

Vediamo di inquadrare la situazione: il sistema visualizza il mio hda4, ovviamente non ancora montato; nel cdrom abbiamo appunto visualizzato l'interno del cd di Knoppix.

Per prima cosa aprirò il terminale di Knoppix e tramite "su" mi disporrò come root (non occorre password)
Lavoreremo sempre da root e (più o meno) sempre da terminale, vi consiglio quindi di piazzare la shell a tutto schermo.

Bene. Siamo pronti a partire...

LA COPIATURA

Montiamo la partizione hda4 in lettura e scrittura:

# mount -rw /dev/hda4 /mnt/hda4

Creiamo per sicurezza una ulteriore directory di lavoro "remaster":

# mkdir /mnt/hda4/remaster

Nel caso qualcosa vada storto, o fossimo indecisi su cosa fare, potremo così scegliere di creare anche /remaster1 ecc..

Se avete per caso visto i file del cd-rom, vedrete che il grosso di Knoppix si trova nella directory /KNOPPIX, che noi andremo a creare in due posizioni: una dentro una directory /source e un'altra dentro una /master.
I nomi delle directory sono tradizionalmente questi, se volete chiamarle /pippo e /pluto è la stessa cosa.

# mkdir -p /mnt/hda4/remaster/source/KNOPPIX
# mkdir -p /mnt/hda4/remaster/master/KNOPPIX


(l'opzione -p serve a creare l'albero delle directory, qualora non sia presente)

Il prossimo passaggio è fondamentale:

# cp -r -p /KNOPPIX/* /mnt/hda4/remaster/source/KNOPPIX

Leggendo gli ultimi passaggi potrebbe sembrare ovvia la procedura di copiare direttamente la directory /KNOPPIX dentro /source e /master.
In realtà questa procedura ci permette di mantenere la configurazione completa (opzione -p) di permessi, link, mode ecc.
Ovviamente la copiatura non sarà immediata visto che stiamo trasferendo l'intero sistema.
Se vi piace vedere la shell che lavora potete aggiungere anche l'opzione "-v"

Fatto questo passaggio possiamo pensare alla nostra directory /master. Questa directory dovrà essere costruita ovviamente a partire dal cd-rom e non dal sistema.
Il cd-rom è montato nella directory /cdrom. La prima volta che ho spiegato questa procedura mi hanno chiesto "ma devo montare /cdrom?"...se lo chiedete non vi rispondo...
Dal cd-rom copieremo la directory /boot, ovviamente facendo attenzione che eventuali link restino "isolati" e non vadano a scalare le directory fino alla root di sistema. Questo è fondamentale, perchè attualmente il cd-rom è una sotto-directory di /mnt. Per fare questo useremo l'opzione "-a":

# cp -a -r /cdrom/boot /mnt/hda4/remaster/master/boot

Allo stesso modo copieremo la directory /modules

# cp -a -r /cdrom/KNOPPIX/modules /mnt/hda4/remaster/master/KNOPPIX/.

Per concludere, copieremo l'index.html del cd nella directory /master (ovviamente senza alcun problema)

# cp /cdrom/index.html /mnt/hda4/remaster/master

Ora entriamo dentro /cdrom, raccogliamo tutti i file mantenendone i rapporti tra loro e li copiamo tutti nella nostra directoty /master:

root@Knoppix:/ramdisk/home/knoppix# cd /cdrom
root@Knoppix:/cdrom# find . -size -10000k -type f -exec cp -p --parents '{}' /mnt/hda4/remaster/master/ \;


a questo punto siamo arrivati al dunque. Prima di proseguire facciamo un breve riassunto per chiarire le idee:

- abbiamo montato tutto il sistema dentro /source, isolandolo dal resto in maniera che risulti un blocco staccato e non una sotto-directory di /mnt
- abbiamo copiato allo stesso modo dal cd-rom la parte che non potevamo trovare nel nostro sistema live ma che risulta fondamentale per realizzare il cd finale.

Una volta isolato il sistema su cui lavorare, dovremo essere noi a "staccarci" dal sistema host.

LAVORARE SUL NUOVO SISTEMA

I più esperti avranno ormai capito che andremo in "chroot" dentro il sistema riprodotto.
La potenza di chroot ha un fascino tutto particolare che può venire compreso soltanto da chi conosce bene Linux, richiede quindi qualche spiegazione per chi è più inesperto.
Questo comando ci permette di modificare la root di sistema; ponendo ad esempio chroot sulla directory /pippo è come se questa diventasse "/" e le sue sotto-directory fossero parte di un sistema isolato che fa capo a /pippo.
Prima di iniziare dovremo preparare il nuovo sistema che andremo a porre come root in maniera che riproduca il nostro sistema reale. Questa operazione verrà fatta tramite un comando "mount" con l'opzione "--bind":

# mount --bind /dev /mnt/hda4/remaster/source/KNOPPIX/dev

Cioè? Abbiamo montato tutte le partizioni di sistema (/dev) nella directory /dev del sistema copiato.
Non abbiamo finito:

# mount --bind /proc /mnt/hda4/remaster/source/KNOPPIX/proc

Abbiamo montato anche tutto l'insieme dei processi dentro il sistema copiato.
A questo punto possiamo dare "chroot":

root@Knoppix:/cdrom# chroot /mnt/hda4/remaster/source/KNOPPIX
root@Knoppix:/#


Notate come adesso sia cambiata la directory della console, che si porta da /cdrom alla root di sistema.
Adesso in quel terminale stiamo lavorando in un altro sistema, che ha come radice la directory /source/KNOPPIX
Qualunque comando daremo sarà riferito a quel sistema e non a quello che vediamo dalla nostra knoppix-live

Possiamo aprire Synaptic e installare o disinstallare pacchetti, modificare il tema di KDE ecc. qualunque operazione faremo andrà a modificare il nostro sistema copiato e non la live da cui stiamo lavorando.

Fare una lista delle cose da fare mi sembra a questo punto piuttosto assurdo, perchè sarebbero mie scelte personali che avrebbero poco di istruttivo.
Mi sembra importante invece fornire una spiegazione generale di vari punti da prendere in considerazione:

1. Knoppix è una Debian abbastanza pura, con un'abnorme quantità di software; difficilmente la sua rimasterizzazione comporta l'aggiunta di programmi più di quanto comporti eliminazioni degli stessi.
E' chiaro che è necessaria una buona conoscenza di un sistema debian-based per riuscire a plasmarlo in base a quello che si richiede. Lavorare sulla gestione dei pacchetti ci pone le stesse domande che si pongono gli sviluppatori di qualunque distro:
- Che tipo di distro voglio creare? Quindi su che pacchetti dovrò puntare (multimedia, amministrazione, ufficio ecc.)
- Quanto mi costa essere "user friedly"? Tenere tutti i driver, tutte le lingue, WINE ecc.
- Che serie di pacchetti mi conviene tenere? Scegliere un pacchetto piuttosto che un altro che altri pacchetti mi permette di eliminare alleggerendo la mia distro finale

2. Nella scelta dei pacchetti è bene tenere conto di quelli che poi serviranno durante il processo di masterizzazione, ad esempio "deborphan" per la pulizia finale, oppure "mkisofs" che sarà utilizzato per rigenerare il .iso finale (in realtà può venire utilizzato il più attuale "genisoimage", ma ho voluto rimanere aderente alle guide ufficiali).

3. Come per Debian, la lista dei repository la trovate in /etc/apt/sources.list; ovviamente i repository inseriti saranno quelli di Debian e vanno trattati come fosse Debian. Evitate quindi Ubuntu in ogni modo e state attenti ai rami delle distribuzioni, in maniera che permettano un aggiornamento regolare di Knoppix giocando sulla distanza tra la versione che andrete a rimasterizzare e i repository che inserirete.
Un'esempio reale può essere Damn Small Linux, che usando un kernel 2.4 rimasterizza Knoppix 3 con i repository della vecchia Woody. Nel mio caso punterei a Lenny o SID.
Sconsigliato anche il dist-upgrade perchè potrebbe andare a caricare troppo il sistema di nuove applicazioni e costringere nuovamente alla loro eliminazione.

4. Dove andare a modificare la nostra nuova distro? Ovunque...sfondi, temi, DE preferito, messaggi di avvio, gli script di /etc/init.d, i programmi, l'aggiunta di pacchetti creati da voi e non presenti in Debian, l'aggiunta di repository separati (Compiz, Skype...).
Una volta fatto questo procedimento la vostra distro beta sarà salvata in hda4, basterà riavviare il pc con Knoppix, montare hda4, montare con "--bind" /dev e /proc e rientrare in chroot per continuare il lavoro.

5. Fondamentale (quando la vostra distro sarà completa) sarà anche la pulizia finale dei pacchetti orfani, i file temporanei e tutto quel materiale su cui avremo lavorato e che non vogliamo sia presente nel .iso finale

LO SCOPO RAGGIUNTO: GENERAZIONE DEL NUOVO .ISO

La parte finale è ovviamente la resa dei conti. Come ho già spiegato in questa guida utilizzero "mkisofs" perchè è il comando di creazione .iso inserito in Knoppix ed è quello che troverete in tutte le guide di remastering di Knoppix della rete, sebbene sia deprecato da Debian.
Va da sè, per il solito principio di chroot, che avete la possibilità di sostituirlo con "genisoimage" nella vostra nuova distro, utilizzandolo comunque per la masterizzazione da Knoppix-live.

Quando il vostro lavoro sarà completato, passeremo al rimontaggio del cd.
In questo caso non occorrerà più lavorare in chroot ma ci loggheremo semplicemente come root; le operazioni che effettueremo adesso riguardano la gestione della directory /remaster in hda4.

Per prima cosa creiamo il file compresso di tutto il nostro materiale:

# mkisofs -R -U -V "Nome del volume" -publisher "Autore del volume" \ -hide-rr-moved -cache-inodes -no-bak -pad /mnt/hda4/remaster/source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs -B \ 65536 -f /mnt/hda4/isotemp - /mnt/hda4/remaster/master/KNOPPIX/KNOPPIX

Sì, è tutta una riga...lista delle opzioni di mkisofs con il comando "mkisofs --help" (buona fortuna...)

Fatto questo, dovremo autenticare i file del nostro nuovo disco, calcolando l'md5 dei file:

# cd /mnt/hda4/remaster/master
# find -type f -not -name md5sums -not -name boot.cat -not -name isolinux.bin \ -exec md5sum '{}' \; > KNOPPIX/md5sums


Adesso finalmente possiamo creare il nostro .iso finale. Sempre da dentro la directory "/mnt/hda4/remaster/master" diamo il seguente comando.

# mkisofs -pad -l -r -J -v -V "Nome_del_cd" -no-emul-boot -boot-load-size 4 \ -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat \ -hide-rr-moved -o /mnt/hda4/remaster/nome_cd.iso /mnt/hda4/remaster/master

Dentro /mnt/hda4/remaster troverete il file nome_cd.iso

Complimenti! Avete creato la vostra distribuzione Linux!
Mettetela nel vostro sito, fatela scaricare e vantatevi con gli amici...
avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo http://myville.altervista.org

Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da Slack il Mar Set 15, 2009 4:50 pm

Ottima guida.
In poco tempo e con poca fatica si riesce a creare una distro personalizzata.
Appena ho tempo proverò anch'io a farmi una distro personalizzata perché non ho mai provato questo metodo.
avatar
Slack

Messaggi : 248
Data d'iscrizione : 14.09.09
Località : /home/slack

Visualizza il profilo http://linux.forumattivo.it

Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da Ospite il Mar Set 15, 2009 7:57 pm

si potrebbe cercare di crearne una insieme

Ospite
Ospite


Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da floatman il Mar Set 15, 2009 9:27 pm

Beh, il sistema è molto semplice per quanto riguarda la creazione vera e propria del cd, è chiaro che il problema è avere un progetto preciso di cosa inserire e della regolazione dell'albero delle dipendenze.
Ovviamente ci sono sistemi decisamenti più 'fighetti' che sfruttano direttamente la pacchettizzazione dei software, come fa la stessa Knoppix tra l'altro.
avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo http://myville.altervista.org

Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da Slack il Mar Set 15, 2009 9:34 pm

La creazione del cd potrebbe essere fatta anche su virtualbox ?
avatar
Slack

Messaggi : 248
Data d'iscrizione : 14.09.09
Località : /home/slack

Visualizza il profilo http://linux.forumattivo.it

Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da floatman il Mer Set 16, 2009 12:13 am

Urca...domanda intelligente Very Happy
Se devo essere sincero non sono un esperto di virtualizzazione; in ogni caso considera che l'uso di una partizione è soltanto una comodità di lavoro e puoi usare una directory qualunque, quindi potresti avere un sistema virtualizzato come host e lavorare su knoppix da quello.
Ci sono comunque alcuni tool (su Debian c'è live-help ad esempio) che lavorano direttamente su una distro istallata, scaricando l'installer e tutti i pacchetti al momento presenti per creare un cd live/installbile.
Una virtualizzazione la vedrei molto più utile in quei casi, in cui conviene partire da un sistema appena installato per togliere e aggiungere pacchetti e quindi creare il tutto.
avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo http://myville.altervista.org

Torna in alto Andare in basso

Re: Knoppix Remastering

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto


 :: GNU/Linux :: Altro

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum