Création d’une clé USB multiboot bios et UEFI

Il existe plein d’utilitaires géniaux qui font ça très bien, mais est-ce vraiment si compliqué de le faire à la main ? On n’a besoin que des outils déjà installés sur n’importe quel distribution GNU/Linux:

  • un outil de partitionnement: parted
  • un chargeur de démarrage: Grub2
  • Un éditeur de texte: vi, emacs, ou même kwrite, gedit …

Si le poste à partir duquel on prépare la clé n’est pas en UEFI, installation des paquets manquants

dnf install grub2-efi-x64-modules

Procédure

L’ensemble des commandes sont à lancer dans un shell superutilisateur: sudo -s

  1. Partitionnement et formatage de la clé (/dev/sdd)

    parted -s /dev/sdd mklabel msdos
    parted -s /dev/sdd mkpart primary 1MiB 551MiB
    parted -s /dev/sdd set 1 esp on
    parted -s /dev/sdd set 1 boot on
    mkfs.fat -F32 /dev/sdd1
    parted -s /dev/sdd mkpart primary 551MiB 100%
    mkfs.ext4 /dev/sdd2
    
  2. Création de points de montage temporaires et montage des partitions
    mkdir /media/efi /media/data
    mount /dev/sdd1 /media/efi
    mount /dev/sdd2 /media/data
    
  3. Installation des chargeurs de démarrage (bios et uefi)
    grub2-install --target=i386-pc --recheck --boot-directory="/media/data/boot" /dev/sdd
    grub2-install --target=x86_64-efi --recheck --removable --efi-directory="/media/efi" --boot-directory="/media/data/boot"
    
  4. Création du répertoire d’accueil des isos
    mkdir /media/data/boot/iso
    chown 1000:1000 /media/data/boot/iso
    
  5. Téléchargement des ISOs et copie dans /media/data/boot/iso
  6. Modification (ou création) du fichier /media/data/boot/grub2/grub.cfg
    set timeout=30
    set color_normal=cyan/blue
    set color_highlight=white/blue
    
    menuentry "Fedora-Workstation-KDE-Live-x86_64-29-1.2" {
        isofile="/boot/iso/Fedora-KDE-Live-x86_64-29-1.2.iso"
        loopback loop "${isofile}"
        linux (loop)/isolinux/vmlinuz iso-scan/filename="${isofile}" root=live:CDLABEL=Fedora-KDE-Live-29-1-2 rd.live.image quiet
        initrd (loop)/isolinux/initrd.img
    }
    
    menuentry "Fedora-Workstation-KDE-Live-x86_64-30-1.2" {
        isofile="/boot/iso/Fedora-KDE-Live-x86_64-30-1.2.iso"
        loopback loop "${isofile}"
        linux (loop)/isolinux/vmlinuz iso-scan/filename="${isofile}" root=live:CDLABEL=Fedora-KDE-Live-30-1-2 rd.live.image quiet
        initrd (loop)/isolinux/initrd.img
    }
  7. Démontage, nettoyage et test de la clé en démarrant dessus
    umount /media/efi /media/data
    rmdir /media/efi /media/data

Leave a Reply

Your email address will not be published. Required fields are marked *

ninety six − = ninety one