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:

syslinux multiboot usb

Buon divertimento 😉

(Letto 2.658 volte di cui 1 negli ultimi 30gg)
twitterlinkedinmailby feather

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *