grub2-efi et nouvelle installation

Bonjour;
j’ai besoin d’aide pour une installation de debian-testing.
Tout c’est bien passé, sauf grub-efi qui ne trouvait pas la partition pour /boot/efi à l’installation.
J’ai bien évidemment, avant, créé une partition en premier sur le disque pour y placer efi.

Depuis, le système est entièrement installé, ma première partition est monté sur /boot/efi mais impossible de démarrer, grub n’est pas installé!!!
J’ai démarrer avec super-grub2-disk, et par là pu lancer ma nouvelle installation. Comme quoi, le système est bien là.
Ensuite, j’ai executé dpkg-reconfigure grub2-efi-amd64, qui c’est réinstallé, mais grub n’est toujours pas présent au boot!!!
Grub-install ne renvoi aucune erreur.
Par contre, je n’ai pas d’indicateur de démarrage sur aucune de mes partitions. Est-ce normal?

J’oublie quelque chose, mais je ne trouve pas.

Pourriez vous m’éclairer, s’il vous plait?

Rémi.

Avec le type “EFI system partition” et formatée en FAT32 ?
Que contient cette partition ?
Qu’affiche la commande [mono]efibootmgr[/mono] ?

Oui. L’indicateur d’amorçage n’est utilisé ni par GRUB ni par l’UEFI.

bonjour;

Le problème, c’est qu’à l’installation, je n’ai pas trouvé “EFI system partition” pour ma partition (en FAT32)

Là, je démarre avec grub-repair.
Quand je lui demande d’afficher les systèmes présent, j’ai :

Operating Systems
  Linux/boot/vmlinuz-3.16.0.4-amd64 (hd2,gpt3)
  Linux/boot/vmlinuz-3.16.0.4-amd64 (single) (hd2,gpt3)
  (hd2,gpt1) /efi/debian/grubx64.efi
  (hd2,gpt1) /efi/boot/grubx64.efi
  (hd2,gpt1) /EFI/debian/grubx64.efi
  (hd2,gpt1) /EFI/boot/grubx64.efi

La partition efi est sdb1 et la partition système sdb3

Ne faut il pas faire un grub-install /dev/sdb1 puis un update grub?

J’y perd mon latin

J’avais oublié:

root@sisco:/home/nico# efibootmgr 
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* debian
Boot0001* UEFI: Generic Flash Disk 8.07

Sur ma carte mère, en dehors des options de configuration de la carte, j’ai eu le même désagrement que toi, malgrès le boot sur le “cdrom avec efi”.
Je me suis rendu compte que ça venait d’une clef usb presente sur l’ordinateur ?

https://wiki.archlinux.fr/GRUB#Syst.C3.A8mes_UEFI
Regarde à la section mise en place.

Pour éviter certain problèmes, il est conseillé de copier le fichier de boot “efi” généré[strike], en “bootx86_64.efi”.[/strike]
Pour activer le boot efi par defaut d’un système, il faut copier le fichier de boot efi vers:
/boot/efi/EFI/boot/bootx64.efi si système 64 bits.
/boot/efi/EFI/boot/bootia32.efi si système 32 bits.

@cedric058:
Effectivement, ma partition sdb1 n’avait pas le flag EFI.
Je n’ai pas trouvé de possibilité de mettre un flag de boot dessus, par contre.

Et au reboot, pas de grub trouvé.

C’est agaçant!

C’est le l’installeur Debian qui à géré ça pour moi.
Parted n’est pas très “user-friendly”…
https://wiki.archlinux.org/index.php/GNU_Parted#UEFI.2FGPT_examples
Je m’en suis encore peu servi…
J’ai souvenir d’un très bon tuto de Belzebuth, ou il utilse “parted”…
https://www.debian-fr.org/creation-d-une-live-usb-persistante-t49296.html

Aux grands maux les grands moyens:
je viens d’utiliser grub-repair (sur un live_usb ubuntu)
Il m’a bien réparé le boot, dit il, mai au redémarrage, toujours pas d’invite GRUB!!!
La misère!!!
Ca me gonfle…

brub-repair a fait un fichier de réparation:
http://paste.ubuntu.com/12080346/

Je suis sur qu’il manque quasi rien…

http://doc.ubuntu-fr.org/uefi
Regarde le paragraphe 6, on sait jamais…

avec les copies d’écran du lien que tu as mis, je viens de m’apercevoir d’une chose:
dans le bios, avec une clef usb en uefi, j’ai une entrée UEFI. Mais je n’en ai aucune pour mon disque sdb!!!
ni sdb1 ni autre!!

Je crois que la est le problème.

A présent, comment corriger ça? je cherche encore.

L’entrée système efi de ma carte mère, est du genre:
debian efi (avec peut être une reference disque)

Si une il y a une entrée efi, dans le bios, sans mention du sytème, avec reference disque ou clef, alors le boot ira au sytème par defaut, si il est présent.

[quote=“rsuinux”]
Operating System: Boot files:
[ul]/EFI/BOOT/bootx64.efi
/EFI/debian/bootx86_64.efi
/EFI/debian/grubx64.efi
/EFI/Microsoft/Boot/bootmgfw.efi
/EFI/Microsoft/Boot/bootx64.efi[/ul][/quote]
Visiblement, il n’y pas plus de Wdaube sur tes disques.

[quote=“Wiki Ubuntu”]Sur les machines Toshiba vendues avec Windows 8, le bios UEFI démarre avec le fichier EFI/Boot/bootx64.efi.
Une fois l’nstallation d’Ubuntu réalisée, il suffit de remplacer le fichier /boot/efi/EFI/Boot/bootx64.efi par le fichier /boot/efi/EFI/ubuntu/shimx64.efi[/quote]
Pourquoi ne pas tenter:

[code]# mv /boot/efi/EFI/Boot/bootx64.efi /boot/efi/EFI/Boot/bootx64.efi.bak

cp /boot/efi/EFI/debian/grubx64.efi /boot/efi/EFI/Boot/bootx64.efi[/code]

Rq: Tu pourras par la suite faire un peu de ménage dans tes entrées efi.
Rq: Le lien du wiki du forum https://www.isalo.org/wiki.debian-fr/Debian_%26_UEFI
Rq: il est préférable de modifier des options du bios (voir paragraphe 1 du wiki unbuntu)

merci de m’aider.
Pour le paste, il y a des entrée microsoft, mais je ne sais pas d’ou elle viennent!! Nous n’avons aucun Windows à la maison!
Et là, c’est une réinstallation après disque système HS.
Ceci dit, j’avais tenté de renommer les fichiers ‘boot_xxx.efi’ ce matin, mais il me semble que ce n’était pas le même nom.
On va tenter!!

Je vois aussi dans le paste, que sur la clef, il y a:


    File system:       vfat
    Boot sector type:  SYSLINUX 6.03 20150425..................................................2....0............A20 gate n
    Boot sector info:  Syslinux looks at sector 3438450 of /dev/sdc1 for its 
                       second stage. SYSLINUX is installed in the  directory. 
                       No errors found in the Boot Parameter Block.

alors que le syslinux n’est pas présent sur ma partition sdb1.

Un problème de ce côté là aussi?

J’ai fait une erreur plus haut que j’ai corrigé … comme ci:
Pour activer le boot efi par defaut d’un système, il faut copier le fichier de boot efi vers:
/boot/efi/EFI/boot/bootx64.efi si système 64 bits.
/boot/efi/EFI/boot/bootia32.efi si système 32 bits.

/dev/sdc1… peu importe…, ce doit être les paramètres de boot de la clef.

De toute façon le boot doit aller ou tu vas l’envoyer, comme paramètré dans le bios, /dev/sdb.

bonjour

après 24h d’absence, j’ai mis le flag bios-grub avec parted -> résultat rien, j’ai même l’impression que l’accès au paramètres du bios était corrompu!!!

Par contre, ma partition est en FAT32, pas en FAT16. un problème de ce côté la?

Merci pour votre aide.

Ce n’est pas le bon flag. Il sert à identifier une partition non formatée réservée à grub-pc (pour booter en mode BIOS/legacy, pas en mode UEFI) sur un disque au format GPT. Avec [mono]parted[/mono], la partition système EFI est identifiée par le flag “boot” ou “efi” sur un disque au format GPT. La gestion des types de partition avec des flags par [mono]parted[/mono] n’est pas forcément la plus intuitive qui soit, [mono]fdisk[/mono] (de Jessie) ou [mono]gdisk[/mono] (pour les disques au format GPT seulement) sont plus classiques.

La sortie d’[mono]efibootmgr[/mono] montre qu’une entrée d’amorçage EFI pour Debian a bien été créée par grub-install. D’après ce qu’affiche grub-repair, le chargeur GRUB est bien présent dans /efi/debian/grubx64.efi sur (hd2,gpt1) qui correspond a priori à /dev/sdb2. Par contre est-ce toi qui a copié grubx64.efi dans /efi/boot/ ? Cela ne sert à rien, le chargeur placé dans /efi/boot doit s’appeler bootx64.efi pour être utilisable par le firmware comme chargeur par défaut.

Non. Il n’y a pas lieu de spécifier la partition puisque cela ne peut être que la partition montée sur /boot/efi. Quant à [mono]update-grub[/mono], il ne fait que créer un fichier de configuration pour afficher le menu de démarrage de GRUB. Si GRUB ne se lance pas, on s’en fiche.

Non, normalement le firmware UEFI doit supporter une partition système EFI en FAT32 au moins sur un disque fixe. Corrige d’abord le type de la partition. Et je veux bien la sortie des commandes suivantes pour vérifier que le chargeur Debian est bien enregistré :

efibootmgr -v # la ligne avec l'entrée Debian au moins blkid # la ligne avec la partition système EFI au moins

[quote=“cedric058”][quote=“rsuinux”]
Operating System: Boot files:
[ul]/EFI/BOOT/bootx64.efi
/EFI/debian/bootx86_64.efi
/EFI/debian/grubx64.efi
/EFI/Microsoft/Boot/bootmgfw.efi
/EFI/Microsoft/Boot/bootx64.efi[/ul][/quote][/quote]
De quel message de rsuinux provient cette citation ?

Le message du lien “paste.ubuntu.com

[quote=“rsuinux”]Aux grands maux les grands moyens:
je viens d’utiliser grub-repair (sur un live_usb ubuntu)
Il m’a bien réparé le boot, dit il, mai au redémarrage, toujours pas d’invite GRUB!!!
La misère!!!
Ca me gonfle…

brub-repair a fait un fichier de réparation:
paste.ubuntu.com/12080346/

Je suis sur qu’il manque quasi rien…[/quote]

Merci à vous deux.
Je teste ça en fin d’après midi (je vais avoir les deux pieds dans le béton, là…)
Je vous tiens au courant, car j’ai refais des tests, mais tant que j’avais le flag bios-grub, cela ne servait à rien, si je comprend bien!!!

Voila quelques info:

root@sisco:/home/nico# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.0

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

Found valid GPT with protective MBR; using GPT.

Command (? for help): p
Disk /dev/sdb: 312500000 sectors, 149.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 615DBF5C-BDF3-4289-9EB7-7C6A32203F1F
Partition table holds up to 128 entries
First usable sector is 2048, last usable sector is 312499966
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            8191   3.0 MiB     EF00  efi
   2            8192        33562623   16.0 GiB    8200  
   3        33562624       312499966   133.0 GiB   8300  racine

Et ce que tu m’as demandé:

root@sisco:/home/nico# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0000,0004,0003
Boot0000* debian	HD(1,GPT,6b853c3a-caae-4706-909f-cf8a425a8c34,0x800,0x1800)/File(\EFI\debian\grubx64.efi)

Je vois effectivement que ce n’est pas ‘bootx64.efi’ mais grbx64.efi. Et non, ce n’est pas moi qui l’ai mis à la main.

root@sisco:/home/nico# blkid
/dev/sdb1: UUID="57C0-6890" TYPE="vfat" PARTLABEL="efi" PARTUUID="6b853c3a-caae-4706-909f-cf8a425a8c34"

Je corrige donc le nom de grubx64.efi et je reteste.

Tout cela me semble correct. La partition /dev/sdb1 a le bon type, l’entrée d’amorçage EFI “debian” contient les bonnes informations (PARTUUID, position et taille en secteurs exprimées en hexadécimal de /dev/sdb1, chemin vers le fichier du chargeur).

L’entrée d’amorçage EFI “debian” fait référence à un fichier grubx64.efi situé dans /EFI/debian/ (par rapport à la racine de la partition, donc /boot/efi/EFI/debian lorsque celle-ci est montée sur /boot/efi). Ce même fichier peut être copié sous le nom bootx64.efi dans /EFI/boot/ afin de servir de chargeur par défaut au cas où l’entrée d’amorçage ne fonctionnerait pas. Il ne sert à rien d’avoir un fichier grubx64.efi dans /EFI/boot/ ou bootx64.efi dans /EFI/debian.

Seul bémol, je trouve juste la partition un peu petite. 3 Mio, c’est très peu bien que suffisant pour le chargeur GRUB EFI de Debian (pour le moment). La taille généralement recommandée est 512 Mio.

Je me demande si le fait que le disque est en deuxième position (/dev/sdb) peut jouer. Normalement non, mais les firmwares EFI ont des bugs. A quoi correspond /dev/sda ?

Je ne comprends pas d’où sortent les fichiers trouvés dans /EFI/Microsoft, ils ne figuraient pas dans tes premiers messages.

Peut être manque t’il toujours le flag “boot” ?

PascalHambourg, on dirai d’après le tuto ci-dessous, qu’il est possible de placer le noyau Linux accompagné de son initramfs, dans la partition EFI ?
https://wiki.archlinux.fr/ESP
D’où la taille recommandée non négligeable de la partion EFI.

Non, le flag boot ne sert à rien avec UEFI. Et il ne faut surtout pas mettre le flag boot sur la partition GPT du MBR protecteur.

N’ayant pas suivi ton lien je ne sais pas si c’est de cela qu’il s’agit, mais il est possible d’amorcer un noyau compilé avec l’option CONFIG_EFI_STUB directement par le firmware UEFI sans passer par un chargeur d’amorçage comme GRUB.