Pages : 1
#1 Le 25/06/2022, à 20:04
- DonutMan75
[RESOLU] Clef USB Grub
Bonsoir à tous,
j'ai une clef USB 128 Gb que j'aimerais bidouiller afin, à terme, d'avoir un amorceur Grub qui me permettrait de lancer différentes live-sessions stockées sur la clef (Ubuntu, Debian, ...)
Mon système supporte l'EFI 64 bits et je souhaite donc ne pas m'encombrer avec les éventuelles compatibilités et partir :
- sur un démarrage UEFI (donc pas BIOS)
- sur une table des partitions GPT (donc pas MBR)
$ more /sys/firmware/efi/fw_platform_size
64
Ma première étape est simplement d'installer Grub sur la clef pour faire en sorte qu'il s'exécute lorsqu'on boote sur la clef (je verrai comment rajouter les images des live-sessions dans un second temps).
J'ai suivi différents tuto (voir par exemple celui-ci) mais, in fine, je n'arrive pas à obtenir une clef bootable.
Puis-je vous présenter les différentes étapes que j'ai suivi, si jamais l'un d'entre vous (plus familier que moi avec Grub) trouve une erreur manifeste dans ma démarche ?
1) Installer une table des partitions GPT
$ sudo parted /dev/sdc
(parted) mklabel gpt
(parted) print
Model: USB SanDisk 3.2Gen1 (scsi)
Disk /dev/sdc: 123GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
2) Créer une première partition qui contiendra /efi
(parted) mkpart primary 1MiB 551 MiB
Les valeurs de départ (1MiB) et de fin (551 MiB) sont issues des différents tuto que j'ai pu lire et je pense que cela provient :
1) du fait de ne pas souhaiter écraser la table GPT
2) d'avoir une taille suffisamment grande pour contenir /efi/
On positionne ensuite les flags esp et boot à ON
(parted) set 1 esp on
(parted) set 1 boot on
(parted) print
Model: USB SanDisk 3.2Gen1 (scsi)
Disk /dev/sdc: 123GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 551MB 549MB primary boot, esp
3) Créer une seconde partition qui contiendra /boot
Ici j'aurai la place dans un second temps de rajouter toutes les images que je souhaite...
Ce sera une partition EXT4
(parted) mkpart primary 551MiB 100%
(parted) print
Model: USB SanDisk 3.2Gen1 (scsi)
Disk /dev/sdc: 123GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 551MB 549MB primary boot, esp
2 578MB 123GB 122GB primary
4) On créé les systèmes de fichiers
Donc FAT32 pour /efi et EXT4 pour /boot
$ sudo mkfs.fat -F32 /dev/sdc1
$ sudo mkfs.ext4 /dev/sdc2
On vérifie avec parted que tout est bien pris en compte :
(parted) print
Model: USB SanDisk 3.2Gen1 (scsi)
Disk /dev/sdc: 123GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 551MB 549MB fat32 primary boot, esp
2 578MB 123GB 122GB ext4 primary
5) On installe Grub
Comme c'est une installation sur un disque amovible, il est nécessaire de monter les partitions /efi et /boot afin d'indiquer à grub où installer les données.
$ sudo mount /dev/sdc1 ./test/efi/
$ sudo mount /dev/sdc2 ./test/boot/
On lance ensuite grub-install :
$ sudo grub-install --target=x86_64-efi --recheck --removable --efi-directory="./efi" --boot-directory="./boot" /dev/sdc
Installation pour la plate-forme x86_64-efi.
Installation terminée, sans erreur.
Une fois ceci effectué, j'ai bien mes partitions /efi et /boot qui sont remplies :
$ tree efi/
efi/
└── EFI
└── BOOT
├── BOOTX64.CSV
├── BOOTX64.EFI
├── fbx64.efi
├── grub.cfg
├── grubx64.efi
└── mmx64.efi
2 directories, 6 files
$ tree data/
data/
├── boot
│ └── grub
│ ├── fonts
│ │ └── unicode.pf2
│ ├── grubenv
│ ├── locale
│ │ ├── ast.mo
│ │ ├── ...
│ │ ├── fr.mo
│ │ ├── ...
│ │ └── zh_TW.mo
│ └── x86_64-efi
│ ├── acpi.mod
│ ├── ...
│ ├── gfxmenu.mod
│ ├── gfxterm_background.mod
│ ├── gfxterm_menu.mod
│ ├── gfxterm.mod
│ ├── gptsync.mod
│ ├── grub.efi
│ ├── ...
│ └── zfs.mod
└── lost+found [error opening dir]
6 directories, 308 files
A ce stade, je pense donc avoir un Grub fonctionnel et une clef USB bootable.
6) Test de la clef USB
Hélas, quand je fais :
$ sudo qemu-system-x86_64 -cdrom /dev/sdc
Il m'affiche un laconique "No bootable device.".
Idem quand je redémarre mon pc en bootant sur la clef, j'ai un magnifique écran noir sans rien qui s'affiche...
7) Pistes de résolutions
1) Peut-être mon installation de grub est trop minimale et il ne se passe rien ?? Par défaut j'imaginais avoir au moins accès à un terminal grub... Mais je ne suis sûr de rien...
2) Voyez-vous dans mon protocole une raison évidente pour laquelle la clef ne serait pas bootable ?
3) Mon couple table GPT / partition ESP /efi me semble correct mais il y a peut-être une subtilité que je n'ai pas vue ?
4) Un problème de paramètrage du "BIOS/UEFI" de ma carte mère (qui pourtant arrive bien à exécuter Grub avec un dual boot Linux/Windows sur mon disque dur) ?
Merci par avance pour toute idée ou suggestion
Bonne soirée !
Donut
Dernière modification par DonutMan75 (Le 30/06/2022, à 06:43)
Hors ligne
#2 Le 25/06/2022, à 20:55
- geole
Re : [RESOLU] Clef USB Grub
Bonsoir.
J'ai cru comprendre que tu veux lancer des iso stockées sur la clé USB.
Est-ce pour concurrencer ventoy ou dans but autre?
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#3 Le 25/06/2022, à 21:36
- DonutMan75
Re : [RESOLU] Clef USB Grub
Bonsoir geole,
merci pour ton retour.
Oui je pense que ventoy réponds à ma problèmatique (ventoy ou solution équivalente).
Néanmoins, je souhaite que ce soit pour moi l'occasion de comprendre comment fonctionne Grub (l'objectif est donc en partie didactique).
D'où l'utilité de faire ça "à la main" avec des outils atomiques comme parted, grub etc..
Donut
Hors ligne
#4 Le 25/06/2022, à 22:05
- geole
Re : [RESOLU] Clef USB Grub
A tout hasard, n'aurais-tu pas un niveau de trop?
$ tree efi/
efi/
└── EFI
└── BOOT
Dernière modification par geole (Le 25/06/2022, à 22:06)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
Hors ligne
#5 Le 27/06/2022, à 22:51
- DonutMan75
Re : [RESOLU] Clef USB Grub
Bonsoir geole, non ça semble être correct car j'observe bien la même chose ailleurs.
J'ai testé de nouvelles choses, je suspecte un soucis au niveau des paramètres de mon bios uefi..
Je continue à chercher ^^
Donut
Hors ligne
#6 Le 30/06/2022, à 06:42
- DonutMan75
Re : [RESOLU] Clef USB Grub
Bonjour à tous,
le sujet a été résolu sur le forum debian-fr.org par PascalHambourg.
Outre quelques petites améliorations des commandes passées à gparted, il fallait rajouter les options --force-extra-removable et --no-nvram dans l'appel de grub-install.
Bonne journée à tous,
Donut
Hors ligne