Abbiamo conosciuto isolinux, però adesso vogliamo usarlo.
Qui di seguito vi mostro un esempio di cosa possiamo ottenere con pochi semplici passaggi. Quello che vedete nell’immagine qui sotto è uno screenshot del mio DVD personale che uso ogni volta che mi tocca sistemare/formattare/testare un PC… E’ stato creato con isolinux!

Procediamo.
Per prima cosa (vedi link originale) mettiamo in risalto il fatto che isolinux:
- utilizza solo i nomi di file che rispettano l’ISO 9660, vale a dire che non supporta Rock Ridge o nomi di file in Joliet. Tuttavia può essere usato su un disco che utilizza Rock Ridge e/o estensioni Joliet.
- supporta i nomi di file lunghi (livello 2) ISO 9660, quindi se la compatibilità con i nomi dei file brevi (utile per sistemi operativi come MS-DOS) non è un problema, è possibile utilizzare l’opzione “-l” o “-iso-level 2″ di mkisofs per generare nomi di file lunghi (fino a 31 caratteri).
Bene, detto questo, costruiamo il nostro primo CD/DVD bootable con menù personalizzato usando isolinux. Seguiremo il seguente procedimento:
- creazione cartella di lavoro
- estrazione di isolinux dal progetto madre syslinux
- manipolazione del file isolinux.cfg per personalizzare il menù
- masterizzazione del CD
1. Creazione cartella di lavoro
Creiamo una cartella con un nome qualsiasi che useremo come contenitore di tutti i nostri file. Ad esempio c:\bootCD
2. Estrazione isolinux
Andiamo su http://www.kernel.org/pub/linux/utils/boot/syslinux/ e scarichiamo syslinux. Attualmente è alla versione 3.84, ma qui usiamo la 3.82. Ottenuto il file .zip decomprimiamolo in una cartella a piacere, cerchiamo i seguenti files: chain.c32, isolinux.bin, memdisk, menu.c32, reboot.c32, vesamenu.c32 e copiamoli in c:\bootCD.
3. Manipolazione del file isolinux.cfg
Sempre nella cartella c:\bootCD creiamo un file di testo vuoto con nome isolinux.cfg. Esso rappresenterà il nostro menù. Per capire cosa scrivere in questo file ci basta andare nella cartella “doc” di syslinux e cercare il file menu.txt. Al suo interno troveremo una dettagliata descrizione di come creare un file isolinux.cfg.
A questo punto ci troviamo quindi ad avere la seguente situazione:

Per avere un riscontro pratico, di seguito vi posto il codice che ho scritto per creare il menù mostrato dall’immagine a inizio post.
Esempio di file isolinux.cfg:
prompt 0
# MENU RESOLUTION 800 600
MENU TITLE
MENU BACKGROUND sfondo.png
MENU AUTOBOOT Avvio da hard disk previsto fra # secondi...
MENU TABMSG http://www.alessandrostella.it
MENU COLOR hotsel 1;37;47 #ffffffff #99ffff3C std
MENU COLOR unsel 37;40 #99ffff3C #00000000 std
MENU COLOR sel 31;47 #DDEE0000 #99ffff3C std
MENU COLOR scrollbar 30;47 #40000000 #20ffffff
MENU COLOR border 30;47 #00000000 #00000000 none
MENU COLOR help 37;40 #c0ffffff #00000000 std
MENU WIDTH 64
MENU MARGIN 2
MENU HSHIFT 7
MENU VSHIFT 1
MENU ROWS 20
MENU TABMSGROW -1
MENU TIMEOUTROW -2
MENU CMDLINEROW 22
MENU ENDROW -1
MENU HIDDENROW -2
MENU HELPMSGROW -5
MENU HELPMSGENDROW -3
# MENU PASSWORDMARGIN 3
# MENU PASSWORDROW 11
#
# DIVISORE PER ANTIVIRUS
LABEL -
MENU LABEL ANTIVIRUS:
MENU DISABLE
#
# avvio di AVIRA
label Avvio di Avira AntiVir Rescue System
MENU LABEL ^Avira AntiVir Rescue System
MENU INDENT 1
kernel vesamenu.c32
APPEND /antivir/antivir.cfg
#
# avvio di BITDEFENDER
label Avvio di BitDefender
MENU LABEL ^BitDefender
MENU INDENT 1
kernel /KNOPPIX/linux
append ramdisk_size=100000 init=/etc/init lang=en apm=power-off vga=791 initrd=/KNOPPIX/BitDefender/minirt.gz nomce quiet BOOT_IMAGE=knoppix knoppix_name=KNOPPIXBD
#
# avvio di KASPERSKY
label Avvio di Kaspersky 'Kav Rescue CD'
MENU LABEL ^Kaspersky 'Kav Rescue CD'
MENU INDENT 1
kernel vesamenu.c32
append /kav_rescue/isolinux/kav10.cfg
MENU SEPARATOR
#
# DIVISORE PER SISTEMI OPERATIVI LIVE
LABEL -
MENU LABEL SISTEMI OPERATIVI LIVE:
MENU DISABLE
#
# avvio di LINUX NimbleX
label Avvio in RAM di NimbleX (User: root Pass: toor)
MENU LABEL Linux ^NimbleX (User: root Pass: toor)
MENU INDENT 1
kernel vesamenu.c32
append /NimbleX/boot/syslinux/nimblex.cfg
#
# avvio di UBCD4WIN
label Avvio in RAM di UBCD4WIN
MENU LABEL ^Windows XP Pro [UBCD4WIN]
MENU INDENT 1
kernel bootsect.bin
MENU SEPARATOR
#
# DIVISORE PER UTILITY
LABEL -
MENU LABEL UTILITY:
MENU DISABLE
#
# avvio di MEMTEST
label Avvio di Memtest
MENU LABEL ^Memtest 4
MENU INDENT 1
KERNEL memdisk
append ramdisk_size=100000 initrd=/memtestp.imz
#
# avvio di TESTDISK
label TestDisk / PhotoRec / LiloPwd
MENU LABEL ^TestDisk / PhotoRec / LiloPwd
MENU INDENT 1
kernel memdisk
append initrd=/TestDisk.imz
MENU SEPARATOR
#
# riavvio del sistema
label Reboot
MENU LABEL ^Riavvia il sistema
KERNEL Reboot.c32
#
# avvio da disco fisso
label Passa il comando al boot loader dell'HD
MENU LABEL Avvia il sistema da ^Hard Disk (default)
MENU DEFAULT
localboot 0x80
timeout 400
MENU SEPARATOR
#
#
LABEL -
MENU LABEL F1 Aiuto
MENU DISABLE
F1 help.msg
4. Masterizzazione del CD
Per masterizzare il nostro CD e vedere il nostro menù (anche se attualmente non farà quasi niente), possiamo usare diversi metodi. Se avete a disposizione un programma in grado di creare CD bootable (ad esempio nero burning rom) vi basta indicare come immagine di boot il file isolinux.bin. Poi copiare nella root del CD il contenuto della cartella c:\bootCD e masterizzare. Personalmente uso magiciso che però è un software a pagamento. Potete usare mkisofs, ma è a linea di comando.
A questo punto, finita la masterizzazione sul CD, possiamo riavviare la macchina ed eseguire il boot da CD. A video dovrebbe comparire il nostro menù. Ovviamente per far eseguire delle azioni precise collegate ad ogni voce di menù bisognerà indicarle nel file isolinux.cfg e bisognerà sapere cosa fare e come farlo, ma di questo ci occuperemo più avanti… Tuttavia, osservando il file isolinux.cfg postato sopra, si possono già intuire molte cose…




