126 votes

Comment créer des supports de démarrage USB live UEFI-only?

Avoir des médias en direct qui peuvent démarrer des deux façons peut poser problème lors de l'installation d'Ubuntu sur des ordinateurs Windows 8 actuellement disponibles.

En d'autres termes, le principal avantage de la création de médias en direct USB amorçables uniquement en UEFI est : Vous savez qu'il a définitivement démarré et été installé via UEFI.

Étant donné que Valve a déjà utilisé des installeurs USB d'amorçage uniquement en UEFI avec leur Steam OS basé sur Debian et UNetbootin - l'alternative la mieux notée au Créateur de disque de démarrage d'Ubuntu - n'est pas compatible avec l'UEFI et donc trompeuse, je pense que nous devrions avoir un sujet distinct pour la création de médias en direct USB amorçables uniquement en UEFI.

150voto

David Grant Points 8477

Vue d'ensemble

La création d'un support USB live pour le démarrage uniquement de l'UEFI est assez simple. Il suffit de copier les fichiers dans votre Formaté en FAT32 Clé USB. C'est ça !

Rappelez-vous que pour une installation ou un démarrage du média :

  • Vous devrez peut-être encore explicitement dites à votre ordinateur de démarrer le média via UEFI .
  • A Table de partition GPT comme dans les préinstallations de Windows 8 et plus est recommandé.
  • N'oubliez pas de créer une partition après avoir créé la table de partition.
  • Utilisez les dernières AMD64 (LTS) ISOs, parce que ceux-ci contiennent définitivement des chargeurs de démarrage UEFI.

Table des matières

  • Copier les fichiers de la méthode ISO
    1. Exemple via le terminal
    2. Exemple via l'interface graphique
    3. Exemple sur Windows
  • La méthode de bouclage ISO (avancée)
    1. Création du binaire
    2. Création du fichier de configuration
    3. Ajout de la persistance
    4. Vérification de l'intégrité
    5. Boot sécurisé UEFI
  • Révision en 2020

1. Copiez les fichiers de la méthode ISO

Cette méthode fonctionne également pour d'autres supports d'installation qui contiennent des chargeurs EFI, comme Windows par exemple.

1.1. Exemple via le terminal

Vous pouvez faire quelque chose comme ce qui suit si 604A-00EA est votre clé USB et vous avez déjà p7zip installé :

$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/

Vous avez terminé si vous n'avez qu'une seule partition sur cette clé USB, sinon vous devez marquer la partition comme étant amorçable, par exemple via la fonction parted :

# parted /dev/sdX set 1 boot on

/dev/sdX serait votre clé USB et 1 le numéro de la partition qui doit être utilisée pour le démarrage.

1.2. Exemple via l'interface graphique

  1. Montez le fichier .iso et copiez son contenu sur votre clé USB. Appuyez sur Ctrl + H dans Nautilus pour afficher et copier les fichiers cachés également.

    nautilus showing Disk Image Mounter in context menu when .iso-file is selected

  2. Ajouter le drapeau de démarrage via GParted .

    GParted showing how to manage partition flags

1.3. Exemple sous Windows

  1. Même chose que ci-dessus, il suffit de copier les fichiers.
  2. Appuyez sur Windows/Super + X Allez dans Gestion des disques et vérifiez si la partition est marquée comme active. Sur les versions de Windows antérieures à Windows 8, vous appuyez sur Windows/Super + R pour ouvrir le menu d'exécution et ouvrir diskmgmt.msc qui ouvrira la gestion des disques.

2. La méthode de bouclage ISO (avancée)

Au lieu d'extraire le contenu d'une image ISO, Grub et GRUB2 ont été capables de démarrer à partir d'images ISO directement par le biais d'un périphérique de bouclage. Étant donné que l'image ISO est amorçable par UEFI, nous pouvons configurer une clé USB contenant plusieurs ISO avec différents systèmes d'exploitation sans créer de désordre sur la clé USB.

Si vous voulez aussi amorcer Windows, vous pouvez regarder à <a href="https://superuser.com/q/267385/252532">SARDU </a>. Je me souviens l'avoir utilisé avec Windows PE vers 2005 et il semble avoir été mis à jour pour prendre en charge les clés USB et l'UEFI, mais n'oubliez pas que cet outil prend également en charge le démarrage traditionnel.

De quoi avons-nous besoin ?

  • Connaissance très basique des fichiers de configuration de Grub.
  • Connaissance très basique du démarrage UEFI et de Grub, car nous allons générer notre propre image de bootloader Grub avec un grand nombre de modules inclus.
  • Une image ISO amorçable UEFI, une clé USB formatée FAT et une machine qui fonctionne sous Linux.
    • Non, nous n'avons pas besoin d'une installation UEFI de Linux (qui peut être une situation de poule et d'œuf), une VM Linux traditionnelle comme dans VirtualBox est très bien.

2.1. Création du binaire

Sur votre machine Ubuntu ou VM, assurez-vous que le paquet Grub-efi-amd64-bin est installé (Grub-efi-ia32-bin est également disponible pour les architectures Intel 32 bits sur les versions plus récentes). Le paquet peut avoir un nom différent sur une autre distribution, vous pouvez comparer l'adresse liste des fichiers du paquet pour trouver le bon paquet sur votre distribution.

La commande suivante va générer l'image Grub, dans ce cas un binaire EFI que tout ordinateur avec un firmware UEFI devrait pouvoir exécuter :

grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
 fat iso9660 part_gpt part_msdos \
 normal boot linux configfile loopback chain \
 efifwsetup efi_gop efi_uga \
 ls search search_label search_fs_uuid search_fs_file \
 gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
 exfat ext2 ntfs btrfs hfsplus udf

Chaque standard Le micrologiciel UEFI devrait se pencher sur \EFI\BOOT\ pour un fichier nommé boot{arch}.efi Pour cela, créez les dossiers sur la clé USB et copiez l'image que nous venons de créer à cet endroit. D'autres architectures au lieu de x64 sont possibles, mais restons simples avec x64/amd64.

2.2. Création du fichier de configuration

Un exemple très basique pour une grub.cfg qui doit être placé dans le même répertoire que le fichier de configuration bootx64.efi ressemblerait à ceci :

set timeout=3
set color_highlight=black/light-magenta

menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
        set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
        initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
    menuentry 'Ubuntu' {
            chainloader /efi/ubuntu/grubx64.efi
    }
    menuentry 'Windows' {
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
    }
    menuentry 'Firmware Setup' {
            fwsetup
    }
}

La chose importante est le bloc de configuration avec le titre Boot Ubuntu 14.04.2 LTS from ISO . Vous pouvez modifier la couleur et le délai d'attente selon vos préférences. J'ai choisi black/light-magenta car elle ressemble toujours un peu à Ubuntu, mais elle est facilement reconnaissable lors du chargement en chaîne d'autres configurations. Vous pouvez trouver plus d'exemples pour d'autres distributions dans la section Arch Wiki et la lecture du Grubmanuel vaut vraiment le coup si vous voulez aller plus loin.

Pour en revenir au bloc de configuration, il devrait être évident que l'ISO est référencé en tant que /efi/boot/ubuntu-14.04.2-desktop-amd64.iso alors copiez votre ISO vers \EFI\BOOT\ et remplacer ubuntu-14.04.2-desktop-amd64.iso dans la configuration avec le nom de fichier réel de votre ISO.

loopback loop $isofile est la ligne, qui chargera notre fichier ISO sur un périphérique loopback à partir duquel nous pourrons démarrer le noyau Linux directement. Ceci est possible parce que notre image EFI Grub inclut le module loopback. (Un peu d'essais et d'erreurs ont été nécessaires pour déterminer quels modules il est raisonnable d'inclure. Vous ne devriez pas voir de messages d'erreur, ce n'est toujours pas parfait cependant). En parlant du noyau, vous pouvez ajouter des paramètres du noyau comme toram des paramètres pour différentes langues (exemple locale=de_DE bootkbd=de ) et comme dans l'exemple : persistent

2.3. Ajout de la persistance

Vous pouvez ajouter une partition comme décrit dans : Comment faire pour qu'une live-USB utilise une partition pour la persistance ? Ou vous pouvez créer un casper-rw et placez-le à la racine de votre clé USB.

dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw

Je n'ai pas testé quel est le maximum absolu, il devrait se situer quelque part entre 4094 et 4096 Mo. Utilisez une partition si vous avez l'intention d'utiliser plus d'espace. Notez que toute modification de la (racine) est une modification du système de fichiers superposé, même la suppression de fichiers.

2.4. Vérification de l'intégrité

Vous devez regarder les réponses aux questions suivantes pour vérifier que le contenu de Live ISO sur le lecteur USB est en parfait état :

2.5. Boot sécurisé UEFI

Secure Boot va devenir obligatoire avec les machines Windows 10, je vous suggère de jeter un coup d'œil au PreLoader de la Fondation Linux pour ajouter la fonctionnalité Secure Boot à cette configuration. Voici quelques Art ASCII illustrant les menus de l'outil de hachage correspondant. .

3. Révision en 2020

J'ai écrit cette réponse il y a plus de 5 ans. Est-ce que cela fonctionne toujours ? Il fonctionne bien pour Ubuntu. Le fichier install.wim des dernières images Windows 10 dépasse cependant la taille maximale du fichier FAT32 et les images plus grandes comme RHEL 8 ne conviennent pas non plus. J'ai essayé Rufus hier et j'ai remarqué qu'il utilise Grub aussi avec les modules NTFS EFI pour lire une autre partition NTFS où il a stocké les fichiers d'installation de Windows. Il n'a pas réussi à charger les données de cette partition cependant. De plus, l'exFAT est maintenant monnaie courante.

Windows est pointilleux avec les disques qui n'ont pas de tables de partition. Essayer de transformer les anciens disques SSD en grosses clés USB ne fonctionne pas très bien sous Windows. Il faudrait peut-être que je lise un peu la documentation de Microsoft pour comprendre pourquoi c'est un peu plus compliqué que sous Linux.

ChromeOS est un sujet différent, je pense qu'il n'est pas possible de créer des supports de récupération de la manière que je préfère. Ce qui est encombrant quand vous devez utiliser Windows et reformater le disque entier pour créer un support pour votre Chromebook.

C'est intéressant, espérons que je trouve le temps de corriger certaines choses et d'en apprendre d'autres.


Félicitations, je dirais que vous maîtrisez maintenant le démarrage UEFI et que vous ne devriez plus avoir peur.

5voto

sudodus Points 39902

Extrait d'un fichier ISO vers FAT32

Extraire le contenu d'un fichier ISO de bureau Ubuntu 64 bits vers une partition avec un système de fichiers FAT32 et un indicateur d'amorçage fera le travail : créer un lecteur en direct qui démarre uniquement en mode UEFI. Cela s'appelle la méthode 'Copier les fichiers à partir de l'ISO' ici (dans la réponse acceptée).

Tester si vous exécutez en mode UEFI ou BIOS

Mais il est facile de tester dans un système Ubuntu en cours d'exécution (à la fois en direct et installé), s'il a été démarré en mode UEFI ou BIOS. Exécutez cette ligne de commande,

test -d /sys/firmware/efi && echo efi || echo bios

Cela rend simple l'utilisation de systèmes en direct pouvant être utilisés dans les deux modes de démarrage, ce qui peut également être un avantage.

Voir également les liens suivants pour une explication plus détaillée et une description de la méthode,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

3voto

sup Points 4380

En utilisant dd a fonctionné pour moi, pour une raison quelconque, la version GUI n'a pas fonctionné. Donc, premièrement, vous pourriez vouloir surveiller la progression de dd, une autre option est d'utiliser l'option SIGUSR1 pour déclencher dd pour rapporter sa progression périodiquement, mais c'est plus compliqué que pv.

Ensuite:

sudo dd if=chemin/vers/fichier/image | pv | sudo dd of=/dev/dispositif_que_vous_voulez_utiliser

(/dev/dispositif_que_vous_voulez_utiliser sera généralement /dev/sdb, mais vérifiez avec df!)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X