Ventoy, la clef USB universelle

Ventoy est un outil pour créer une clef USB multiboot permettant d’avoir une seule clé pour différents systèmes, ce qui est extrêmement pratique quand on fait un peu de dépannage ou de tests : plus besoin d’avoir une clef GParted, une autre Clonezilla, ou encore une Debian Live…

Une fois la clef créée, il suffit d’y copier les images ISO de votre choix, et les systèmes apparaîtront automatiquement dans le menu Ventoy en démarrant sur la clé USB.

Plus que cela, Ventoy permet aussi via une série de plugins de personnaliser la clef (menu, thèmes, etc…) mais aussi de gérer la persistance pour les distributions « Live » comme Debian, Ubuntu, Mint… Et ça c’est un vrai plus, rien de plus énervant que de devoir par exemple repasser à chaque fois l’OS en français dans une session LIVE…

Voyons voir comment préparer sa clef USB Ventoy et la personnaliser. J’utilise une clef de 32 Go pour ce premier essai. À la fin, on obtient un truc assez sympa (finalement, je choisirai le thème Ventoy Adwaita) :

Installation

Il suffit de télécharger la dernière image sur le site officiel, et de dézipper l’archive dans un dossier. Pour ma part, j’ai créé un dossier /home/pascal/.local/bin/Ventoy afin de garder l’outil. Il ne plus qu’à lancer le script qui va bien, dans mon cas VentoyGUI.x86_64. La page officielle « Get Started » est ici.

La fenêtre de Ventoy s’ouvre (sélectionner le langage French) :

NOTE : Il existe aussi une WebUI si vous préférez : dans ce cas, lancer la commande sudo VentoyWeb.sh puis ouvrir la page http://127.0.0.1:24680.

À noter que Ventoy peut être aussi être installé sur un disque local, mais par défaut seuls les clefs USB sont affichées (pour éviter les erreurs). Il faut aller dans le menu Option et cocher « Afficher tous les périphériques » si vous le désirez.

Avant de lancer l’installation, il reste une question à se poser : souhaite-t-on créer sur la clef USB une partition MBR ou GPT ?

J’ai choisi GPT car c’est la partition d’amorçage des BIOS UEFI que l’on trouve partout aujourd’hui. Si l’on souhaite travailler plutôt avec des vieux PCs, il est sans doute préférable de choisir MBR. Cette page résume quelques informations sur le sujet.

Il ne reste plus qu’à cliquer sur le bouton Installation, un message vous prévient que le périphérique va être formaté, et quelques secondes plus tard, votre clef USB est prête :

Après l’installation, la clef USB est divisée en deux partitions :

  • Une première Ventoy formatée en exFAT (on peut la reformater dans un autre système si on le souhaite). C’est sur cette partition que seront copiées les images ISO que l’on souhaite utiliser.
  • Une seconde VTOYEFI de 32 Mo contenant les informations nécessaires à Ventoy et au boot. On peut y voir les dossiers EFI, GRUB, tool et ventoy…

Au démarrage, Ventoy va scanner toute la partition 1 pour y trouver les images ISO. On peut donc les copier à la racine de la partition 1, ou bien créer un dossier ISO pour organiser l’arborescence.

Si l’on dispose d’une clef de grande capacité, on peut aussi réserver de l’espace à la fin de la clef pour y créer une ou deux partitions réservées à d’autres usages. Il est par contre impératif que Ventoy occupe les partitions 1 et 2. Voir cette page pour plus d’informations.

Voilà, il ne reste plus qu’à copier quelques images ISO sur la clef, et de démarrer dessus : c’est cool de pouvoir utiliser plusieurs images avec une seule et même clef USB :

Plugins

Il y a pas mal de Plugins pour étendre les capacités de Ventoy ou le personnaliser (thème, menus, etc…). Pour les configurer, il est recommandé d’utiliser le plugin VentoyPlugson, la syntaxe du fichier ventoy.json pouvant se révéler peu tolérante aux erreurs de syntaxe…

Tous les fichiers liés aux plugins doivent être placés dans le dossier ventoy de la première partition.

VentoyPlugson plugin

La page de documentation du plugin se trouve ici.

Pour le lancer, il suffit d’exécuter le script VentoyPlugson.sh présent dans le dossier Ventoy que l’on a créé précédemment, en indiquant le périphérique USB concerné (taper $ lsblk pour l’identifier en cas de doute), en mode sudo :

$ sudo ./VentoyPlugson.sh /dev/sde
Ventoy version in Disk: 1.0.97
Disk Partition Style  : GPT
Secure Boot Support   : YES
/dev/sde1 is mounted at /media/pascal/Ventoy exfat
ventoy directory exist OK

===============================================================
  Ventoy Plugson Server is running ...
  Please open your browser and visit http://127.0.0.1:24681
===============================================================

################## Press Ctrl + C to exit #####################

Il suffit ensuite d’ouvrir la page web indiquée pour afficher la page d’accueil du plugin :

À gauche la liste de tous les plugins disponibles.

Global Control Plugin

La page de documentation du Plugin est ici.

Ce plugin permet de définir pas mal de paramètres globaux, je commence par celui-là pour passer Ventoy en français : VTOY_MENU_LANGUAGE à fr_FR, et VTOY_DEFAULT_KBD_LAYOUT à FRENCH.

On peu aussi citer le paramètre VTOY_LINUX_REMOUNT pour pouvoir accéder à la clef USB en ayant booté sur un Live CD Linux car par défaut ce n’est pas possible (linux kernel restriction). Ce paramètre est toutefois expérimental et n’a pas été totalement testé.

Mais celui qui m’intéresse pour l’instant, c’est le Persistence Plugin : en effet, il permet lorsque l’on démarre sur un CD Live (Debian, Mint…) de conserver les modifications effectuées, telles que la langue, la disposition clavier, ou même des programmes installés. C’est vraiment quelque chose d’indispensable dans le cas d’une utilisation d’une distribution en mode « Live ».

Persistence Plugin

La page de documentation du Plugin se trouve ici.

Pas besoin de créer une partition dédiée comme c’est souvent le cas pour ce besoin : grâce à Ventoy, un simple fichier sera suffisant. Attention, sa taille peut tout de même être conséquente, selon vos besoins (de 256 Mo à 4 Go typiquement). J’ai choisi 4 Go pour avoir suffisamment de place ; après on doit pouvoir faire encore plus gros si l’on a une clef USB de grande capacité.

Il est même possible d’installer plusieurs fichiers pour une même distribution : dans ce cas, Ventoy proposera un menu pour sélectionner le fichier de persistance voulu au démarrage. Ce peut être pratique pour avoir plusieurs configurations disponibles pour une même distribution.

Ventoy pousse le détail jusqu’à fournir une liste de fichiers « prêts à l’emploi » que l’on peut télécharger ici. C’est pratique car il y a plusieurs types de fichiers selon les OS utilisés.
En cas de besoins spécifiques, un script CreatePersistentImg.sh est fourni pour créer ses propres fichiers. Voir la page du plugin car les paramètres à passer diffèrent en fonction des spécificités de chaque OS.

NOTE : L’archive comprenant les fichiers « prêts à l’emploi » n’est pas très grosse, puisqu’il s’agit de fichiers vides ! (l’algo de compression s’en donne à cœur joie…). Mais lors de l’extraction du fichier vers la clef USB (dans mon cas, j’ai choisi un fichier de 4 Go), il faudra un certain temps pour y copier le fichier (copier des zéros prend autant de temps que de copier des 1 et des 0…). 😉 . En cas de doute, utiliser la commande sync pour s’assurer que le transfert est bien terminé.

Je vais créer un fichier de persistence pour Debian et un autre pour LinuxMint. Ce dernier OS (version Cinnamon) est pratique pour faire découvrir Linux à quelqu’un venant de Windows : l’interface est proche, et tout est fait pour simplifier son utilisation. Et je veux l’avoir en français dès le démarrage…

Pour Debian, j’extrais le fichier persistence_ext4_4GB_persistence.dat, et pour LinuxMint ce sera le fichier persistence_ext4_4GB_casper-rw.dat. Une fois extraits dans le dossier ventoy de la première partition, je les renomme afin de mieux les identifier.

Puis je lance le plugin VentoyPlugson et sa page web, sélectionne à gauche « persistence Plugin », clique sur Add, et fournit les infos demandées :

J’ai placé mes images ISO à la racine de la partition…

La page affiche alors les infos suivantes : on voit que l’on peut ajouter un autre fichier « persistence » pour la même image, ou ajouter un autre fichier pour une autre image ISO :

Je vérifie le contenu du fichier ventoy.json :

$ ls /media/pascal/Ventoy/ventoy/
persistence_ext4_4GB_casper-rw_linuxmint21_3.dat  ventoy_backup.json
persistence_ext4_4GB_debian12_5_0.dat             ventoy.json
[~]
$ cat /media/pascal/Ventoy/ventoy/ventoy.json 
{
    "persistence":[
        {
            "image": "/debian-live-12.5.0-amd64-gnome.iso",
            "backend":[
                "/ventoy/persistence_ext4_4GB_debian12_5_0.dat"
            ]
        },
        {
            "image": "/linuxmint-21.3-cinnamon-64bit.iso",
            "backend":[
                "/ventoy/persistence_ext4_4GB_casper-rw_linuxmint21_3.dat"
            ]
        }
    ]
}

Voilà, il ne reste plus qu’à tester tout ça en redémarrant le PC et en appuyant sur F8 pour sélectionner la clef Ventoy, lancer Debian ou Mint, modifier ou ajouter quelque chose, puis redémarrer et voir si le changement a bien été sauvegardé ! 😎

Personnalisation

Je ne vais pas me limiter à ces deux OS Live, je vais aussi y copier une image ISO d’installation Windows 10, et quelques images d’utilitaires Linux et/ou Windows, histoire d’avoir une clef complète ("One ring to rule them all"). Et je n’ai déjà plus assez de place sur la clef pour une image d’installation de Windows 11 ! 🙁

Une fois ceci fait, reste à soigner l’apparence : thème, menu, et une spécificité pour le fichier WIM pour une image d’un mini Windows 10 trouvé

Menu Alias plugin

La page de documentation du Plugin se trouve ici.

Un autre plugin pratique et rapide à configurer est le « Menu Alias », qui permet de donner un alias plus convivial aux noms de fichiers ISO. On procède de la même façon en utilisant VentoyPlugson comme interface de configuration, et pour chaque fichier ISO on fournit un alias. On obtient alors un menu déjà un peu plus sympa :

Le menu reste classé par ordre alphabétique.

Image List plugin

La page de documentation du Plugin se trouve ici.

Par défaut, on a vu que Ventoy scanne toute la partition pour y trouver les images ISO, puis il les affiche par ordre alphabétique.

Pour s’affranchir de l’affichage par ordre alphabétique, la meilleure solution est d’utiliser le plugin « Image List ». Ce dernier a deux modes de fonctionnement :

  • White List : Ventoy affiche une liste statique des images ISO que vous renseignez. On perd donc le scan et l’affichage automatique des ISO.
  • Black List : on conserve le scan automatique, mais les ISO listées ne seront pas affichées.

Ici, je choisis de mettre en avant les images « Live » de Debian et Mint, puis les outils selon leur fréquence d’usage :

Les OS Live d’abord, les outils ensuite.

Wimboot plugin

La page de documentation du plugin se trouve ici.

Windows ayant l’habitude de réinventer la roue, a son propre format pour les images disques, ce sont des fichiers .WIM. Il faut dès lors activer ce plugin (en fait copier un fichier ventoy_wimboot.img sur la clef) afin de pouvoir booter sur ces fichiers. La mini-image de Windows 10 que j’ai trouvé (sur medicatUSB, voir en fin d’article) utilise ce format, j’en ai donc besoin.

Secondary boot menu

La page de documentation du plugin se trouve ici.

Ventoy présente par défaut un second menu une fois l’image sélectionnée, permettant d’autres modes d’amorçage en cas de problème (Wimboot, Grub2, memdisk). Je l’ai laissé activé, à voir à l’usage si j’en ai réellement besoin.

Theme Plugin

La page de documentation du plugin se trouve ici.

On peut donc aussi modifier l’apparence de Ventoy : ce dernier étant basé sur Grub2, tous les thèmes pour Grub peuvent être utilisés. Vous pouvez faire votre choix sur la page GRUB Themes – Gnome-Look.org., certains thèmes sont directement faits pour Ventoy.

Il suffit alors d’extraire le fichier du theme dans la partition 1 (il peut être utile de créer un dossier theme pour s’y retrouver !). Puis on procède toujours de la même façon avec le plugin VentoyPlugson, en lui indiquant le chemin du fichier theme.txt, et qui se chargera de modifier le fichier ventoy.json.

On voit que sur l’image ci-dessus, en bas à gauche, les infos de version et de « boot mode » sont peu lisibles (bleu sur fond noir). Pour corriger cela, il faudra aller dans le fichier ventoy.json et modifier la valeur du paramètre ventoy_color (ici, je l’ai passé en blanc):

$ more ventoy.json 
{
    "control":[
        { "VTOY_LINUX_REMOUNT": "1" },
        { "VTOY_DEFAULT_KBD_LAYOUT": "FRENCH" },
        { "VTOY_MENU_LANGUAGE": "fr_FR" }
    ],
    "theme":{
        "file": "/ventoy/adwaita/theme.txt",
        "ventoy_color": "#ffffff"
    },

Quant à la couleur du menu des touches fonctions, elle se définit dans le fichier theme.txt du thème (blanc par défaut avec mon thème) :

+ hbox{ 
    left = 30%
    top = 95%
    width = 10%
    height = 25
    + label {text = "@VTOY_HOTKEY_TIP@" color = "white" align = "left"} 

L’image de fond d’écran dans le dossier du thème est background.png. I lest donc facile de mettre le fond d’écran de votre choix si vous le souhaitez.

Menu class Plugin

La page de documentation du plugin se trouve ici.

Il ne reste plus qu’à ajouter icônes pour que ce soit parfait ! C’est très simple, on copie les icônes dans un sous-dossier icons du thème, puis on les lie au fichiers images. La « Key/Absolute Path » doit être une chaîne de caractère faisant partie du nom du fichier image, et « Menu Class » le nom du fichier de l’icône (debian.png, linuxmint.png, etc…).

Séparateur de menu

Voilà, avec tout ça, j’ai déjà une clef USB pas mal du tout ! Mais je n’ai pas trouvé comment insérer un séparateur dans le menu de présentation des différentes images, et je voulais séparer les images d’OS des outils Linux et Windows.

J’ai fini par créer des fausses images ISO avec genisoimage (en pointant sur un dossier vide de manière à obtenir un fichier ISO de petite taille) :

$ sudo apt install genisoimage
$ genisoimage -o separator.iso /home/pascal/emptydir/

que j’ai ensuite inséré dans le fichier ventoy.json :

"menu_alias":[
...
        {
            "image": "/ISO/menu-separator.iso",
            "alias": "-----"
        },
        {
            "image": "/ISO/menu-separator2.iso",
            "alias": "-----"
        }
    ],
"image_list":[
        "/ISO/debian-live-12.5.0-amd64-gnome.iso",
        "/ISO/linuxmint-21.3-cinnamon-64bit.iso",
        "/ISO/Windows-10-Pro-Home-v1803-FR-x64.iso",
        "/ISO/menu-separator.iso",
        "/ISO/gparted-live-1.6.0-1-amd64.iso",
        "/ISO/clonezilla-live-3.1.2-9-amd64.iso",
        "/ISO/systemrescue-11.00-amd64.iso",
        "/ISO/rescatux-0.74.iso",
        "/ISO/supergrub2-classic-2.06s2-beta1-x86_64_efi-CD.iso",
        "/ISO/menu-separator2.iso",
        "/ISO/HBCD_PE_x64.iso",
        "/WIM/Mini_Windows_10.wim"
    ]

J'ai du créer deux fichiers ISO car apparemment on ne peut pas afficher deux fois la même image dans le menu.

Voilà, j'ai désormais une belle clef USB multi-fonctions, prête à l'emploi et bien pratique ! Voir la première image de l'article pour avoir le rendu de toutes ces modifications.

La documentation de Ventoy est très complète, ne pas hésitier à s'y référer en cas de problème. Il existe aussi un forum assez actif semble-t-il, si vous avez des questions ou des besoins spécifiques.

Autres remarques

Clef USB

Selon ce que l'on veut installer comme images ISO sur sa clef, il faudra prévoir une taille suffisante pour celle-ci. Les images ISO peuvent prendre de la place, et la persistance, avec des fichiers de 4Go par exemple, peut vite remplir une clef.

D'autre part, travailler avec la session Live + persistance d'un OS peut se révéler intéressant en mode nomade, ce qui donne une autre possibilité d'utilisation de cette clef. Dès lors, il est bon de choisir une clef USB 3.0 afin d'améliorer la performance.

J'ai vu de belles clefs USB3 avec un double port USB Type A et USB Type C pour des capacités et un prix très raisonnable : 128 Go pour 16 €.

Car n'oublions pas que l'on peut utiliser comme on le souhaite la partition 1 de Ventoy (ou même en créer d'autres), rien n'empêche donc d'utiliser une clef comme ci-dessus pour la connecter aussi au smartphone, y copier des fichiers, etc... Cela fait un solution assez complète avec une seule clef à trimballer. 😎

MedicatUSB

Une autre solution clef en main existe, avec une multitude d'utilitaires plus ou moins utiles et redondants, MedicatUSB, et désormais basée sur Ventoy. Si vous cherchez une solution complète toute prête, plus orienté Windows à mon sens, cela peut être intéressant.

Il vous faudra une clef d'au moins 32 Go pour l'installer. On y trouve des antivirus, des outils de partitionnement, de sauvegarde et restauration, de réinitialisation de mots de passe, etc... C'est un peu la foire au logiciel !

L'archive à télécharger fait 21 Gb , et le site web n'explique pas grand chose. On trouve la procédure d'installation sur le site GBATemp (qui consiste à installer Ventoy puis extraire l'archive de medicatUSB sur la clef).

J'y ai juste pioché une image "mini Windows 10" qui peut se révéler pratique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *