Creare una chiavetta USB multiboot con syslinux
Avere una chiavetta USB multiboot che contenga varie distribuzioni Linux, per installazioni, dimostrazioni o per utilità/soccorso come System Rescue CD, è veramente molto comodo.
Per crearla ci sono vari tool in rete ma non sempre svolgono il loro lavoro in modo efficace. Esiste, però, un modo semplice per creare una chiavetta USB multiboot utilizzando syslinux. Vediamo come fare.
Supponiamo di volere creare una chiavetta con le seguenti distro Linux (ma la stessa procedura vale anche per altre distro):
- Ubuntu desktop 14.04
- Xubuntu 14.04
- Ubuntu Mate 15.04
- Edubuntu 14.04 64bit
- Edubuntu 14.04 32bit
- Elementary OS Freya
- Kodibuntu 14.04
- System Rescue CD 64 bit
- System Rescue CD 32 bit
- Zorin Educational 64 bit
- Linux Mint 64bit Cinnamon
La procedura da seguire, eseguita su un PC con Ubuntu Linux (ma vale per qualunque distribuzione derivata da Debian), è la seguente:
inserire la chiavetta in una porta USB, quindi aprire il Terminale e dare il comando:
fdisk -l
per capire qual'è il dispositivo.
A questo punto, supponendo che l'esito del comando ci dica che il dispositivo è /dev/sdc1, prepariamo la chiavetta eseguendo i seguenti comandi (NB: MULTIBOOT è la label attribuita alla chiavetta, ma può essere un qualunque nome di fantasia, esempio GANDALF):
sudo su umount /dev/sdc1 # unmount del dispositivo mkfs.vfat -F 32 -n MULTIBOOT /dev/sdc1 # formattazione con file system vfat syslinux -maf /dev/sdc1 # Installazione di syslinux e del MBR mkdir /media/mb # Creazione del punto di mount dove montare la chiavetta mount /dev/sdc1 /media/mb # Montaggio chiavetta USB mkdir /media/mb/syslinux # creazione della directory per la configurazione di syslinux cp /usr/lib/syslinux/{vesamenu.c32,reboot.c32,poweroff.com} /media/mb/syslinux # copia di files necessari a syslinux mkdir /media/mb/syslinux/iso # creazione della directory che conterrà le varie distribuzioni
A questo punto estraggo le immagini ISO e le copio sulla chiavetta.
Creo il punto di mount dove montare le immagini delle ISO
mkdir /media/iso
Per ogni distribuzione che voglio aggiungere alla chiavetta eseguo i seguenti comandi:
mkdir /media/mb/syslinux/iso/ubuntu_1404 mount -t iso9660 -o loop,ro /media/paolo/hd2Win/ISO/ubuntu-14.04.2-desktop-amd64.iso /media/iso cp -r /media/iso/* /media/mb/syslinux/iso/ubuntu_1404/ umount /media/iso/
variando per ogni distro la directory che andrà a contenerla (ubuntu_1404) ed il percorso dell'immagine ISO nel comando mount.
Eseguito il passo precedente per tutte le distribuzioni desiderate, rimuovo il punto di mount creato prima
rmdir /media/iso/
Ora non resta che creare il file di configurazione /media/mb/syslinux/syslinux.cfg con l'elenco delle distribuzioni che appariranno nel menu al boot da chiavetta:
DEFAULT Ubuntu_1404 PROMPT 0 allowoptions 0 TIMEOUT 100 UI vesamenu.c32 MENU TITLE USB Multiboot Key MENU BACKGROUND splash02.png MENU COLOR border 30;44 #40ffffff #a0000000 std MENU COLOR title 1;36;44 #9033ccff #a0000000 std MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all MENU COLOR unsel 37;44 #50ffffff #a0000000 std MENU COLOR help 37;40 #c0ffffff #a0000000 std MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std MENU COLOR msg07 37;40 #90ffffff #a0000000 std MENU COLOR tabmsg 31;40 #30ffffff #00000000 std MENU WIDTH 80 MENU MARGIN 10 MENU ROWS 15 # numero di righe del menu MENU TABMSGROW 18 MENU CMDLINEROW 18 MENU ENDROW -1 MENU PASSWORDROW 11 MENU TIMEOUTROW 20 MENU HELPMSGROW 22 MENU HELPMSGENDROW -1 MENU HIDDENROW -2 MENU HSHIFT 0 MENU VSHIFT 4 # posizionamento verticale del menu LABEL Ubuntu_1404 MENU LABEL Ubuntu 14.04 Trusty Thar kernel /syslinux/iso/ubuntu_1404/casper/vmlinuz.efi append initrd=/syslinux/iso/ubuntu_1404/casper/initrd.lz live-media-path=/syslinux/iso/ubuntu_1404/casper boot=live console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Xubuntu_1404 MENU LABEL Xubuntu 14.04 kernel /syslinux/iso/xubuntu_1404/casper/vmlinuz.efi append initrd=/syslinux/iso/xubuntu_1404/casper/initrd.lz live-media-path=/syslinux/iso/xubuntu_1404/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Ubuntu_1504_mate MENU LABEL Ubuntu Mate 15.04 kernel /syslinux/iso/ubuntu_1504_mate/casper/vmlinuz.efi append initrd=/syslinux/iso/ubuntu_1504_mate/casper/initrd.lz live-media-path=/syslinux/iso/ubuntu_1504_mate/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Edubuntu_1404_64 MENU LABEL Edubuntu 14.04 64 bit kernel /syslinux/iso/edubuntu_1404_64/casper/vmlinuz.efi append initrd=/syslinux/iso/edubuntu_1404_64/casper/initrd.lz live-media-path=/syslinux/iso/edubuntu_1404_64/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Edubuntu_1404_32 MENU LABEL Edubuntu 14.04 32 bit kernel /syslinux/iso/edubuntu_1404_32/casper/vmlinuz append initrd=/syslinux/iso/edubuntu_1404_32/casper/initrd.lz live-media-path=/syslinux/iso/edubuntu_1404_32/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Elementary_OS_Freya MENU LABEL Elementary OS Freya kernel /syslinux/iso/eos_freya/casper/vmlinuz append initrd=/syslinux/iso/eos_freya/casper/initrd.lz live-media-path=/syslinux/iso/eos_freya/casper LABEL Ubuntu_1404 MENU LABEL Ubuntu 14.04 Trusty Thar kernel /syslinux/iso/ubuntu_1404/casper/vmlinuz.efi append initrd=/syslinux/iso/ubuntu_1404/casper/initrd.lz live-media-path=/syslinux/iso/ubuntu_1404/casper boot=live console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Xubuntu_1404 MENU LABEL Xubuntu 14.04 kernel /syslinux/iso/xubuntu_1404/casper/vmlinuz.efi append initrd=/syslinux/iso/xubuntu_1404/casper/initrd.lz live-media-path=/syslinux/iso/xubuntu_1404/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Ubuntu_1504_mate MENU LABEL Ubuntu Mate 15.04 kernel /syslinux/iso/ubuntu_1504_mate/casper/vmlinuz.efi append initrd=/syslinux/iso/ubuntu_1504_mate/casper/initrd.lz live-media-path=/syslinux/iso/ubuntu_1504_mate/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Edubuntu_1404_64 MENU LABEL Edubuntu 14.04 64 bit kernel /syslinux/iso/edubuntu_1404_64/casper/vmlinuz.efi append initrd=/syslinux/iso/edubuntu_1404_64/casper/initrd.lz live-media-path=/syslinux/iso/edubuntu_1404_64/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Edubuntu_1404_32 MENU LABEL Edubuntu 14.04 32 bit kernel /syslinux/iso/edubuntu_1404_32/casper/vmlinuz append initrd=/syslinux/iso/edubuntu_1404_32/casper/initrd.lz live-media-path=/syslinux/iso/edubuntu_1404_32/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Elementary_OS_Freya MENU LABEL Elementary OS Freya kernel /syslinux/iso/eos_freya/casper/vmlinuz append initrd=/syslinux/iso/eos_freya/casper/initrd.lz live-media-path=/syslinux/iso/eos_freya/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL Kodibuntu_14_04 MENU LABEL Kodibuntu 14.04 64 bit kernel /syslinux/iso/kodibuntu_1404/casper/vmlinuz append initrd=/syslinux/iso/kodibuntu_1404/casper/initrd.lz live-media-path=/syslinux/iso/kodibuntu_1404/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- LABEL System_Rescue_CD_64 MENU LABEL System Rescue CD 4.5.4 64 bit kernel /syslinux/iso/srcd/isolinux/rescue64 append initrd=/syslinux/iso/srcd/isolinux/initram.igz subdir=/syslinux/iso/srcd dostartx setkmap=it LABEL System_Rescue_CD_32 MENU LABEL System Rescue CD 4.5.4 32 bit kernel /syslinux/iso/srcd/isolinux/rescue32 append initrd=/syslinux/iso/srcd/isolinux/initram.igz subdir=/syslinux/iso/srcd dostartx setkmap=it LABEL Zorin MENU LABEL Zorin Educational 9 64 bit kernel /syslinux/iso/zorin/casper/vmlinuz.efi append initrd=/syslinux/iso/zorin/casper/initrd.lz live-media-path=/syslinux/iso/zorin/casper ignore_uuid boot=casper quiet splash -- LABEL LinuxMint MENU LABEL Linux Mint Cinnamon 17.2 64 bit kernel /syslinux/iso/mint/casper/vmlinuz append initrd=/syslinux/iso/mint/casper/initrd.lz live-media-path=/syslinux/iso/mint/casper console-setup/layoutcode=it ignore_uuid boot=casper quiet splash -- MENU SEPARATOR LABEL Reboot MENU LABEL Reboot COM32 reboot.c32 LABEL Power Off MENU LABEL Power Off COMBOOT poweroff.com
E' importante indicare per ogni distribuzione il corretto percorso del kernel.
A questo punto la chiavetta è pronta per il multiboot, eseguo i comandi finali per ripulire il sistema da ciò che non serve più,
umount /media/mb # smonto la chiavetta rmdir /media/mb # elimino il punto di mount precedentemente creato
quindi non resta che riavviare il PC e testare la chiavetta.
Il risultato finale sarà simile al seguente:
Buon divertimento 😉