Créer une clef USB multiboot avec Ventoy

Sommaire

L'objectif est de créer une clef USB multiboot, via un système Linux sans interface graphique (CLI), capable de démarrer la plupart des images ISO (Debian, Ubuntu, Windows etc.), y compris les fichiers de taille supérieure à 4Go, de démarrer sur des machines disposant du "Secure Boot" et d'installer les systèmes de manière silencieuse (unattended).

Pour cela, nous allons utiliser l'application "open source" Ventoy". Cet outil est sous licence GPLv3+.

1. Prérequis

  • Une clef USB (64Go et USB3 minimum recommandés)
  • Un système Linux sur lequel sera téléchargée et exécutée l'application Ventoy (nous utiliserons Debian 12 dans notre exemple)
  • Sur notre Debian 12, nous partirons du principe que les paquetages suivants sont installés (parted, dosfstools, sudo et wget)
1apt-get install parted wget dosfstools sudo

2. Télécharger Ventoy sur votre système

Récupérer la dernière version de Ventoy : https://github.com/ventoy/Ventoy/releases/latest

Dans notre exemple nous allons télécharger la version 1.0.97 :

1cd ~/
2wget https://github.com/ventoy/Ventoy/releases/download/v1.0.97/ventoy-1.0.97-linux.tar.gz

Nous vérifions la somme de contrôle SHA256 avant de le décompresser :

1sha256sum ventoy-1.0.97-linux.tar.gz

Décompresser l'archive du paquetage Ventoy :

1tar xvzf ventoy-1.0.97-linux.tar.gz

3. Créer la clef USB multiboot

Lors de cette étape, nous allons installer Ventoy sur la clef USB, avec une table de partition GPT et l'option "Secure Boot" activée.

Dans un premier temps, brancher la clef USB sur votre système et récupérer le chemin de montage :

1lsblk -a --nodeps -o PATH,NAME,LABEL,VENDOR,MODEL,SIZE

Si vous n'avez qu'une clef USB branchée sur votre système, vous pouvez retrouver le chemin de montage via cette commande :

1lsblk --nodeps -ao TRAN,PATH |grep usb |awk '{print $2}'

Ensuite se diriger dans le répertoire de l'archive décompressée de Ventoy :

1cd ventoy-1.0.97/

Exécuter la commande privilégiée suivante pour installer Ventoy avec une table de partition GPT et l'option "Secure Boot" activée, sur votre clef USB (remplacer /dev/sdX par le chemin de votre clef USB) :

1sudo ./Ventoy2Disk.sh -s -g -I /dev/sdX

En cas d'incident, vérifier que la clef USB n'est pas déjà montée sur votre système.

Répondre au question en appuyant deux fois sur la touche "y" puis sur la touche "entrée" :

 1**********************************************
 2      Ventoy: 1.0.97  x86_64
 3      longpanda admin@ventoy.net
 4      https://www.ventoy.net
 5**********************************************
 6
 7Disk : /dev/sda
 8Model: Kingston DataTraveler 3.0 (scsi)
 9Size : 57 GB
10Style: GPT
11
12
13Attention:
14You will install Ventoy to /dev/sda.
15All the data on the disk /dev/sda will be lost!!!
16
17Continue? (y/n) y
18
19All the data on the disk /dev/sda will be lost!!!
20Double-check. Continue? (y/n) y
21
22Create partitions on /dev/sda by parted in GPT style ...
23Done
24Wait for partitions ...
25partition exist OK
26create efi fat fs /dev/sda2 ...
27mkfs.fat 4.2 (2021-01-31)
28success
29Wait for partitions ...
30Wait for /dev/sda1//dev/sda2 ...
31/dev/sda1 exist OK
32/dev/sda2 exist OK
33partition exist OK
34Format partition 1 /dev/sda1 ...
35mkexfatfs 1.3.0
36Creating... done.
37Flushing... done.
38File system created successfully.
39mkexfatfs success
40writing data to disk ...
41sync data ...
42esp partition processing ...
43
44Install Ventoy to /dev/sda successfully finished.

Vérifier que les deux partitions dédiées pour Ventoy sont présentes sur votre clef USB (remplacer /dev/sdX par le chemin de votre clef USB) :

1lsblk -o PATH,NAME,LABEL,VENDOR,MODEL,SIZE,FSTYPE /dev/sdX

Le retour de la commande doit afficher les deux partitions sur votre clef USB, avec notamment la partition nommée "Ventoy" avec un système de fichier de type "exfat" :

1PATH      NAME   LABEL   VENDOR   MODEL             SIZE FSTYPE
2/dev/sda  sda            Kingston DataTraveler_3.0 57,8G 
3/dev/sda1 ├─sda1 Ventoy                            57,7G exfat
4/dev/sda2 └─sda2 VTOYEFI                             32M vfat

4. Déposer les images ISO sur la clef USB

Monter la première partition de votre clef USB Ventoy (remplacer /dev/sdX par le chemin de votre clef USB) :

1sudo mount /dev/sdX1 /mnt

Se diriger dans le répertoire du point de montage :

1cd `mount -l -t exfat |awk '{print $3}'`

Créer un répertoire dédié pour les images ISO :

1mkdir ISO

On télécharger l'image ISO de Debian 12 dans le répertoire "ISO" :

1cd ISO
2wget https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-12.5.0-amd64-DVD-1.iso

Voici la liste des images que j'ai testé et qui sont fonctionnelles :

5. Configurer Ventoy

Créer un répertoire dédié pour la configuration de Ventoy et de ses plugins :

1cd `mount -l -t exfat |awk '{print $3}'`
2mkdir ventoy

Créer le fichier de configuration "ventoy.json" dans le répertoire "ventoy":

1cd ventoy
2touch ventoy.json

Editer le fichier "ventoy.json" afin de définir les paramètres globaux de contrôle de Ventoy. Les paramètres sont documentés ici : ventoy_plugin_control.

Dans notre exemple, nous allons configurer le menu et le clavier en Français, et définir l'image par défaut sur Debian 12 :

 1{
 2    "control": [
 3        { "VTOY_MENU_LANGUAGE": "fr_FR" },
 4        { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" },
 5        { "VTOY_MENU_TIMEOUT": "30" },
 6        { "VTOY_DEFAULT_IMAGE": "/ISO/debian-12.5.0-amd64-DVD-1.iso" },
 7        { "VTOY_DEFAULT_KBD_LAYOUT": "FRENCH" },
 8        { "VTOY_WIN11_BYPASS_CHECK": "0" },
 9        { "VTOY_WIN11_BYPASS_NRO": "1" },
10        { "VTOY_SECONDARY_TIMEOUT": "30" }
11    ]
12}

6. Éjecter la clef USB

Démonter la partition avant d'éjecter la clef de votre système :

1cd
2umount `mount -l -t exfat |grep Ventoy |awk '{print $3}'`

Votre clef USB multiboot est prête à être utilisée.

7. Démarrer sur un système disposant du UEFI Secure Boot

Le guide Ventoy pour démarrer sur un système disposant du mode UEFI Secure Boot se trouve ici : https://www.ventoy.net/en/doc_secure.html :

  • Toutes les étapes doivent être réalisée une seule fois sur chaque ordinateur qui démarre Ventoy pour la première fois
  • Il y a deux méthodes d'inscription : "Enroll Key" and "Enroll Hash", utilisez l'une ou l'autre

8. Mettre à jour Ventoy sur la clef USB

Se diriger dans le répertoire de l'archive décompressée de Ventoy :

1cd ~/ventoy-1.0.97/

Exécuter la commande privilégiée suivante pour mettre à jour Ventoy sur votre clef USB (remplacer /dev/sdX par le chemin de votre clef USB) :

1sudo ./Ventoy2Disk.sh -u /dev/sdX

Répondre à la question en appuyant sur la touche "y" puis sur la touche "entrée" :

 1**********************************************
 2      Ventoy: 1.0.97  x86_64
 3      longpanda admin@ventoy.net
 4      https://www.ventoy.net
 5**********************************************
 6
 7Upgrade operation is safe, all the data in the 1st partition (iso files and other) will be unchanged!
 8
 9Update Ventoy  1.0.97 ===> 1.0.98   Continue? (y/n) y
10esp partition processing ...
11
12Update Ventoy on /dev/sda successfully finished.

9. Liens