Création d'une clé USB personnalisée pour un multiboot Linux

Préambule

De nombreux outils permettent de rendre une clé USB bootable tels que Rufus, Balena Etcher, UNetBootin... et certains permettent de créer des multiboot USB tels que Multisystem, Ventoy, Easy2boot...

Préparation de la clé USB

Formater et monter la clé USB

  1. Afin de ne pas faire d'erreur, il est nécessaire de cibler le bon support de stockage. Ainsi, il est nécessaire de lister les supports présents via le terminal :

Ceci retourne une liste des périphériques de stockage de masse. Exemple :

Ici, la clé usb est détectée en sdb. Elle contient une partition sdb1.

Pour rappel :

  1. Démonter la clé USB si elle est montée :

Important

Remplacer X par la lettre correspondant à la clé USB. le symbole * permet de cibler toutes les partitions susceptibles d'être montées.

  1. Formater la clé USB en créant une table de partition MBR :

Dans fdisk, taper 'o' pour créer une nouvelle table de partition GPT, puis 'w' pour écrire les changements.

Important

Penser à installer parted si ce n'est pas fait :

  1. Créer les partitions nécessaires (BIOS, EFI, DATA) :

Dans parted, exécuter les commandes suivantes :

Installer Grub sur le support

  1. Monter la partition :

  1. Installer GRUB pour le mode BIOS :

  1. Installer GRUB pour le mode UEFI :

La clé USB possède à présent tous les dossiers et fichiers nécessaires pour un démarrage.

Créer votre propre thème

Il est possible de créer son propre menu de manière relativement simple. Les opérations suivantes sont facultatives mais il est bon de savoir faire ce genre de personnalisation afin de brander ses propres clé USB avec le nom et le logo d'une marque, d'une organisation...

Création du dossier des thèmes

  1. Utiliser le commande mkdir comme suit :

Important

Remplacer #Le_nom_de_votre_theme par le nom que vous décidez de donner à votre thème

Créer ou choisir une image de fond

Chaque image de fond doivent être dans le format défini du menu. Deux choix s'offrent à nous :

Il est bien évidemment possible de créer son propre fond d'écran avec un logiciel (de préférence de dessin vectoriel) comme Inkscape (Linux et BSD) ou Illustrator (Windows et MacOS).

  1. Copier l'image dans le répertoire de votre thème :

Convertir la police de caractère de son choix

Créer sa propre police de caractère se révèle souvent très fastidieux mais les polices de caractère libres de droit courent le web. Plusieurs sites permettent de choisir une police qui nous convient. Quelques exemples :

Important

Afin de simplifier la suite de ce tutoriel, nous choisirons une police de caractère au format TTF (True type font)

Nous choisissons de convertir la police Ubuntu.ttf

  1. Installez la police de caractère :

Si vous obtenez un message d'erreur, il est possible qu'elle soit déjà présente sur votre système. Pour le vérifier, vous devrez taper la commande suivante :

Important

Si vous ne la trouvez pas à cet emplacement, essayez de la trouver dans un des emplacements suivants :

  1. /usr/share/fonts/truetype/

  2. ~/.local/share/fonts/ (dans votre répertoire personnel)

  3. ~/.fonts/ (un ancien emplacement, toujours utilisé sur certains systèmes

 

  1. Copiez la police dans le bon répertoire de notre clé USB. Par exemple :

  1. Convertir la police du format TTF à PF2

Note

Les fichiers .pf2 sont des polices bitmap spécialement formatées pour GRUB.

L'option -s 24 définit la taille de la police en sortie. Cette option est facultative.

Penser à supprimer la police ttf du dossier après conversion sudo rm /chemin/police.ttf

À présent, nous avons deux éléments visuels fondamentaux mais il nous faut aussi configurer l'agencement des éléments de notre thème.

Créer et adapter le fichier de configuration de son thème

  1. Créer le fichier :

  1. Écrire le fichier comme dans l'exemple suivant :

Fonctionnement du menu de démarrage

Création de la configuration

  1. Créer un fichier de configuration comme suit :

  1. Tapez le texte suivant en prenant en compte le nom de votre theme :

Nous allons expliquer chaque ligne du texte ci-dessus :

Importer un iso dans notre clé USB

  1. Télécharger un fichier iso depuis internet

    Rendez-vous à l'adresse suivante :

    https://clonezilla.org/downloads/download.php?branch=stable

    Téléchargez l'iso de la dernière version stable de clonezilla en sélectionnant iso au point 2 "file type" et attendre la fin du téléchargement.

  2. Créer un dossier pour stocker les fichiers iso sur la clé usb :

  1. Copier l'iso depuis le dossier des téléchargements vers la clé USB :

Important

Il est important de vérifier le chemin car si la distribution Linux est dans une autre langue, il se peut que le dossier Téléchargements soit nommé autrement, exemple "Downloads".

Intégrer l'ISO dans le menu

  1. Ouvrir de nouveau le fichier de configuration :

  1. Ajouter le texte suivant en fin de fichier en prenant en compte votre version de clonezilla :

Nous allons expliquer chaque argument du texte ci-dessus :

Sauvegarder la nouvelle configuration avec Ctrl+o appuyer sur Entrée et quitter avec Ctrl+x.

  1. Démonter la clé USB :

Il ne reste plus qu'à tester la clé USB afin de valider le fait que votre menu est personnalisé et que Clonezilla est bootable.

Importer un iso dans notre clé USB

Comme nous l'avons vu précédemment, il est possible d'importer un fichier iso sur notre clé usb et de lui créer une entrée de menu, permettant à l'utilisateur de booter dessus en choisissant l'entrée.

Nous allons reproduire l'opération avec un fichier iso plus conséquent que celui de clonezilla.

Warning

Il sera nécessaire de remonter la clé USB comme précédemment grâce à la commande mount.

Télécharger un fichier iso

  1. Rendez-vous sur le site de Distrowatch : https://distrowatch.com/

Pour l'exercice, nous choisirons de télécharger Rhino Linux qui est basé sur Ubuntu. Une fois le fichier complètement téléchargé, il suffit de le copier dans le dossier "/iso" de notre clé USB et d'ajouter les entrées de menu correctes.

Afin de définir correctement les entrées de menu à ajouter dans le fichier de configuration, il est essentiel de comprendre la structure du live CD (iso). Pour se faire, il est impératif d'inspecter sa structure en le montant et listant ses fichiers.

Important

Dans notre exemple, nous allons monter le fichier en amont pour vérifier que les routes vers les fichiers sont correctes.

Nous pouvons voir que le kernel se trouve être dans /casper/vmlinuz et le fichier initramfs dans /casper/initrd.lz et non dans /live comme pour notre iso de clonezilla.

  1. Nous allons donc insérer notre nouvelle entrée de menu afin de permettre le démarrage du live cd :

  1. Nous insérons ensuite notre nouvelle entrée en fin de fichier :

  1. Nous mettons ensuite à jour le GRUB :

Il ne reste plus qu'à tester notre clé USB multiboot afin de valider sa conformité en démarrant depuis un poste.

Importer un fichier ISO de distribution Linux "custom"

Dernière étape pour notre clé USB multiboot, l'import des distributions Linux personnalisées. (voir le tutoriel)

Comme précédemment, il suffira de monter la clé USB et de copier l'ISO dans le dossier /iso ou de copier le contenu de l'ISO dans un dossier au nom explicite. Pour cet exercice, nous copierons le contenu de l'ISO dans un dossier.

Pour se faire, nous devrons monter l'ISO et copier son contenu dans un dossier créé en amont. Ceci peut se faire de la manière suivante :

Ceci fait, il sera nécessaire de vérifier le contenu du dossier pour repérer les bonnes routes, comme précédemment dans l'ISO de Rhino Linux.

Une fois les routes clairement repérées, nous pourrons ajouter une nouvelle entrée de menu à notre fichier de configuration :

En y ajoutant les lignes correspondantes aux entrées réelles comme dans cet exemple :

Une fois ceci accompli, nous pouvons à nouveau mettre à jour le GRUB et démonter la clé USB :

Nous pouvons à présent effectuer le test en démarrant depuis un poste.