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:
default vesamenu.c32
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…
Ho provato a seguire questa guida per creare un Dvd multiboot con tre distro-Linux:
Dynebolic 3, Musix 3 e Puredyne 9.
Il tutto utilizzando syslinux 4.04.
Ho masterizzato il cd con Magic iso maker .
All’avvio del disc, però, compare questo messaggio:
“ISOLINUX 4.04 2011_04_18 ETCDisolinux:
image checksum error, sorry…
Boot failed: press a key to retry…”
Dove ho sbagliato?
Grazie,
Distinti saluti,
Angelo
Ciao Angelo,
benvenuto in questo piccolo blog… Purtroppo ho scritto l’articolo in questione quasi 2 anni fa e non ho più usato isolinux da allora. Tuttavia l’errore che indichi sembra essere un errore di scrittura su DVD in fase di masterizzazione. E’ come se la scrittura del DVD fosse andata male. Dovresti provare a masterizzare, su un DVD riscrivibile, la sola immagine di isolinux con un file isolinux.cfg qualunque (magari fai copia incolla del mio online), per vedere se parte regolarmente un DVD così fatto. Ovviamente le voci di menù non ti funzioneranno, ma almeno hai la certezza che la scrittura funziona correttamente. Poi, se tutto funziona, puoi aggiungere uno alla volta i tuoi sistemi operativi. Tanto se il DVD è riscrivibile lo puoi scrivere e cancellare un bel po’ di volte.
Altro purtroppo non ti so dire. Buona fortuna… 🙂
ho creato come da indicazioni il file isolinux.cfg,ma non capisco dove mettere i live cd,le iso varie..e come collegare il tutto
Ciao mchen,
hai ragione, non lo capisci perché non l’ho mai scritto. Avrei dovuto scrivere l’ultimo articolo sul isolinux per completare l’opera, ma poi gli eventi me l’hanno impedito (almeno fino ad oggi).
Per venirti comunque incontro ti indico una strada. Ammettiamo che tu voglia aggiungere al tuo DVD il sistema operativo NIMBLEX (come da menù presente nell’esempio). Lo stesso procedimento puoi poi usarlo per ogni altra applicazione che vuoi aggiungere…
Scarica l’iso del S.O., aprila con un programma tipo IZARC e decomprimila dentro c:\bootCD\NimbleX. A questo punto dovresti capire cosa fare osservando il file isolinux.cfg d’esempio che trovi in questo articolo. In particolare osserva la riga in cui c’è scritto “append /NimbleX/boot/syslinux/nimblex.cfg”.
Spero di esserti stato d’aiuto e perdona la mancanza, ma… faccio quello che posso.
Grazie per aver letto il mio articolo.
thx
fatto 🙂
bell’esempio… e se invece voglio metterlo su una pendrive usb?
come si fa a creare la pendrive avviabile presentando quel menu?
Ciao ilgio.
In genere qui scrivo quello che faccio fatica a trovare in giro per la rete 🙂
Per creare una usb avviabile puoi ad esempio leggere questa eccellente guida e poi modificare il file syslinux.cfg (come se fosse il qui citato isolinux.cfg) per ottenere il tuo risultato visivo.
Buona avventura! 🙂