Comment créer un USB multiboot avec Linux

Comment créer un USB multiboot avec Linux

Objectif

Créer un périphérique USB démarrable contenant plusieurs distributions Linux.

Exigences

  • Un appareil USB avec suffisamment de taille pour contenir plusieurs ISO
  • Autorisations racinaires pour modifier les partitions de l'appareil et installer Grub

Difficulté

MOYEN

Introduction

Pouvoir exécuter un système d'exploitation entier directement à partir d'un support d'installation, c'est extrêmement utile: nous pouvons tester une distribution, l'utiliser à des fins de sauvegarde ou peut-être pour réparer un système existant. La façon habituelle de créer un support de démarrage est d'écrire une image système dd commande ou un outil dédié. Dans ce tutoriel, nous verrons comment créer un périphérique USB multiboot qui peut héberger plusieurs images de distribution.

Un mot sur le bios vs uefi

Uefi (Interface de firmware extensible unifié) C'est le firmware moderne créé en remplacement de l'héritage Bios (Système de sortie d'entrée de base). La majorité des distributions Linux récentes peuvent démarrer dans les deux modes sans problème: l'installateur ajustera automatiquement son comportement en conséquence.

Les deux firmwares sont, selon la norme, associées à une disposition spécifique de la table de partition: Uefi va de pair avec gp, alors que Bios vient avec le MSDOS un. Ces associations, cependant, ne sont pas strictement obligatoires, car, au moins en théorie, un Uefi Le firmware peut démarrer le processus de démarrage à partir d'un MSDOS Discage de disque et un héritage Bios le système peut faire de même à partir d'un gp disque partitionné.



Dans le premier cas le EFI La partition doit être la première sur le disque et être formatée avec le fat32 Fileystem, dans ce dernier, un Bios Boot La partition sans aucun système de fichiers devrait exister, nécessaire pour stocker l'étape 1.5, depuis sur un gp Disposez l'écart entre l'enregistrement de démarrage maître et la première partition n'existe pas (c'est là que cette étape de la planche est généralement installée).

Nous préparerons notre appareil à l'aide d'un traditionnel MSDOS Disposition, installation du chargeur de démarrage Grub en mode EFI et héritage pour pouvoir démarrer les distributions à la fois dans Uefi et Bios mode.

Préparer l'appareil

La première chose que nous devons faire est de préparer notre appareil. Nous créerons deux partitions, dans l'ordre:

  • Un EFI cloison
  • Une partition de données

Le premier est nécessaire pour démarrer dans Uefi Mode, puisque c'est où Grub-EFI est installé. La partition doit être formatée avec un fat32 système de fichiers. Théoriquement, la configuration fonctionnerait même avec cette partition, car nous pourrions également l'utiliser pour stocker les images de distribution que nous voulons utiliser. Cependant, dans ce cas, nous serions limités, puisque fat32 ne prend pas en charge les fichiers blonder que 4 Go, et certains ISO peuvent dépasser cette taille.

La deuxième partition sera formatée avec un système de fichiers pris en charge par Grub, et hébergera les images et les fichiers de configuration de Grub.

Pour le bien de ce tutoriel, je suppose que l'appareil que nous voulons préparer est / dev / sdb.

La table de partition et la partition EFI

La première chose à faire est de créer un MSDOS Tableau de partition sur l'appareil:

$ sudo séparé -s / dev / sdb mklabel msdos

Après cette étape, nous pouvons créer le EFI partitionner et le formater avec un fat32 système de fichiers. La taille recommandée pour la partition est 550 MIB: Sur les partitions plus petites, nous pourrions recevoir une erreur telle que «pas assez de grappes pour la graisse 32 bits»:

$ sudo séparé -s / dev / sdb mkpart primaire 1mib 551mib


Nous allons ensuite procéder à l'activation du en particulier et botte Frappeurs:

$ sudo séparés -s / dev / sdb set 1 esp sur $ sudo séparés -s / dev / sdb set 1 démarrer sur 

Enfin, nous devons créer le fat32 système de fichiers:

$ sudo mkfs.FAT -F32 / DEV / SDB1

La partition de données

L'autre partition que nous devons créer est la partition de données, qui hébergera les images ISO des distributions et les fichiers de configuration de Grub. Nous pouvons ajuster la taille de la partition à nos besoins: plus elle est grande, plus il sera en mesure de contenir. Ici, nous utiliserons tout l'espace restant sur l'appareil:

$ sudo séparé -s / dev / sdb mkpart primaire 551mib 100%

Nous pouvons formater la partition avec l'un des systèmes de fichiers pris en charge par Grub. Dans ce cas, j'utiliserai ext4:

$ sudo mkfs.ext4 / dev / sdb2

Créez les points de montage et montez les partitions

L'étape suivante consiste à monter le EFI Partition et la partition de données quelque part dans notre système afin que nous puissions créer les répertoires nécessaires, installer Grub et mettre nos fichiers ISO en place:

# Créez les points Mountpoints $ sudo mkdir / media / efi, data # montez la partition EFI $ sudo mont / dev / sdb1 / média / efi # montez la partition de données $ sudo mont / dev / sdb2 / média / data / data 

Installation du chargeur de démarrage Grub

Pour que notre appareil puisse travailler dans les deux héritage et Uefi Modes pour lesquels nous devons installer Grub et Grub pour EFI. Sur fedora le grub binaire ça s'appelle grub2 et pour générer une configuration personnalisée sur une configuration UEFI, l'installation du Grub2-EFI-modules un paquet est également nécessaire. Sur certaines autres distributions, le nom du binaire c'est juste «grub»:

# Installation de Legacy Grub2 Sudo Grub2-Install \ --Target = i386-pc \ --recheck \ --boot-directory = "/ media / data / boot" / dev / sdb # Installation de Grub pour EFI sudo grub2-install \ - -Target = x86_64-efi \ --recheck \ - -movable \ --efi-directory = "/ media / efi" \ --boot-directory = "/ media / data / boot" 

Comme vous pouvez l'observer, dans les deux cas, nous avons utilisé / média / data / démarrage Comme le directory de démarrage de Grub. Ce répertoire sera automatiquement créé lorsque les commandes ci-dessus seront lancées, et il hébergera les fichiers de configuration de GRUB.

Copiez les images et créez la bouffe.Fichier CFG

Pour créer ou mettre à jour une configuration de grub sur un système Linux moderne, nous exécutons généralement le grub2-mkconfig commande, ou, dans les distributions basées sur Debian, le mine de mise à jour wrapper-script. Ces outils effectuent automatiquement les opérations nécessaires.



Dans notre cas, cependant, nous devons nous salir les mains et créer la configuration manuellement. Toutes les distributions ne nécessitent pas les mêmes directives, mais ici verra quelques exemples courants. Nous devons d'abord créer le répertoire qui hébergera les images de nos distributions:

$ sudo mkdir / media / data / boot / iso

Éventuellement, nous voulons peut-être prendre possession de ce répertoire, pour pouvoir y déplacer des images plus facilement. En supposant un identifiant et gid de 1000, nous courions:

$ Sudo Chown 1000: 1000 / Media / Data / Boot / ISO

Maintenant, supposons que nous voulons inclure la dernière image Fedora Netinstall dans notre configuration. Nous devons d'abord télécharger l'image dans le / Média / Data / ISO annuaire:

$ wget -o / média / data / boot / iso / fedoraworkstation-netinst-x86_64-28-1.1.ISO \ https: // Télécharger.fedoraproject.org / pub / fedora / linux / releases / 28 / workstation / x86_64 / iso / fedoraworkstation-netinst-x86_64-28-1.1.ISO 

Ensuite, une fois le téléchargement terminé, nous devons ajouter une entrée pour cela dans le ver.CFG fichier dans le / Media / Data / Boot / Grub2 annuaire. Puisqu'il s'agit de la première entrée, nous ajoutons le fichier lui-même doit être créé:

MenuEntry "Fedora-workStation-netinst-x86_64-28-1.1 "isofile =" / boot / iso / fedoraworkstation-netinst-x86_64-28-1.1.ISO "LOOPBACK LOOP" $ isofile "Linux (LOOP) / ISOLINUX / VMLINUZ ISO-SCAN / FILENAME =" $ isofile "Inst.Stage2 = HD: Label = Fedora-Ws-DVD-X86_64-28 Quiet Initrd (LOOP) / ISOLINUX / INITRD.IMG 

La structure d'entrée c'est assez simple: nous avons défini le isofile variable, avec le chemin vers notre image comme valeur. Grub est capable de démarrer à partir d'un ISO Direty, et c'est ce que le boucler La commande est pour: dans l'exemple ci-dessus, l'image du système de fichiers sera montée et mise à disposition sur le boucle appareil.

La ligne commençant par linux contient le chemin de vmlinuz, qui est l'exécutable du noyau, ainsi que d'autres directives de démarrage. Parmi eux vous pouvez remarquer ISO-SCAN / Nom de fichier qui est nécessaire pour trouver l'image ISO sur le disque en utilisant le chemin spécifié.



Enfin, la ligne commençant par initrd Spécifie le chemin vers l'IniTrd. Tous ces chemins sont, évidemment, par rapport au dispositif de boucle, c'est pourquoi ils sont préfixés par le (boucle) notation.

Comment connaissons-nous les directives que nous devrions utiliser dans un cas spécifique? Une façon consiste à monter l'image quelque part dans notre système et à jeter un œil aux fichiers placés dans le répertoire IsoLinux. Cependant, la configuration pré-écrite existe déjà et est facile à trouver en ligne.

Un autre exemple, maintenant: nous allons ajouter la dernière image de version Ubuntu à notre périphérique de démarrage:

$ wget http: //.ubuntu.com / 18.10 / Ubuntu-18.10-desktop-amd64.ISO?_ga = 2.232120863.1006005768.1540658570-734439277.1540658570 \ -o / média / data / boot / iso / ubuntu-18.10-desktop-amd64.ISO 

Maintenant, nous ajoutons l'entrée au fichier de configuration:

MenuEntry "Ubuntu 18.10 - Essayez sans installer "isofile =" / boot / iso / ubuntu-18.10-desktop-amd64.ISO "LOOPBACK LOOP" $ ISOFILE "Linux (LOOP) / CASPER / VMLINUZ ISO-SCAN / FILENAME =" $ ISOFILE "BOOT = CASPER SIAUX SPLASH --- INITRD (LOOP) / CASPER / INITRD 

Voici à quoi devrait ressembler notre menu multiboot à ce stade:

Menu de grub multiboot

Réflexions de clôture

Dans ce tutoriel, nous avons vu comment créer un appareil multiboot-USB contenant de nombreuses images de distribution. Après cette configuration, nous serons en mesure de démarrer les deux sur le firmware UEFI, en choisissant l'image à lancer à partir du menu Grub.

Le
ver.La configuration CFG présentée ici est absolument minime et peut être personnalisée pour inclure de nombreux autres modules et ajuster d'autres paramètres comme le délai d'expiration de Grub: consulter la documentation officielle de Grub est le moyen idéal pour commencer à explorer les nombreuses possibilités.

Tutoriels Linux connexes:

  • Créer USB Bootable Manjaro Linux
  • Introduction à Grub Rescue
  • Comment créer USB MS Windows de démarrage sous Linux
  • Comment créer un USB multiboot avec Ventoy
  • Ubuntu 22.04 Ne pas démarrer: Guide de dépannage
  • Créer un ubuntu bootable 22.04 Disque de démarrage USB
  • Comment faire un USB amorçable à partir d'une ISO dans Linux
  • Choses à installer sur Ubuntu 20.04
  • Ubuntu 22.04 Sauvegarde et restauration du système
  • Créer un Ubuntu 20 bootable.04 Stick USB sur MS Windows 10