![[Photo of the Author]](../../common/images/TjaboKloppenburg.png) 
 
    original in de: Tjabo Kloppenburg
de to en: Tjabo Kloppenburg
en to it Alessandro Pellizzari
Sono stato infettato nel 1996. Slackware 3.1. Mi piace scriptare in linguaggi come Python, Perl, GAWK e così via. E sono interessato nei dispositivi di boot.
Dopo aver letto qualche articolo su LinuxFocus e su altre pagine web
    ho finalmente trovato un metodo sicuro per creare CD-Rom bootabili,
    dischi di boot puliti (senza virus), distribuzioni linux singolo-disco
    o sistemi knoppix adattati.
    Masterizzati in un CD da 8 cm con 183 Mb. Entra in tutte le tasche
    e puó essere utile in molte situazioni.
![[Illustration]](../../common/images/illustration298.png) 
 
    Assumeró che abbiate una conoscenza base di Linux e che sappiate
    come masterizzare un CD. Dovreste avere un masterizzatore che possa
    masterizzare anche i CD-RW. É utile perchè dagli errori si impara...
	
	Dovreste avere un disco CD-RW, qualche CD-R (o CD-RW) da 8cm e un sistema
	Linux funzionante con qualche centinaio di Mb liberi.
	Piú tardi, per l'integrazione con knoppix, avremo bisogno di un collegamento
	veloce a Internet, perchè installeremo alcuni pacchetti dalla rete.
	Se sapete come configurare samba o nfs per avere un mirror debian locale
	non avrete bisogno del collegamento veloce. Infine dovreste avere qualche
	conoscenza di debian (installazione e disinstallazione dei pacchetti), o
	un amico/canale irc a cui chiedere. E dovreste sapere anche come usare
	il device loopback.
    
Fare il boot da CD é molto simile al boot da disco o hard-disk.
    Qualcosa viene letto dal disco in memoria dal BIOS e quindi viene avviato.
    All'inizio dell'epoca dei CD-Rom non erano pensati per farci il boot, quindi
    i progettisti di hardware hanno dovuto creare una piccola magia:
    dopo aver bruciato qualche cambiamento al BIOS proprietario per ogni
    fornitore hanno finalmente definito lo standard "el torito".
    
    
    Questo formato definisce una struttura nel CD-Rom che contiene
    un'immagine di disco bootabile e un po' di codice nel BIOS che carica
    la struttura in memoria - emulando un floppy in memoria. Dopo aver caricato
    il disco in memoria fa il boot come qualsiasi altro disco.
    
    
    Con questa emulazione di floppy possiamo costruire un CD-Rom bootabile con
    una singola immagine di floppy da 1.44 Mb, o una da 2.88 Mb. Non avete mai
    visto un floppy del genere, ma il BIOS puó usarlo. Facendo il boot da CD-Rom
    non ci serve un disco da 2.88 Mb - solo un'immagine di disco creata
    con il loop device e qualche tool.
    
    
	Un singolo disco non é ancora un disco multi-boot. Ci serve un tool per
	caricare e far partire altre immagini di boot da un filesystem.
	Boot-Scriptor é nostro amico. Con boot-scriptor faremo il boot da CD-Rom
	con un loader (senza emulazione di disco. É possibile anche questo), quindi
	sceglieremo l'immagine di boot da un elenco. Boot-scriptor fará qualche
	magia per caricare l'immagine in un'emulazione di floppy, facendo il boot
	come se il floppy fosse nel lettore.
    
    
	Questi dischi di boot possono essere immagini di dischi come i dischi di
	boot di Windows in diverse versioni, un password-changer per NT,
	mini-distribuzioni Linux o un disco di boot di Knoppix per caricare
	un sistema Knoppix di medie dimensioni.
ci serve una directory con abbastanza spazio libero per costruire la
    struttura di directory del nostro CD-Rom. Supponiamo di avere abbastanza
    spazio in "/data". La directory di base del nostro progetto
    potrebbe essere "/data/mboot". Qui dentro creiamo due directory,
    "/toolcd" (contenuto del CD-Rom) e "/archive" 
	(versioni originali degli strumenti che uso, come i virus scanner).
    
Prelevate l'archivio e i file INI da Boot-Scriptor (bootscriptor.org).
Non c'é documentazione nell'archivio, la troverete solo sul sito web.
	
    
	Boot-scriptor ha bisogno di una sua directory "bscript/"
	sul CD-Rom con il loader, un file grafico opzionale (vedi documentazione)
	e il file chiamato "bscript.ini".
	Questo file definisce il menu di boot in un linguaggio simile al
	basic, con comandi come "print", "onkey"
	(esegue qualcosa alla pressione di un tasto) e "memdisk"
	(immagine del disco di boot).
    
	Date un'occhiata a questo piccolo esempio, e scrivete il vostro
	file ini:
print "\ac\c0e--=> my multi boot cdrom with linux <=--" print "F1 Bootdisk1" print " w warm reboot" MenuLoop: onkey f1 goto bootDisk1 onkey w reboot warm goto MenuLoop bootDisk1: memdisk \images\boot1.img
C'é una manciata di altri comandi. Fatevi una copia in locale della documentazione di boot-scriptor e mettetela da qualche parte nella struttura di directory del CD-Rom. Ne avrete bisogno per muovere i primi passi nella comprensione dei comandi di base.
Per un primo CD-Rom di test abbiamo bisogno di un singolo disco di boot
	come può essere quello di windoze. O di un disco di boot di Linux creato con
	lilo. O provate una di quelle mini-distribuzioni Linux su singolo disco
	come HAL o TomsRtBt (2.88 Mb). Chiedete al vostro motore di ricerca preferito.
    
	Useremo "dd" per creare l'immagine del disco dal disco stesso:
	
    
( inserite il disco ) # cd /data/mboot/toolcd # mkdir images (directory for the disk images) # dd if=/dev/fd0 of=images/boot1.img
Il programma "mkisofs" deve essere richiamato con l'opzione "-b" per
    fargli installare il boot loader. Il path dell'argomento "-b" é relativo
    alla directory base del CD-Rom ("toolcd/"):
    
# cd /data/mboot
# mkisofs -r -o iso.01 -b bscript/loader.bin \
          -no-emul-boot -boot-load-size 4 toolcd
    bscript.ini" per trasformare il vostro nuovo CD-Rom in
	qualcosa che cerca la strada del cestino. Quindi meglio masterizzare un CD-RW :-).cdrecord" ha due possibilità:
    "blank=fast" e "blank=all". 
	Il modo fast è piú veloce :)dev
	del masterizzatore. Scrivete "cdrecord -scanbus"
	per vedere tutti i dispositivi disponibili.. Se non ci sono dispositivi
	probabilmente dovete caricare un modulo come "ide-scsi"
	con un comando come "modprobe ide-scsi".# cdrecord -scanbus Cdrecord 1.10 (i686-pc-linux-gnu) (C) 1995-2001 J. Schilling Linux sg driver version: 3.1.22 Using libscg version 'schily-0.5' scsibus0: 0,0,0 0) 'LG ' 'CD-RW CED-8083B ' '1.05' Removable CD-ROM ... # cdrecord -v dev=0,0,0 speed=32 iso.01
La chiamata a  "mkisofs" ha parecchi caratteri, il che la rende
    facile da sbagliare. "cdrecord" ha bisogno di parametri
    corretti, quindi è una buona idea usare uno script o un Makefile per essere
    sicuri di passare i parametri corretti. Useremo un Makefile per il comando
	"make". Installatelo, se non l'avete nel sistema. "make" è uno
	dei comandi che i programmatori dovrebbero conoscere.
    
    Metteremo il Makefile nella struttura di directory del CD-Rom, creando un
    link nella directory "mboot/"
    È una buona idea mettere tutto quello che ci serve per ri-masterizzare dentro
    il CD-Rom. Rende possibile la creazione di una versione migliore del CD-Rom
    anche se non avete piú i file sull'hard disk, quindi è anche un buon backup... :-).
    
	Il Makefile può essere molto semplice. Ecco un esempio:
    
BASE = toolcd
DEV = 0,0,0
SPEED = 4
VERSION = 01
ISO = iso.$(BASE).$(VERSION)
OPTIONS= -b bscript/loader.bin -no-emul-boot -boot-load-size 4
blank:
    cdrecord -v dev=$(DEV) blank=fast
blankall:
    cdrecord -v dev=$(DEV) blank=all
iso:
    echo "deleting ~ files:"
    @find $(BASE) -name "*~" -exec rm {} \;
    echo "creating iso file:"
    @mkisofs -r -o $(ISO) $(OPTIONS) $(BASE)
    @echo
    ls -al $(ISO)
burn:
    cdrecord -v dev=$(DEV) speed=$(SPEED) $(ISO)
    /data/mboot/toolcd/scripts" va benissimo. Faremo
    un soft-link verso "/data/mboot/Makefile": 
# cd /data/mboot # ln -s toolcd/scripts/Makefile Makefile
mboot/":# make blank # make iso # make burn
Troverete altri dischi di boot nei vostri porta-dischi e sul web.
	Ma ricordatevi che non sapete cosa ci sia nei dischi scaricati da Internet.
	Io credo sia sempre una buona idea chiedere a un motore di ricerca come google
	se altri hanno avuto problemi con i dischi scaricati da un sito. E fate una
	scansione del disco per cercare virus.
    
	Ho preso alcuni dischi di boot da www.bootdisk.com. 
	I dischi sono in versione inglese, la maggior parte con supporto CD.
	Potete accedere a un virus scanner sul CD o lanciare un update del BIOS
	da un altro CD. Mi piace molto l'immagine di disco di boot "drdflash"
	che fornisce un disco minimo con abbastanza spazio per un flasher di BIOS.
	Usate "rawrite" (dos) o "dd" (linux) per scrivere
	l'immagine su disco e avrete un flasher in pochi minuti. Sono stato a un
	LAN party e ho visto quanto un gruppo di utenti linux abbia bisogno di
	trovare un disco bootabile per il flash del BIOS... ;-)
	
	Nota: Potete trovare "rawrite.exe" sulla gran parte dei CD
	delle distribuzioni Linux.
Col vostro piccolo e pratico CD da 8 cm avete qualcosa con cui fare
	un boot pulito dappertutto. Perché non mettere un virus scanner sul CD?
	Ho preso "F-Prot" da F-Secure. 
	Hanno una versione Linux e una Dos liberamente scaricabili.
    
	L'unico problema è come aggiornare le definizioni dei virus sul CD.
	Ho sentito parlare di CD-RW da 8 cm, ma non ne ho mai visto uno in
	vendita. Pessima cosa. Un'altra soluzione sarebbe di fare il boot di un
	sistema Linux minimo  da un CD da 8 cm e di scaricare le nuove definizioni
	da Internet.
    
	Due dei problemi che ho riscontrato con f-prot sono stati:
Se ancora non conoscete Knoppix dategli un'occhiata!
    È una versione completa, bootabile, di Linux con 2-3 Gb di software
    su un singolo CD da 650 Mb, live. Con rilevazione automatica
    dell'hardware e altre cose utilissime. Ma non ci sta sul nostro
    mini-CD.
    Non disperatevi, perché è possibile rimasterizzare il CD-Rom
    di Knoppix (o un progetto simile). Vi servono solo alcune
    conoscenze di base di Debian, e un po' di spazio sul vostro HD.
    
	Knoppix usa un po' di magia per far stare 2-3 Gb di software su un CD
	da 650 Mb: il filesystem è stato compresso in un file
	"/KNOPPIX/KNOPPIX" e viene montato dal processo init
	lanciato all'avvio del floppy di boot (*) usando un particolare
	modulo driver di nome "cloop". (* In effetti è il
	contenuto di un'immagine di disco di boot usata chiamando "mkisofs"
	con l'opzione "-b".
    
	L'immagine del disco di boot usato per creare il CD di Knoppix si trova
	nella directory "/KNOPPIX" del CD di Knoppix:
	"boot.img". C'è ancora l'idea di avere tutti i geni
	pronti per il prossimo salto evoluzionistico "a bordo"...
    
	Suggerisco di montare il disco di boot di Knoppix con il device
	loop per cercare di capire come funziona il processo di boot.
	Cercate nel web il "bootdisk HOWTO" per avere maggiori informazioni.
	Uno dei file che trovate sull'immagine è un ".gz", compresso con
	gzip, con un'immagine di filesystem all'interno. È il ramdisk
	iniziale (NdT: Initial RamDisk, initrd) usato per le prime fasi del
	boot.
    
	Quando caricate Knoppix succede questo: Il file "boot.img"
	scritto nell'immagine ISO carica il kernel dal floppy emulato,
	caricando il ramdisk iniziale. Il processo linuxrc carica il modulo
	"cloop.o" e cerca un file "/KNOPPIX/KNOPPIX" su tutti i dispositivi
	collegati con un filesystem conosciuto. Sí, sarebbe possibile caricare
	l'immagine compressa di KNOPPIX anche da HD. Ma non ho mai provato.
	Dopo aver trovato un dispositivo con il filesystem compresso, viene
	montato e iniziano il rilevamento dell'hardware e tutto il resto.
    
	Il floppy "boot.img" non si interessa del dispositivo da cui viene caricato
	(floppy reale o emulato), quindi è abbastanza semplice integrarlo
	nel nostro CD-Rom multi-boot: copiate "boot.img" nella directory
	"images/" e aggiungete una voce al menu in
    "bscript.ini".
    
Un CD-Rom originale Knoppix è troppo grosso per il nostro piccolo
	CD da 8 cm. Ricordate che abbiamo 183 Mb a disposizione. Dobbiamo cancellare
	un sacco di roba, ma è un lavoraccio. Perché non usufruire del lavoro di
	qualcun'altro? Il sito Knoppix
    Customizations elenca un paio di versioni modificate di Knoppix, alcune
    ridotte fino a una dimensione, compressa, di 50-60 Mb.
    Ho deciso di usare "Model_k". È piccola ma non c'è GUI e manca il supporto
    per tastiere non US. Forse "Damn Small Linux" è meglio...
    
	Ho preso le istruzioni che trovate qui sotto da un documento di
	Sunil Thomas
    Thonikuzhiyil, che descrive il processo di rimasterizzazione molto
    dettagliatamente. Leggetelo se volete sapere come cambiare il kernel
    o l'initrd del disco di boot. Ma normalmente non ci serve sapere tutto
    questo se usiamo "Model_k" o un sistema simile per il nostro mini-CD...
    
	L'idea di base per cui rimasterizzare Knoppix risiede nel fatto che
	è un sistema Debian completo - quando c'è un filesystem scrivibile
	[un CD è a sola lettura :)]. La parte principale della rimasterizzazione
	è l'installazione e disinstallazione dei pacchetti. Niente di troppo
	complicato.
    
	Per modificare una Knoppix dobbiamo proma farci il boot. Dopodiché
	si devono seguire questi passi:
    
# mkdir /1 # mount -t ext2 /dev/hda<n> /1 # cp -Rp /KNOPPIX /1
# chroot /1/KNOPPIX # mount -t proc /proc proc
# (usare ifconfig se non c'è un server DHCP nella rete.) # (cambiate la configurazione dei nameserver quando non c'è un DHCP. Cancellate il link "/etc/resolv.conf" e create un vostro file.)
# apt-get install joe (Model_k 1.2 non ha un editor :) ) # ...
# (Se avete modificato /etc/resolv.conf, cancellatelo e rimettete il link.) # umount /proc # exit
/KNOPPIX/KNOPPIX" con "cloop".
	Conosciamo già "loop" - l'abbiamo usato per montare
	un file con un filesystem all'interno. "cloop" è un
    "loop" con la (de)compressione, quindi dobbiamo creare
    un filesystem con "mkisofs" e comprimerlo con uno speciale
    programma da Knoppix:
    "create_compressed_fs": 
# mkisofs -R /1/KNOPPIX | create_compressed_fs - 65536  > /1/KNOPPIX.2
    
	Come vedete mandiamo in pipe l'output di mkisofs direttamente nel
	tool di compressione. Fate una copia del file KNOPPIX
	originale e copiate il risultato di "KNOPPIX.2" in
	"KNOPPIX/KNOPPIX" nella vostra struttura di directory
	per il CD-Rom. A questo punto preparate e masterizzate un altro
	CD e provate la vostra "nuova" variante di Knoppix.
    
     
    
Abbiamo visto che non è poi cosí difficile creare un pratico
	CD multi-boot, con utili tool che ci possono essere d'aiuto in
	molte situazioni. Non abbiamo inventato tutte le ruote, ma abbiamo
	usato ruote inventate da altri con un po' di magia aggiunta.
    
	Abbiamo messo tutto quello che ci serviva in quel CD, quindi abbiamo
	un backup sottomano - ed è possibile rimasterizzare il CD solo con i
	tool contenuti nello stesso.
    
	Spero vi sia piaciuto il mio piccolo articolo.
    
    A presto!