fdisk -l
.
En terme de mobilité, j'aime bien avoir sur moi une ou deux clés bootables pour jouer au geek devant un parterre de noobs ébahis.
L'inconvénient est que ce n'est pas forcément pratique d'avoir une distro par clé, surtout pour partager les données persistantes.
D'où l'idée d'avoir une seule clé contenant plusieurs images ISO.
Si la mise en œuvre peut parfois se révéler délicate, le principe est relativement simple :
Pour éviter certains problèmes, le mieux est d’utiliser une clé vierge, ou reformatée.
Si ce n'est pas le cas, il est possible de la réinitialiser rapidement : voir Effacement rapide d'un stick usb
Créons tout d'abord une partition primaire amorçable, à l'aide, par exemple, de la commande fdisk :
fdisk /dev/sdx
Entrer les commandes suivantes :
d ↵ Entrée (autant de fois que nécessaire pour détruire les partitions éventuellement présentes)
n ↵ Entrée (pour créer une nouvelle partition)
p ↵ Entrée (pour qu'elle soit de type primaire)
↵ Entrée (numéro de partition mais, par défaut, c'est 1)
↵ Entrée (premier secteur, par défaut 2048
2000000 ↵ Entrée (dernier secteur, par défaut le maximum disponible ; prendre suffisamment pour contenir les ISO et laisser de la place pour une partion contenant les données persistantes)
a ↵ Entrée (pour définir la partition amorçable)
1 ↵ Entrée (pour indiquer que ce sera la première partition et que son flag de boot sera levé)
t ↵ Entrée (pour définir le type de partition)
1 ↵ Entrée (dans le cas où il y aurait plusieurs partitions définies)
c ↵ Entrée (pour définir une partition FAT32)
w ↵ Entrée (pour valider et écrire la table de partitions sur la clé)
Il reste maintenant à démonter la(les) partition(s) :
umount /dev/sdx1
formater la(les) partition(s) :
mkfs.vfat -F 32 -n multilive /dev/sdx1
remonter la première partition :
mkdir /mnt/usb && mount /dev/sdx1 /mnt/usb
et enfin installer GRUB :
grub-install --force --no-floppy --boot-directory=/mnt/usb/boot /dev/sdx
J'ai choisi de placer les images ISO dans le dossier /iso de la première partition.
cd /mnt/usb/iso
wget -c http://cdimage.debian.org/cdimage/release/current-live/i386/iso-hybrid/debian-live-8.3.0-i386-lxde-desktop.iso
Cette commande est à réitérer pour les différentes images souhaitées.
On peut trouver sur la toile plusieurs exemples de fichier grub.cg.
Voici le mien (il est destiné à lancer les ISO de Tails, Kali Linux et SystemRescueCD, ainsi que le MemTest compris dans SystemRescueCD) :
# fichier de configuration grub.cfg set timeout=10 set default=0 menuentry "Tails i386 2.0.1" { set isofile='/iso/tails.iso' loopback loop $isofile linux (loop)/live/vmlinuz2 boot=live config findiso=${isofile} live-media=removable apparmor=1 security=apparmor nopersistent noprompt timezone=Etc/UTC block.events_dfl_poll_msecs=1000 noautologin module=Tails initrd (loop)/live/initrd2.img } # Warning: Emergency memory erasure does not seem to work when booting this way. # Remove the live-media=removable option if the iso file is not on removable media. menuentry "Kali Linux 386 2016.1" { set isofile='/iso/kali.iso' loopback loop $isofile linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali initrd (loop)/live/initrd.img } set isofilename="systemrescuecd.iso" # Because System Rescue CD's boot loader adds a / when searching as it really likes it in the root of the drive # set isorelativepath="boot/iso/$isofilename" set isorelativepath="iso/$isofilename" set isofullpathname="/$isorelativepath" menuentry "System Rescue Cd x86 4.7.1" { loopback loop $isofullpathname linux (loop)/isolinux/rescue32 isoloop=$isorelativepath initrd (loop)/isolinux/initram.igz } menuentry "System Rescue CD MemTest86+" { loopback loop $isofullpathname linux16 (loop)/bootdisk/memtestp }
Pas de doute : il faut rebooter …