Guida alla rimasterizzazione di Netkit4TIC

Contents:

1. Preliminari

Per masterizzare Knoppix è consigliabile una partizione di swap di almeno 512MB e una RAM altrettanto grande. Per lo spazio su disco sono necessari dai 2 ai 3 Gb. Se il vostro swap e' insufficiente potete creare un file di swap e attivarlo in aggiunta allo spazio gia' definito. Se ad esempio vogliamo creare un file di swap aggiuntivo di 500MB dobbiamo per prima cosa costruirlo, poi inizializzarlo e alla file attivarlo:

Code listing 1.1

# dd if=/dev/zero of=/swapfile bs=1024 count=500k
# mkswap /swapfile
# swapon /swapfile

Per disattivare e rimuoverla:

Code listing 1.2

# swapoff /swapfile
# rm /swapfile

Per la personalizzazione di Knoppix abbiamo usato una macchina con Debian Woody. Per fornire il supporto al cloop è stato installato:

  • cloop-utils

che fornisce le utility create_compressed_fs e extract_compressed_fs per creare ed estrarre filesystem compressi direttamente dai file.

Nel seguito si farà riferimento alla seguente struttura di directory:

Code listing 1.3

/kno
  |__uncompressed
  |__release
  |__source
  |__cdrom
  |__tmp

2. Estrazione dai sorgenti

Tutto il filesystem di Knoppix si trova nel file compresso presente nel CD in /KNOPPIX/KNOPPIX. Occupa circa 600 MB e una volta decompresso richiede 1.7GB circa. La procedura descritta di seguito mostra come:

  • montare il live CD o l'iso
  • estrarre il file KNOPPIX dal CD decomprimendolo in una directory temporanea
  • montare l'immagine estratta e copiarla nella directory source per la personalizzazione

Per chi ha problemi di spazio si può risparmiare qualcosa copiando il filesystem direttamente dopo aver bootato il LiveCD come descritto in HowTo .

Montiamo il CD:

Code listing 2.1

# mount /cdrom
se nel cd abbiamo un iso:

Code listing 2.2

# mount -o loop /cdrom/knx.iso /kno/cdrom
se invece nel CD è presente il live CD di Knoppix sostituiamo nelle istruzioni di seguito /kno/cdrom con /cdrom. Estraiamo il filesystem compresso dal file KNOPPIX in una directory temporanea (con il mio PC PIII 800 con 128MB RAM: 20 minuti):

Code listing 2.3

# extract_compressed_fs /kno/cdrom/KNOPPIX/KNOPPIX > \
                        /kno/uncompressed/KNOPPIX_UNCOMPRESSED
Montiamo il filesystem in una directory temporanea:

Code listing 2.4

# mount -o loop /kno/uncompressed/KNOPPIX_UNCOMPRESSD /kno/tmp
Copiamo tutto il filesystem decompresso in /kno/source per la personalizzazione:

Code listing 2.5

# cp -Rupv /kno/tmp/* /kno/source/

3. Manipolazione

Con chroot ci spostiamo virtualmente nella root del filesystem di Knoppix. Knoppix è derivato da Debian unstable (sid?) e le operazioni sui pacchetti e la loro configurazione può essere effettuata con apt e/o dpkg. Rimandiamo alla lettura di apt-howto per la manualistica. Per modificare le impostazioni degli utenti modificare i file in /etc/skel, il file usato come background è background.gif. Ci sono delle buone indicazioni per personalizzare le impostazioni degli utenti o per usare X nell'ambiente chrootato in stirnimann e in sourceforge. Facciamo chroot in source:

Code listing 3.1

# chroot /kno/source
# mount -t proc /proc proc
In ogni caso usando la shell ottenuta dal comando chroot sono utili i seguenti comandi, utilizzando una connessione internet e/o il set della Debian stable e testing. Per uscire:

Code listing 3.2

# umount /proc
# exit

4. Costruzione immagine iso

Nella directory /kno/release copiamo tutto il contenuto di /kno/cdrom (o /cdrom) ad eccezione del file /kno/cdrom/KNOPPIX/KNOPPIX (circa 600 MB) che andremo a sostituire con il nuovo KNOPPIX ottenuto comprimendo /kno/source. Anche il file boot.cat va eliminato in quanto viene creato automaticamente. Nella directory release si trovano i file per il caricamento automatico della pagina index.html qualora il CD non venga usato per il boot. Nel file KNOPPIX/boot.img si possono invece configurare opzioni relative al boot e trovi un approfondimento su wiki:BootOptions.

Code listing 4.1

# cp -R /cdrom /kno/release
(questo pero' copia anche il file da 600MB, sicuramente si può fare meglio)
# rm /kno/release/KNOPPIX/KNOPPIX
(se e' il caso)
Crea il filesystem iso9660 e lo comprime con un utilità che usa cloop, il tutto costituisce il file KNOPPIX:

Code listing 4.2

$ mkisofs -R -l -V "KNOPPIX iso9660 filesystem" -hide-rr-moved \
          -v /kno/source/ | \
          create_compressed_fs - 65536 > /kno/release/KNOPPIX/KNOPPIX
Crea l'immagine iso da usare per masterizzare il live CD:

Code listing 4.3

# mkisofs -l -r -J -V "KNOPPIX" -hide-rr-moved -v \
          -b KNOPPIX/boot.img -c KNOPPIX/boot.cat \
          -o /kno/NUOVO_KNOPPIX.iso
Non resta che bruciare un cd con l'iso NUOVO_KNOPPIX.iso ottenuta:

Code listing 4.4

# cdrecord dev=0,0,0 speed=8 /kno/NUOVO_KNOPPIX.iso