Pour ceux qui connaissent syslinux ils savent peut-être que c'est un bootloader tout comme grub sauf qu'il est plus facile et plus documenté que lui bien que grub2 soit à priori plus complet..
Mais bon nous ne sommes que des simples utilisateurs donc tout ça on s'en fout! On va tout juste utiliser syslinux et quelques utilitaires disque de base pour créer notre flash disque multiboot!
Pour commencer un petit:
sudo su
Et que la magie commence!
Tout d'abord repérez votre disque:
fdisk -l
Vous pouvez vous aider aussi de:
blkid
Pour moi mon disque est sur sdb et il comporte une seule partition qui est sdb1; toutes les manipulations seront basées sur cette configuration. Vérifiez bien votre configuration car une erreur à ce niveau-là c'est très chère payée: VOUS POURRIEZ ENDOMMAGER UN AUTRE DISQUE ET AUCUN RETOUR EN ARRIERE N'EST POSSIBLE!
Ceci étant dit passons.. Commençons par installer syslinux et son MBR sur le disque.
Démontez le disque:
umount /dev/sdb1
Formattez-le en vfat:
mkfs.vfat -F 32 -n discus /dev/sdb1
J'ai appelé mon disque discus vous pouvez changer ça.
Installez syslinux avec son mbr:
syslinux -maf /dev/sdb1
-m: installe le mbr sur la racine du disque
-a: "active" c'est-à-dire bootable
-f: forcer l'installation
Maintenant on va faire l'extraction/prépartion des fichiers iso des distributions qu'on va installer et des fichiers nécessaires à syslinux.
Moi j'ai un flash disque de 8Gb sur lequel je vais mettre Kali 1.0.2, son père BackTrack 5R3 et sa cousine d'une autre mère BackBox 3.01 (toutes des distributions basées sur Ubuntu/Debian conçues pour les "tests de pénétration" ).
Oui j'ai plein d'espace sur mon disque sur lequel je peux mettre plein de cochonneries!
Créons un dossier qui va servir de nouveau point de montage pour le flash disque:
mkdir /media/discus
Montons la partition sdb1 sur le point de montage:
mount /dev/sdb1 /media/discus
Créons le dossier de configuration de syslinux:
mkdir /media/discus/syslinux
Copions dedans les fichiers nécessaires à syslinux:
cp /usr/lib/syslinux/{vesamenu.c32,reboot.c32,poweroff.com} /media/discus/syslinux
Normalement ces fichiers sur ubuntu figurent dans /usr/lib/syslinux; si vous ne les trouvez pas faîtes un petit:
locate syslinux
ça vous aidera à y voir plus claire!
Créons les dossiers qui vont contenir le contenu des fichiers iso respectif de nos distributions:
mkdir /media/discus/syslinux/iso mkdir /media/discus/syslinux/iso/kali mkdir /media/discus/syslinux/iso/backtrack mkdir /media/discus/syslinux/iso/backbox
Maintenant on va créer un dossier de montage pour les fichiers iso (/media/iso), on va les monter une à une, copier leurs contenus en démontant l'une pour monter l'autre à la fin de la copie puis supprimer finalement le point de montage puisqu'on n'en a plus besoin!
Mes fichiers iso se trouvent dans mon dossier Téléchargements alors adaptez ça à là où vous avez mis vos iso téléchargées.
mkdir /media/iso mount -t iso9660 -o loop,ro /home/nizar/Téléchargements/kali.iso /media/iso cp -r --preserve=all /media/iso/* /media/discus/syslinux/iso/kali umount /media/iso/ mount -t iso9660 -o loop,ro /home/nizar/Téléchargements/backtrack.iso /media/iso cp -r --preserve=all /media/iso/* /media/discus/syslinux/iso/backtrack umount /media/iso/ mount -t iso9660 -o loop,ro /home/nizar/Téléchargements/backbox.iso /media/iso cp -r --preserve=all /media/iso/* /media/discus/syslinux/iso/backbox umount /media/iso/ rmdir /media/iso/
Ça prend du temps pour copier tout ça; une bonne quinzaine de minutes disons; alors un peu de patience.. Sirotez des carottes entre temps y a de la vitamine E dedans: c'est bon pour la vue!
Procédons maintenant à la configuration du menu de boot syslinux. Créez le fichier syslinux.cfg dans /media/discus/syslinux/
gedit /media/discus/syslinux/syslinux.cfg
et copiez ce contenu dedans:
DEFAULT Kali PROMPT 0 allowoptions 0 TIMEOUT 100 UI vesamenu.c32 MENU TITLE discus: The Ultimate Disk MENU BACKGROUND anon1.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 6 MENU VSHIFT 10 MENU TIMEOUTROW 13 MENU TABMSGROW 18 MENU CMDLINEROW 11 MENU HELPMSGROW 16 MENU HELPMSGENDROW 29 LABEL Kali MENU LABEL Kali kernel /syslinux/iso/kali/live/vmlinuz append initrd=/syslinux/iso/kali/live/initrd.img live-media-path=/syslinux/iso/kali/live boot=live noconfig=sudo username=root hostname=kali quiet splash vga=791-- LABEL BackTrack MENU LABEL BackTrack kernel /syslinux/iso/backtrack/casper/vmlinuz append initrd=/syslinux/iso/backtrack/casper/initrd.gz live-media-path=/syslinux/iso/backtrack/casper ignore_uuid boot=casper quiet splash vga=791-- LABEL BackBox MENU LABEL BackBox kernel /syslinux/iso/backbox/casper/vmlinuz append initrd=/syslinux/iso/backbox/casper/initrd.gz live-media-path=/syslinux/iso/backbox/casper ignore_uuid boot=casper locale=fr_FR bootkbd=fr console-setup/layoutcode=fr quiet splash vga=791-- LABEL Reboot MENU LABEL Reboot COM32 reboot.c32 LABEL Power Off MENU LABEL Power Off COMBOOT poweroff.com
anon1.png est une image qui va servir de fond pour le menu du boot; vous pouvez la télécharger directement dans le dossier syslinux avec cette commande:
curl -L -o /media/discus/syslinux/anon1.png http://goo.gl/oVMWk
C'est une image exactement 640x480 8bit png. Vous pouvez faire votre propre image mais à condition qu'elle soit 640x480 8bit png ou jpg.
Pour mettre votre image à 8bit vous pouvez vous aider de cette commande d'ImageMagick:
convert image_entree.png -colors 256 image_sortie.png
N'oubliez pas à la fin de tout ça de démonter la clé:
umount /dev/sdb1
et de supprimer le dossier de montage qu'on a utilisé!
rmdir /media/discus
Et voilà tout!
Vous pouvez tester votre clé avec VirtualBox ou VMWare ou encore plus simplement qemu avec la commande:
qemu-system-i386 /dev/sdb
ou
qemu-system-x86_64 /dev/sdb
en fonction de votre architecture!
Des commentaires?! Des remarques?! N'hésitez pas!
P.S: Il m'est bien-entendu impossible de tout vous expliquer dans un seul petit tutorial!
Vous avez encore biensûr vos points d'ombre donc je vous propose ces lectures:
[1] Le wiki de Syslinux: http://www.syslinux.org/wiki/index.php/SYSLINUX
[2] Personnalisation du menu: http://www.syslinux.org/wiki/index.php/Comboot/menu.c32
[3] Entrées de menu d'autres distributions que celles que j'ai utilisées (code source de YUMI): https://github.com/bwnickle/YUMI/tree/master/src/menu