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.