http://www.slacky.it/tutorial/realizzare-un-live-cd/realizzare-un-live-cd.html Next Previous Contents 1. Strumenti utilizzati. Questo lavoro è stato testato su slackware 10.0 con il suo kernel di default (2.4.26). I pacchetti utilizzati sono: 1. linux-live-4.2.4.tar.gz - ossia gli script da utilizzare. 2. ovlfs-2.0.1.tgz - i driver che permettono la pseudoscrittura di un filesystem montato in modalità read-only. 3. gif2lss-0.4.tar.gz - leggerissima utility (opzionale) utile per cambiare l'immagine di boot del live cd. Potrete trovare tutto su www.slacky.it Next Previous Contents Next Previous Contents 2. Requisiti di Linux-Live-Script. Questo paragrafo è la traduzione in italiano del file Readme (o qualche altro file simile) del pacchetto Linux-live-4.2.4.tar.gz Affinché la creazione dell'immagine ISO vada a buon fine è necessario soddisfare i seguenti requisiti: * Tutte le seguenti opzioni devono essere compilate direttamente nel kernel: devfs (CONFIG_DEVFS_FS=y) ext2 (CONGIG_EXT2_FS=y) tmpfs (CONFIG_TMPFS=y) loop device (CONFIG_BLK_DEV_LOOP=y) ramdisk (CONFIG_BLK_DEV_RAM=y) initrd (CONFIG_BLK_DEV_INITRD=y) iso filesystem (CONFIG_ISO9660_FS=y) with transparent decompression (CONFIG_ZISOFS=y) * Il modulo ovlfs deve essere compilato per il kernel attualmente in uso. * mkzftree è usato per la compressione img. Bisogna assicurarsi di averlo e occorre anche assicurarsi che mkisofs lavori bene con l'opzione z (decompressione trasparente). * devfsd deve essere installato e configurato altrimenti il live cd non potrà usare devfs e all'avvio da cd avremo un errore: CAN'T OPEN INITIAL CONSOLE. * Non installare il pacchetto udev altrimenti devfs non lavorerà correttamente. Nel caso il pacchetto fosse già installato è necessario rimuoverlo. Next Previous Contents 3. Modellazione del sistema per soddisfare i requisiti. Per il 1° requisito, occorre leggere il file config presente in /boot e verificare che ci siano tutte le opzioni. Piu' avanti spiegherò come riconfigurare e ricompilare il kernel. Per ora non preoccupatevi di questo. Per il 2° punto, installiamo il pacchetto ovlfs con "installpkg ovlfs-2.0.1.tgz". Per il 3° punto occorre installare il pacchetto "cdrtools" presente nei 2 cd di slack. Per il 4°/5° punto occorre disinstallare il pacchetto udev e installare il pacchetto "devfsd-1.3.25-i486-4.tgz" che è contenuto nel pacchetto "Linux-live-4.2.4.tar.gz". Occorre tenere presente il fatto che Slackware 10.0 e successive non contengono devfsd come default, a differenza di Slackware 9.1 e precedenti che lo contenevano come parte standard. Ora che abbiamo effettuato l'installazione di devfsd, dobbiamo apportare alcune modifiche al sistema affinché devfsd si comporti in modo corretto: (queste cose le trovate anche nella documentazione di devfs in inglese o in koreano, le ho semplicemente tradotte in italiano, aggiungendo qualcosina). * Devfsd - Modifichiamo lo script principale di boot del sistema affinché il demone devfsd inizi ad operare PRIMA di ogni controllo sui file system. Lo script di avvio principale (che viene eseguito dopo rc.S) è localizzato in /etc/rc.d/rc.sysvinit; editiamo questo file e aggiungiamo la seguente linea all'inizio del file: /sbin/devfsd /dev * Librerie di sistema - Potrebbe esserci qualche problema perché alcuni software potrebbero fare assunzioni sui nomi dei device. In particolare, alcuni software non gestiscono dispositivi che sono link simbolici. Per evitare problemi è necessario verificare di avere installato nel sistema "glibc2.1.3" o successive versioni. * /etc/securetty - PAM (Pluggable Authentication Modules) è un meccanismo flessibile per fornire l'autenticazione user e per accedere ai servizi. PAM ha problemi con i link simbolici, e per risolverli "appendiamo" al file /etc/securetty le seguenti linee: vc/1 vc/2 vc/3 vc/4 vc/5 vc/6 vc/7 vc/8 * Disabilitare devpts - Siccome devfs gestirà anche /dev/pts, non c'è motivo di montare quest'ultimo. Quindi modifichiamo il file /etc/fstab e cancelliamo la linea riguardante devpts. Così facendo questo device non sarà più montato all'avvio. * Driver non supportati - Non tutti i driver hanno il supporto per devfs; se si utilizza qualcuno di questi driver, dovremo creare uno script o un tarfile da usare all'avvio per creare device node appropriati. * /dev/mouse - Siccome questo link non esisterà più dopo l'avvio di un sistema con devfs abilitato, questo link costituisce uno dei più comuni errori. Per risolvere questo problema inseriamo l'attuale dispositivo per il mouse (nel nostro caso /dev/psaux) nel file /etc/X11/xorg.conf (si tratta solo di commentare la linea Option "Device" "/dev/mouse" e di decommentare la linea Option "Device" "/dev/psaux"). Similmente nel file /etc/rc.d/rc.gpm (lo script che fornisce la funzionalità di poter usare il mouse anche su una console), modifichiamo ogni occorrenza di "mouse" con "psaux". * Kernel - Ultimo passo: riconfigurare il kernel in modo che le seguenti tre linee siano cosi impostate: CONFIG_EXPERIMENTAL=y CONFIG_DEVFS_FS=y CONFIG_DEVFS_MOUNT=y Una volta ricompilato e installato, all'avvio devfs sarà montato in /dev. Next Previous Contents 4. Premessa alla configurazione del kernel. IL procedimento che riporto è quello più grezzo assoluto, so che non si dovrebbe fare cosi ma il live cd funziona in questo modo e non ne vuole sapere di funzionare con ricompilazioni più complete e corrette. L'unico avvertimento è questo ed è quello che mi è successo: avevo 3 partizioni sullo stesso disco fisso 1) windows 2) slackware 10.0 personale e intoccabile 3) slackware 10.0 da modellare per crearmi il live cd Dopo la ricompilazione, ovviamente è necessario dare un bel "lilo -v". All'avvio il sistema 3) parte con devfsd abilitato (quindi non preoccupatevi se nella directory /dev troverete altri file che prima dell'avvio non c'erano) Fin qui tutto ok. Il problema è che la partizione 2) non è piu avviabile con LILO, e se si prova ad avviarla darà un errore. Non è compromesso assolutamente il contenuto della partizione, potete stare traquilli. La mia ipotesi (non accertata ma a mio avviso probabile) è che dopo l'installazione di LILO venga inserito nel file "/etc/lilo.conf" un flag che vale per tutte le partizioni, che dice di montare "devfs", quindi quando tento di caricare la partizione 2), la quale non ha il supporto per devfs, a un certo punto si blocca e da errore. Magari è il procedimento grezzo di ricompilazione kernel, non so, ma a me interessava solo che funzionasse il cd, poi ho formattato tutto. State molto attenti e prendete le giuste precauzioni ! ALTRO PUNTO FONDAMENTALE: Al riavvio del nuovo kernel col devfs, dovrebbe apparire un messaggio di errore per l'audio. in effetti non ho trovato nessun modo di fare funzionare l'audio sul live cd, quindi sconsiglio questo procedimento per eventuali live cd a scopo multimediale. Next Previous Contents 5. Riconfigurazione e ricompilazione del kernel Ovviamente questi passi richiedono che sia installato il pacchetto della serie K, contenente il sorgente del kernel, e i pacchetti della serie D, altrimenti sarà impossibile compilare i sorgenti. Da console spostiamoci nella directory /usr/src/linux. Per riconfigurare il kernel abbiamo a disposizione 3 possibilità: make config, make menuconfig, make xconfig Personalmente ho usato il primo metodo, ho settato questi parametri: CONFIG_EXPERIMENTAL=y CONFIG_DEVFS_FS=y CONFIG_DEVFS_MOUNT=y e ho lasciato il tutto di default, come era già prima. Dopo ho ricompilato il kernel: make dep & make clean & make bzImage Ho copiato l'immagine compressa del kernel, reperibile in /usr/src/linux/arch/i386/boot/bzImage dopo la compilazione, nella directory /boot, ho cancellato il file vmlinuz e ho rinominato da bzImage a vmlinuz. Non ho fatto niente altro, è molto grezzo ma credetemi, il live cd funzionerà perfettamente (tranne l'audio descritto sopra). Ora: lilo -t & lilo -v Next Previous Contents 6. Modifiche dopo il riavvio. Riguardano solo il file /etc/fstab, se avete qualche periferica elencata in questo file dovete cambiare il dispositivo, per esempio, prima di devfs il mio lettore cd era in: /dev/cdrom ora si trova in /dev/cdroms/cdrom0 il mio zip si trovava in /dev/sda4 ora si trova in /dev/scsi/host1/bus0/target0/lun0/part4 Next Previous Contents 7. Creazione immagine livecd.iso Copiate il pacchetto linux-live-4.2.4.tar.gz in /tmp e procedete con la scompattazione del pacchetto: tar xzvf linux-live-4.2.4.tar.gz spostatevi in linux-live-4.2.4: cd linux-live-4.2.4 e impartite questo comando: ./runme.sh al termine della procedura avremo il file "livecd.iso" nella directory /tmp, ovvero l'immagine del nostro sistema installato su hard disk. Dopo di che masterizziamo su cd o dvd e godiamoci la nostra distribuzione. Next Previous Contents 8. Modificare l'immagine di boot del live cd. Quando partiva il mio live cd, usciva come immagine il quadrifoglio di slax con sotto la scritta SLAX (incorporata nell'immagine). Se vogliamo modificarla, ci serve l'utility gif2lss (la trovate anche con google). In poche parole, il misterioso quadrifoglio si trova nel file "splash.lss" che vedete appena aprite il vostro cd. Per modificarlo dovete creare una immagine GIF, 16 COLORI, RISOLUZIONE 640X480. E' fondamentale rispettare queste regole ! Supponiamo di chiamarla immagine.gif e di salvarla in /home, da console, dopo aver installato l'utility gif2lss, scriviamo: gif2lss /home/immagine.gif > /home/splash.lss troverete la vostra immagine convertita in lss in /home. Ora sostituitela con il file di origine e ricreate l'immagine del live cd.