Forum Linux.débutant Création d'une clé USB multiboot BIOS + EFI

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
2
7
nov.
2016

Bonjour à tous.

Je cherche à créer une clé USB multiboot.

Voici les étapes que j'ai déjà réalisées :
1-formater ma clé en GPT
2-créer plusieurs partitions avec cfdisk :
*1 : 1M = bios
*2 : 50M = EFI en FAT32
*3 : 25G = DATA en FAT32
*4 : 32G = DISTRIBUTIONS en ext4

J'utilise l'utilitaire DISK pour formater la partition 3 et 4 en FAT32 et EXT4 puis la 2ème en FAT32.

J'arrive à monter la 3ème partition mais non la 2ème qui est de type EFI !

Après j'utiliserais cette ligne de commande :

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

J'ai suivi le tutoriel présent sur cette page :
Hybrid UEFI GPT + BIOS GPT/MBR boot

J'avais également fait ceci :

    GDISK :

[jo@localhost ~]$ sudo gdisk /dev/sdd
[sudo] Mot de passe de jo : 
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): r

Recovery/transformation command (? for help): h

WARNING! Hybrid MBRs are flaky and dangerous! If you decide not to use one,
just hit the Enter key at the below prompt and your MBR partition table will
be untouched.

Type from one to three GPT partition numbers, separated by spaces, to be
added to the hybrid MBR, in sequence: 1 2 3
Place EFI GPT (0xEE) partition first in MBR (good for GRUB)? (Y/N): N

Creating entry for GPT partition #1 (MBR partition #1)
Enter an MBR hex code (default EF): 
Set the bootable flag? (Y/N): N

Creating entry for GPT partition #2 (MBR partition #2)
Enter an MBR hex code (default EF): 
Set the bootable flag? (Y/N): N

Creating entry for GPT partition #3 (MBR partition #3)
Enter an MBR hex code (default 07): 83
Set the bootable flag? (Y/N): N

Recovery/transformation command (? for help): x

Expert command (? for help): h

Expert command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdd.
The operation has completed successfully.

J'ai réussi ce matin à monter la partition EFI formaté en FAT32 avec la commande :

mount -t vfat /dev/sdx2 /mnt/boot

Puis je cherchais à faire la commande suivante mais je ne connais pas bien grub2-install.

grub-install --target=x86_64-efi --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot --removable --recheck

Du coup j'avais fait ceci :

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

Ca ne doit pas être correct au niveau de efi-directory et du boot-directory. QUelqu'un connait un peu la "logique"?

Merci d'avance et bonne semaine.

  • # cfdisk ou cgdisk ?

    Posté par  . Évalué à 1.

    Je n’ai pas expérimenté personnellement, mais d’après ce que j’ai pu en lire, il faudrait utiliser cgdisk au lieu de cfdisk pour les partitions GPT. Maintenant, dans ton cas de boot hybride, c’est probablement une autre histoire.

  • # E2B

    Posté par  . Évalué à 1.

    As-tu essayé Easy2Boot

    • [^] # Re: E2B

      Posté par  . Évalué à 1.

      Oui mais j'ai envie d'aller plus loins et de créer une distri avec un grub2 que je gère

  • # dangereux

    Posté par  . Évalué à 2.

    WARNING! Hybrid MBRs are flaky and dangerous!

    c'est quand meme ecris en gros

    sinon dans ta procedure

    J'ai réussi ce matin à monter la partition EFI formaté en FAT32 avec la commande :
    mount -t vfat /dev/sdx2 /mnt/boot

    mais ensuite tu fais n'importe quoi

    Puis je cherchais à faire la commande suivante mais je ne connais pas bien grub2-install.

    grub-install --target=x86_64-efi --efi-directory=/EFI_MOUNTPOINT --boot-directory=/DATA_MOUNTPOINT/boot --removable --recheck

    Du coup j'avais fait ceci :

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

    Ca ne doit pas être correct au niveau de efi-directory et du boot-directory. QUelqu'un connait un peu la "logique"?

    ben la logique voudrait que ton EFI-DIRECTORY soit au moins ton /mnt/boot
    voire meme /mnt/boot/EFI

    • [^] # Re: dangereux

      Posté par  . Évalué à 1. Dernière modification le 07 novembre 2016 à 20:40.

      J'ai réussi à mettre grub2 pour EFI :

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

      grub2 pour BIOS :

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

      Par contre je ne peux pas mettre grub2 sur la partition de DATA mais si grub est déjà présent pour le BIOS et l'EFI, c'est bon je suppose.

      Maintenant j'aimerais configurer grub2 pour avoir accès à plusieurs OS comme le montre le tuto. A priori il faut générer le fichier de configuration de grub mais ou le mettre dans toutes mes partitions ?

      Est-ce une commande de ce genre?

      grub2-mkconfig -o /boot/grub2/grub.cfg
      

      Je suis un peu perdu dans ces 3 termes :
      1 - Initramfs framework
      2 - Live framework
      3 - Init system

      (Genkernel permet de faire quoi par rapport à l'initramfs ?) Genkernel

      Voici ce qui constitue la partition EFI :
      EFI/BOOT/BOOTX64.EFI

      Voici ce qui constitue la partition BIOS (dans /boot/grub2) :
      folder : fonts
      file : grubenv
      folder : i386-pc
      folder : locale
      folder : x86_64-efi

      Dans le dossier "x86_64-efi", il y a :

      [code]acpi.mod              font.mod                  lssal.mod            reboot.mod
      adler32.mod           fshelp.mod                luks.mod             regexp.mod
      affs.mod              fs.lst                    lvm.mod              reiserfs.mod
      afs.mod               functional_test.mod       lzopio.mod           relocator.mod
      ahci.mod              gcry_arcfour.mod          macbless.mod         romfs.mod
      all_video.mod         gcry_blowfish.mod         macho.mod            scsi.mod
      aout.mod              gcry_camellia.mod         mdraid09_be.mod      search_fs_file.mod
      appleldr.mod          gcry_cast5.mod            mdraid09.mod         search_fs_uuid.mod
      archelp.mod           gcry_crc.mod              mdraid1x.mod         search_label.mod
      ata.mod               gcry_des.mod              memdisk.mod          search.mod
      at_keyboard.mod       gcry_dsa.mod              memrw.mod            serial.mod
      backtrace.mod         gcry_idea.mod             minicmd.mod          setjmp.mod
      bfs.mod               gcry_md4.mod              minix2_be.mod        setjmp_test.mod
      bitmap.mod            gcry_md5.mod              minix2.mod           setpci.mod
      bitmap_scale.mod      gcry_rfc2268.mod          minix3_be.mod        sfs.mod
      blocklist.mod         gcry_rijndael.mod         minix3.mod           shift_test.mod
      blscfg.mod            gcry_rmd160.mod           minix_be.mod         signature_test.mod
      boot.mod              gcry_rsa.mod              minix.mod            sleep.mod
      bsd.mod               gcry_seed.mod             mmap.mod             sleep_test.mod
      bswap_test.mod        gcry_serpent.mod          moddep.lst           spkmodem.mod
      btrfs.mod             gcry_sha1.mod             modinfo.sh           squash4.mod
      bufio.mod             gcry_sha256.mod           morse.mod            syslinuxcfg.mod
      cat.mod               gcry_sha512.mod           mpi.mod              tar.mod
      cbfs.mod              gcry_tiger.mod            msdospart.mod        terminal.lst
      cbls.mod              gcry_twofish.mod          mul_test.mod         terminal.mod
      cbmemc.mod            gcry_whirlpool.mod        multiboot2.mod       terminfo.mod
      cbtable.mod           geli.mod                  multiboot.mod        test_blockarg.mod
      cbtime.mod            gettext.mod               nativedisk.mod       testload.mod
      chain.mod             gfxmenu.mod               net.mod              test.mod
      cmdline_cat_test.mod  gfxterm_background.mod    newc.mod             testspeed.mod
      cmp.mod               gfxterm_menu.mod          nilfs2.mod           tftp.mod
      cmp_test.mod          gfxterm.mod               normal.mod           tga.mod
      command.lst           gptsync.mod               ntfscomp.mod         time.mod
      configfile.mod        grub.efi                  ntfs.mod             trig.mod
      core.efi              gzio.mod                  odc.mod              tr.mod
      cpio_be.mod           halt.mod                  offsetio.mod         true.mod
      cpio.mod              hashsum.mod               ohci.mod             udf.mod
      cpuid.mod             hdparm.mod                part_acorn.mod       ufs1_be.mod
      crc64.mod             hello.mod                 part_amiga.mod       ufs1.mod
      cryptodisk.mod        help.mod                  part_apple.mod       ufs2.mod
      crypto.lst            hexdump.mod               part_bsd.mod         uhci.mod
      crypto.mod            hfs.mod                   part_dfly.mod        usb_keyboard.mod
      cs5536.mod            hfspluscomp.mod           part_dvh.mod         usb.mod
      ctz_test.mod          hfsplus.mod               part_gpt.mod         usbms.mod
      datehook.mod          http.mod                  partmap.lst          usbserial_common.mod
      date.mod              iorw.mod                  part_msdos.mod       usbserial_ftdi.mod
      datetime.mod          iso9660.mod               part_plan.mod        usbserial_pl2303.mod
      diskfilter.mod        jfs.mod                   part_sun.mod         usbserial_usbdebug.mod
      disk.mod              jpeg.mod                  part_sunpc.mod       usbtest.mod
      div.mod               keylayouts.mod            parttool.lst         verify.mod
      div_test.mod          keystatus.mod             parttool.mod         video_bochs.mod
      dm_nv.mod             ldm.mod                   password.mod         video_cirrus.mod
      echo.mod              legacycfg.mod             password_pbkdf2.mod  video_colors.mod
      efifwsetup.mod        legacy_password_test.mod  pata.mod             video_fb.mod
      efi_gop.mod           linux16.mod               pbkdf2.mod           videoinfo.mod
      efinet.mod            linuxefi.mod              pbkdf2_test.mod      video.lst
      efi_uga.mod           linux.mod                 pcidump.mod          video.mod
      ehci.mod              loadbios.mod              play.mod             videotest_checksum.mod
      elf.mod               loadenv.mod               png.mod              videotest.mod
      eval.mod              loopback.mod              priority_queue.mod   xfs.mod
      exfat.mod             lsacpi.mod                probe.mod            xnu.mod
      exfctest.mod          lsefimmap.mod             procfs.mod           xnu_uuid.mod
      ext2.mod              lsefi.mod                 progress.mod         xnu_uuid_test.mod
      extcmd.mod            lsefisystab.mod           raid5rec.mod         xzio.mod
      fat.mod               lsmmap.mod                raid6rec.mod         zfscrypt.mod
      file.mod              ls.mod                    random.mod           zfsinfo.mod
      fixvideo.mod          lspci.mod                 read.mod             zfs.mod
      [/code]
      

      Dans le dossier "i386-pc, il y a :

          acpi.mod              freedos.mod               mdraid09.mod         scsi.mod
          adler32.mod           fshelp.mod                mdraid1x.mod         search_fs_file.mod
          affs.mod              fs.lst                    memdisk.mod          search_fs_uuid.mod
          afs.mod               functional_test.mod       memrw.mod            search_label.mod
          ahci.mod              gcry_arcfour.mod          minicmd.mod          search.mod
          all_video.mod         gcry_blowfish.mod         minix2_be.mod        sendkey.mod
          aout.mod              gcry_camellia.mod         minix2.mod           serial.mod
          archelp.mod           gcry_cast5.mod            minix3_be.mod        setjmp.mod
          ata.mod               gcry_crc.mod              minix3.mod           setjmp_test.mod
          at_keyboard.mod       gcry_des.mod              minix_be.mod         setpci.mod
          backtrace.mod         gcry_dsa.mod              minix.mod            sfs.mod
          bfs.mod               gcry_idea.mod             mmap.mod             shift_test.mod
          biosdisk.mod          gcry_md4.mod              moddep.lst           signature_test.mod
          bitmap.mod            gcry_md5.mod              modinfo.sh           sleep.mod
          bitmap_scale.mod      gcry_rfc2268.mod          morse.mod            sleep_test.mod
          blocklist.mod         gcry_rijndael.mod         mpi.mod              spkmodem.mod
          blscfg.mod            gcry_rmd160.mod           msdospart.mod        squash4.mod
          boot.img              gcry_rsa.mod              mul_test.mod         syslinuxcfg.mod
          boot.mod              gcry_seed.mod             multiboot2.mod       tar.mod
          bsd.mod               gcry_serpent.mod          multiboot.mod        terminal.lst
          bswap_test.mod        gcry_sha1.mod             nativedisk.mod       terminal.mod
          btrfs.mod             gcry_sha256.mod           net.mod              terminfo.mod
          bufio.mod             gcry_sha512.mod           newc.mod             test_blockarg.mod
          cat.mod               gcry_tiger.mod            nilfs2.mod           testload.mod
          cbfs.mod              gcry_twofish.mod          normal.mod           test.mod
          cbls.mod              gcry_whirlpool.mod        ntfscomp.mod         testspeed.mod
          cbmemc.mod            gdb.mod                   ntfs.mod             tftp.mod
          cbtable.mod           geli.mod                  ntldr.mod            tga.mod
          cbtime.mod            gettext.mod               odc.mod              time.mod
          chain.mod             gfxmenu.mod               offsetio.mod         trig.mod
          cmdline_cat_test.mod  gfxterm_background.mod    ohci.mod             tr.mod
          cmosdump.mod          gfxterm_menu.mod          part_acorn.mod       truecrypt.mod
          cmostest.mod          gfxterm.mod               part_amiga.mod       true.mod
          cmp.mod               gptsync.mod               part_apple.mod       udf.mod
          cmp_test.mod          gzio.mod                  part_bsd.mod         ufs1_be.mod
          command.lst           halt.mod                  part_dfly.mod        ufs1.mod
          configfile.mod        hashsum.mod               part_dvh.mod         ufs2.mod
          core.img              hdparm.mod                part_gpt.mod         uhci.mod
          cpio_be.mod           hello.mod                 partmap.lst          usb_keyboard.mod
          cpio.mod              help.mod                  part_msdos.mod       usb.mod
          cpuid.mod             hexdump.mod               part_plan.mod        usbms.mod
          crc64.mod             hfs.mod                   part_sun.mod         usbserial_common.mod
          cryptodisk.mod        hfspluscomp.mod           part_sunpc.mod       usbserial_ftdi.mod
          crypto.lst            hfsplus.mod               parttool.lst         usbserial_pl2303.mod
          crypto.mod            http.mod                  parttool.mod         usbserial_usbdebug.mod
          cs5536.mod            iorw.mod                  password.mod         usbtest.mod
          ctz_test.mod          iso9660.mod               password_pbkdf2.mod  vbe.mod
          datehook.mod          jfs.mod                   pata.mod             verify.mod
          date.mod              jpeg.mod                  pbkdf2.mod           vga.mod
          datetime.mod          keylayouts.mod            pbkdf2_test.mod      vga_text.mod
          diskfilter.mod        keystatus.mod             pcidump.mod          video_bochs.mod
          disk.mod              ldm.mod                   pci.mod              video_cirrus.mod
          div.mod               legacycfg.mod             plan9.mod            video_colors.mod
          div_test.mod          legacy_password_test.mod  play.mod             video_fb.mod
          dm_nv.mod             linux16.mod               png.mod              videoinfo.mod
          drivemap.mod          linux.mod                 priority_queue.mod   video.lst
          echo.mod              loadenv.mod               probe.mod            video.mod
          efiemu32.o            loopback.mod              procfs.mod           videotest_checksum.mod
          efiemu64.o            lsacpi.mod                progress.mod         videotest.mod
          efiemu.mod            lsapm.mod                 pxechain.mod         xfs.mod
          ehci.mod              lsmmap.mod                pxe.mod              xnu.mod
          elf.mod               ls.mod                    raid5rec.mod         xnu_uuid.mod
          eval.mod              lspci.mod                 raid6rec.mod         xnu_uuid_test.mod
          exfat.mod             luks.mod                  random.mod           xzio.mod
          exfctest.mod          lvm.mod                   read.mod             zfscrypt.mod
          ext2.mod              lzopio.mod                reboot.mod           zfsinfo.mod
          extcmd.mod            macbless.mod              regexp.mod           zfs.mod
          fat.mod               macho.mod                 reiserfs.mod
          file.mod              mda_text.mod              relocator.mod
          font.mod              mdraid09_be.mod           romfs.mod
      

      Aucun fichier grub.cfg n'est présent donc je ne sais pas comment m'y prendre pour mettre les lignes suivantes :

      GParted Live
      ```
      Initramfs framework: initramfs-tools (cmdline: RFD)
      Live framework: Debian Live (cmdline: [20])
      Init system: sysvinit (cmdline: RFD)

          menuentry "[loopback]gparted-live-0.22.0-2-amd64" {
              set isofile="/boot/iso/gparted-live-0.22.0-2-amd64.iso"
              loopback loop $isofile
              linux (loop)/live/vmlinuz boot=live union=overlay username=user config components quiet noswap noeject toram=filesystem.squashfs ip=  nosplash findiso=$isofile
              initrd (loop)/live/initrd.img
          }
      
  • # configurer grub2 sur clé usb

    Posté par  . Évalué à 1.

    Plus simplement, j'ai installé grub2 sur ma clé mais il faut évidement le configurer, chose que sur clé je ne sais pas faire.

    Je ne connais que la commande grub2 pour mettre à jour le grub2 de mon PC :

    grub2-mkconfig -o /boot/grub2/grub.cfg
    

    Voila, alors après comment générer la config grub2 pour ma clé et vers quell dossier ! /boot/grub2 et y mettre le fichier grub.cfg ?

Suivre le flux des commentaires

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