Forum Linux.débutant Étapes avancées de création d'un live USB

Posté par  . Licence CC By‑SA.
Étiquettes :
0
20
juin
2016

Bonjour à tous,

Je me créé une clé USB multiboot pour le BIOS et (U)EFI.

J'ai suivi la démarche indiqué à cette URL : Boot BIOS/EFI

1-Formater la clé avec une table de partitionnement GPT

2-J'ai créé avec cfdisk :

*1ère partition : 1Mo type BIOS avec cfdisk (que signifie le système de fichier EF02 sur le site?)
*2ème partition : 50Mo pour l'EFI avec cfdisk (que signifie le système de fichier EF00 sur le site?)
=>Ne trouvant pas de choix pour les 2 autres partitions, j'ai formaté avec l'utilitaire "disque"

3-Avec l'utilitaire Fedora "disque" :
*3ème partition : 3Go DATA type NTFS => permet à windows de voir la partition et de stocker des datas
*4ème partition : 4,7 Go DISTRIBUTION type FAT32 => permet de lancer plusieurs distributions avec grub2

4-Mettre partition de boot Hybrid UEFI GPT + BIOS GPT/MBR boot :
sudo gdisk /dev/sdc

5-Then, you can install GRUB for EFI with:
sudo grub2-install --target=x86_64-efi --efi-directory=/mnt/EFI --boot-directory=/mnt/DISTRI/boot --removable --recheck && sync

6-And for BIOS with:
sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --recheck /dev/sdc && sync

7-As an additional fallback, you can also install GRUB on your MBR-bootable data partition:
sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --recheck /dev/sdc4 && sync

A cette étape, erreur :

ERREUR=> 
[pc-bureau-jo@localhost ~]$ sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --recheck /dev/sdc4 && sync
Mot de passe [sudo] de pc-bureau-jo :
Installing for i386-pc platform.
grub2-install : attention : Le système de fichiers « fat » ne prend pas en charge l'embarquage.
grub2-install : attention : L'embarquage est impossible. GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée..
grub2-install : erreur : refus de continuer avec les listes de blocs.

Le système FAT32 n'est pas supporté par GRUB?

Aussi, que signifie le système de fichier EF02 et EF00?

Merci par avance.

  • # Types de partition

    Posté par  (site web personnel) . Évalué à 4.

    Aussi, que signifie le système de fichier EF02 et EF00?

    Ce ne sont pas des systèmes de fichiers, mais des types de partition, ou plus exactement, des identifiants utilisés par les outils de partitionnement GPT fdisk pour désigner les types de partition suivants :

    • EFI system partition : c'est ce qui indique qu'une partition donnée doit être prise en compte par l'UEFI de la carte mère, qui va chercher à y lire un système de fichiers FAT (ou éventuellement autre chose qu'elle prendrait en charge, comme un HFS+ chez Apple) pour y chercher un fichier à exécuter comme chargeur de démarrage. Dans ton cas, cette partition sera formatée en FAT 32 et contiendra l'exécutable principal de GRUB.
    • BIOS boot partition : c'est ce qui indique à un chargeur de démarrage pour BIOS qu'il peut s'y installer. C'est nécessaire parce qu'en partitionnement MBR, ou dans la MBR de compatibilité d'une GPT, la place pour le code de démarrage est réduite à 512 octets, ce qui est insuffisant pour y placer quelque chose comme GRUB. Avec une pure MBR, il y a un espace interstitiel entre la table de partition et la première partition, où GRUB peut aller installer son code. En revanche, avec une GPT, cet espace n'existe pas et il est donc nécessaire de dédier une partition à cet usage. À noter que cette partition n'est pas destinée à être formatée, GRUB ira simplement y écrire linérairement son code, sans système de fichier.
  • # Installation de GRUB

    Posté par  (site web personnel) . Évalué à 4.

    Le système FAT32 n'est pas supporté par GRUB?

    Non, en tout cas pas pour y embarquer GRUB. J'explique. Pour pouvoir être chargé au démarrage par un BIOS, GRUB doit être écrit quelque part sur le périphérique, de façon linéaire. Traditionnellement, il s'installait ainsi dans l'espace interstitiel situé entre la MBR et la première partition. Ce n'est pas possible avec un partitionnement GPT, où cet espace n'existe pas, c'est pourquoi il faut alors dédier une partition à GRUB, ce que tu as fait.

    l existe une autre alternative, qui consiste à l'embarquer dans une zone dédiée à cela dans un système de fichier prévu pour cet usage, c'est à dire un système de fichier qui laisse volontairement sur sa partition une zone qu'il n'utilisera pas. Avec ta commande grub-install […] /dev/sdc4, c'est ce que tu essaies de faire, sans doute par erreur : installer GRUB dans un espace libre sur /dev/sdc4. Sauf que cette partition est formatée en FAT, et que le système de fichiers FAT n'a pas de zone réservée à cet usage, d'où :

    grub2-install : attention : Le système de fichiers « fat » ne prend pas en charge l'embarquage.

    Il y a une autre possibilité, qui consiste à installer GRUB comme un fichier, qui peut donc très bien se retrouver sur le périphérique en plusieurs blocs non adjacents, et qui ne pourra donc pas être chargé tel quel par le BIOS. Il faut ensuite déterminer les adresses de ces blocs, et créer un code qui demande au BIOS de charger ces blocs. Cette méthode utilise une liste de blocs, et c'est effectivement moins fiable, donc refusé par GRUB par défaut :

    grub2-install : attention : L'embarquage est impossible. GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée..
    grub2-install : erreur : refus de continuer avec les listes de blocs.

    Il faut donc que tu utilises la méthode standard, en demandant à GRUB de s'installer sur ta clef, et non pas sur une partition, avec un grub-install /dev/sdc. Il trouvera tout seul la partition que tu lui as dédiée, et s'y installera sans problème.

    • [^] # Re: Installation de GRUB

      Posté par  . Évalué à 1.

      C'est ce qui a été fait :

      sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --recheck /dev/sdc && sync

      Mais dans la partition DISTRI, je ne suis pas sur que grub2 trouve tout seul les .iso que je vais mettre dans /DISTRI/_ISO/.

      C'est bête mais j'ai déjà installé grub avec cette ligne :

      sudo grub2-install --target=x86_64-efi --efi-directory=/mnt/EFI --boot-directory=/mnt/DISTRI/boot --removable --recheck && sync

      Pourquoi ne pas installer lancer cette ligne de la même manière? (--boot-directory=/mnt/DISTRI/boot)

      sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --removable --recheck && sync

      Il faut modifier le fichier grub.cfg mais ou le modifier aussi, …

      Dans DISTRI, j'ai le dossier grub2 avec :
      -dossier fonts
      -fichier grubenv
      -dossier i386-pc
      -locale
      -x86_64-efi

      • [^] # Re: Installation de GRUB

        Posté par  . Évalué à 1.

        En bootant sur la clé j'obtiens ceci :

        Minimal BASH-like line editing is supported. For the first word. TAB lists possible command completions.
        Anywhere else TAB lists possible device or file completions.

      • [^] # Re: Installation de GRUB

        Posté par  (site web personnel) . Évalué à 3.

        C'est ce qui a été fait :

        sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --recheck /dev/sdc && sync

        Parfait. Ça installer l'exécutable de GRUB sur la partition que tu as dédiée à cela, puis ça installe dans la MBR un code qui demande au BIOS de l'exécuter.

        Mais dans la partition DISTRI, je ne suis pas sur que grub2 trouve tout seul les .iso que je vais mettre dans /DISTRI/_ISO/.

        Ça c'est sûr, il ne les trouvera pas « tout seul ». GRUB n'est pas un outil magique, il fait ce que tu lui dit, et il est certes capable de lire le contenu d'une image de système de fichiers, mais encore faut-il le lui demander.

        C'est bête mais j'ai déjà installé grub avec cette ligne :

        sudo grub2-install --target=x86_64-efi --efi-directory=/mnt/EFI --boot-directory=/mnt/DISTRI/boot --removable --recheck && sync

        Tu as effectivement déjà installer GRUB pour UEFI, ce qui a mis l'exécutable correspondant dans /mnt/EFI, où je suppose que tu avais montée la partition système EFI que tu avais définie et formatée précédemment. Il est normal de devoir utiliser une seconde commande pour installer GRUB pour BIOS (autrement dit GRUB PC), si tu veux que ta clef soit démarrable sur les deux systèmes.

        Pourquoi ne pas installer lancer cette ligne de la même manière? (--boot-directory=/mnt/DISTRI/boot)

        sudo grub2-install --target=i386-pc --boot-directory=/mnt/DISTRI/boot --removable --recheck && sync

        Parce que, là où GRUB EFI s'installer sur le système de fichiers d'un partition système EFI (--efi-directory=/mnt/EFI), GRUB PC s'installer sur un périphérique complet (/dev/sdc).

        Il faut modifier le fichier grub.cfg mais ou le modifier aussi, …

        Alors là, ça va dépendre de ce que tu veux faire. À ce niveau de personnalisation de clef USB démarrable, il faut vraiment que tu te familiarise avec le fonctionnement de GRUB et sa configuration.

        Dans DISTRI, j'ai le dossier grub2 avec :
        -dossier fonts
        -fichier grubenv
        -dossier i386-pc
        -locale
        -x86_64-efi

        C'est normal, même si je trouve vraiment affreux de mettre ça dans …/DISTRI plutôt que le standard …/boot.

  • # FAT 32

    Posté par  (site web personnel) . Évalué à 3.

    *4ème partition : 4,7 Go DISTRIBUTION type FAT32 => permet de lancer plusieurs distributions avec grub2

    Au fait, pourquoi FAT 32 ? Cette partition n'est pas destinée à être utilisée sous Windows, et il devrait sembler évident que FAT 32 n'est pas le système de fichier idéal pour travailler sous Linux, tant il est déficient (pas de liens symboliques, notamment).

    Pour info, si tu avais utilisé quelque chose comme Ext2, ta dernière commande, d'installation de GRUB embarqué dans une partition, aurait correctement fonctionné, bien qu'elle ne serve en pratique à rien du tout.

    • [^] # Re: FAT 32

      Posté par  . Évalué à 1.

      Elle sert à embarqué des OS sous format ISO. Pourquoi elle ne sert à rien du tout?

      Ext2 pourquoi pas, à voir mais dans le tuto que j'avais vu, il était dit FAT32

      • [^] # Re: FAT 32

        Posté par  . Évalué à 1.

        Tuto

        C'est au niveau des partitions :

        "Nous avons le choix de la formater en FAT 32 ou en NTFS. NTFS ne sera utile que si l'on désire enregistrer des fichiers dont la taille dépasse 4 Go. Puisque nous destinons notre clé à la réalisation de backups de partitions, prévoyons cette hypothèse et choisissons de formater en NTFS. Nous appellerons cette partition par exemple « Fichiers ». Si l'on veut se réserver le maximum de place pour d'éventuelles sauvegardes, elle doit être de la plus grande taille possible, une fois déterminée la taille de la seconde partition contenant Redo Backup & Recovery et les outils complémentaires."
        Il n'y a pas de raison apparante, peut être juste FAT32 pour windows, …

        • [^] # Re: FAT 32

          Posté par  (site web personnel) . Évalué à 3.

          Pas la peine de te fatiguer, comme le mentionne ce tutoriel de façon un peu laconique et simplifiée, Windows est incapable de lire plusieurs partitions sur un périphérique externe, et s'arrêtera à la première. Quoi que tu fasse, toutes les autres seront inaccessibles depuis ce système d'exploitation, il est donc inutile d'essayer de les adapter, ça ne changera rien.

      • [^] # Re: FAT 32

        Posté par  (site web personnel) . Évalué à 3.

        Elle sert à embarqué des OS sous format ISO.

        Non, elle ne sert pas à ça. Vraiment, ça n'a rien à voir.

        Pourquoi elle ne sert à rien du tout?

        Parce que, elle installe GRUB en début de partition, dans un espace non utilisé par le système de fichiers, du moins elle le ferait si le système de fichier en question était prévu pour cela, ce qui n'est pas le cas avec FAT. Et que, à moins d'utiliser ensuite un micro-chargeur de démarrage qui va charger ce code, cette installation sera tout simplement inutilisée.

        • [^] # Re: FAT 32

          Posté par  . Évalué à 1.

          Donc si je comprends bien, la manip faite sous arch linux concerne les BIOS type BIOS et EFI.
          L'OS supporté avec toutes ces partitions est linux, non windows.

          Heu, !! On se fou de savoir si windows sait lire toutes les partitions puisqu'on utilise la clé au démarrage seulement. Donc la partition distri en ext2 et le tour est joué alors !?

          • [^] # Re: FAT 32

            Posté par  (site web personnel) . Évalué à 3.

            Donc si je comprends bien, la manip faite sous arch linux concerne les BIOS type BIOS et EFI.
            L'OS supporté avec toutes ces partitions est linux, non windows.

            En effet.

            Heu, !! On se fou de savoir si windows sait lire toutes les partitions puisqu'on utilise la clé au démarrage seulement.

            Elle ne sera pas utilisée qu'au démarrage, mais également lors de l'utilisation du système que tu auras ainsi démarré, évidemment.

            Donc la partition distri en ext2 et le tour est joué alors !?

            Ça dépend, quel tour ? Si tu parles de l'étape inutile d'installation de GRUB sur l'espace réservé d'une partition, oui, si elle est en Ext2, ça marchera, mais comme ça ne sert à rien, ce n'est pas la peine de te fatiguer avec ça.

            • [^] # Re: FAT 32

              Posté par  . Évalué à 1. Dernière modification le 21 juin 2016 à 18:38.

              Si mon PC a un système BIOS classique, je boot sur la 1ère partition ? du nom de bios !

              Si mon PC a un système EFI, je boot sur la 2ème partition ? du nom de EFI !

              Alors, à quoi sert la 3ème partition sur laquelle ils installent grub?
              Ils disent :
              "As an additional fallback, you can also install GRUB on your MBR-bootable data partition"

              • [^] # Re: FAT 32

                Posté par  . Évalué à 1. Dernière modification le 21 juin 2016 à 21:47.

                La clé est fonctionnelle. J'ai compris un peu mieux ce que j'ai fait.

                Par contre, certains fichiers ISO nécessitent une écriture particulière dans le menuentry du fichier de config grub.cfg.

                Exemple :
                -systemrescueCD
                -fedora live CD
                - …

                Basiquement, si un ISO est bootable :

                    menuentry "Ubuntu Desktop ISO" {
                     loopback loop /ubuntu.iso
                     linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject noprompt splash --
                     initrd (loop)/casper/initrd.lz
                    }
                
                    menuentry "[Entry's title in the grub screen]" { 
                    set isofile="[path to ISO file]" 
                    loopback loop [boot partition in Grub language]$isofile 
                    [some specific] arguments
                    }
                

                Je cherche le menu entry de :
                -windows Xp, 7, Vista sur CD
                -fedora 23 (ou 24 maintenant)
                - …

                Si vous avez des menuentry qui fonctionnent, je suis preneur.

                Exemple de création d'une clé bootable : Clé USB bootable grub

                Merci pour vos réactions et réponses.

                • [^] # Re: FAT 32

                  Posté par  (site web personnel) . Évalué à 3.

                  Par contre, certains fichiers ISO nécessitent une écriture particulière dans le menuentry du fichier de config grub.cfg.

                  C'est simplement pour que GRUB les monte pour pouvoir aller y lire le noyau et l'initrd qui sont dedans.

                  Note que, si ça permet bien de charger noyau et initrd, ça ne permet réellement de lancer un système que si celui-ci a été prévu pour cet usage. En effet, l'initrd va demander au noyau de charger un système de fichiers où est installé tout le système d'exploitation, et pour ça, il doit pouvoir le trouver. Si le système, ou plus précisément son initrd, n'a pas été prévu pour être ainsi utilisé avec une image ISO, il cherchera un disque optique, ne trouvera pas, et affichera un beau message d'erreur. S'il a été prévu pour cela, il cherchera soit un disque optique, qu'il ne trouvera pas, soit une clef USB, qu'il trouvera, puis sur laquelle il cherchera une image ISO, qu'il utilisera pour cela.

              • [^] # Re: FAT 32

                Posté par  (site web personnel) . Évalué à 3.

                Si mon PC a un système BIOS classique, je boot sur la 1ère partition ? du nom de bios !

                Non. Un BIOS ne démarre pas sur une partition, il ne sait même pas ce que c'est. Il démarre sur un périphérique, qui contient dans sa MBR du code de démarrage. Avec GRUB, ce code de démarrage contient de quoi aller immédiatement exécuter un code situé ailleurs :

                • en partitionnement MBR pur, dans l'espace interstitiel entre la MBR et la première partition ;
                • en partitionnement GPT, dans une partition dédiée à cela.

                Si mon PC a un système EFI, je boot sur la 2ème partition ? du nom de EFI !

                Là, pour le coup, EFI sait ce que c'est qu'une partition. Quand on lui demande de démarrer sur un périphérique amovible, il va chercher dedans une partition de type “EFI system partition”, lit son système de fichiers (s'il le prend en charge, sinon c'est mort, donc n'essaie pas de faire des partitions système EFI en Ext2, ça ne sera certainement pas pris en charge) et y cherche un fichier nommé /efi/boot/boot<platform>.efi, c'est à dire dans le cas le plus courant bootx64.efi, pour l'exécuter.

                Alors, à quoi sert la 3ème partition sur laquelle ils installent grub?

                À rien.

                • [^] # Re: FAT 32

                  Posté par  . Évalué à 1.

                  Je regarde le reste plus tard mais :

                  s'il le prend en charge, sinon c'est mort, donc n'essaie pas de faire des partitions système EFI en Ext2, ça ne sera certainement pas pris en charge

                  A priori sur mon pc le plus recent c'est pris en charge. (J'avais juste formaté en ext2 depuis l'utilitaire Disque sous fedo mais il y a quand meme marqué système EFI du coup avec les commandes de grub2-install …)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.