View previous topic :: View next topic |
Author |
Message |
flammenflitzer Advocate
Joined: 25 Nov 2003 Posts: 3483 Location: Berlin
|
Posted: Sun Apr 07, 2024 6:05 am Post subject: Grub2 grub-install Fehler |
|
|
Hallo, ich habe folgendes Problem: Code: | * Re-run grub-install to update installed boot code!
* Re-run grub-mkconfig to update grub.cfg! | In der /etc/make.conf habe ich geändert Code: | #GRUB_PLATFORMS="emu efi-32 efi-64 pc"
GRUB_PLATFORMS="efi-64 pc" |
Code: | mount | grep /boot/efi
/dev/nvme0n1p1 on /boot/efi type vfat (rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro) |
Fehler Code: | grub-install /dev/nvme0n1p8
x86_64-efi wird für Ihre Plattform installiert.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub-install: Fehler: efibootmgr schlug beim Registrieren des Boot-Eintrags fehl: Datei oder Verzeichnis nicht gefunden. |
Code: | dmesg | grep -i "EFI v"
[ 0.000000] efi: EFI v2.7 by American Megatrends |
Code: | efibootmgr
EFI variables are not supported on this system. |
Code: | df -h | grep -i efi
/dev/nvme0n1p1 96M 35M 62M 36% /boot/efi |
Code: | lsblk | grep -i efi
├─nvme0n1p1 259:1 0 100M 0 part /boot/efi |
Code: | ls /sys/firmware/efi/*
/sys/firmware/efi/config_table /sys/firmware/efi/fw_vendor /sys/firmware/efi/systab
/sys/firmware/efi/fw_platform_size /sys/firmware/efi/runtime
/sys/firmware/efi/efivars:
/sys/firmware/efi/esrt:
entries fw_resource_count fw_resource_count_max fw_resource_version
/sys/firmware/efi/runtime-map:
0 1 10 11 12 13 14 15 2 3 4 5 6 7 8 9 |
Code: | efivar -l
efivar: error listing variables: Function not implemented |
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
|
Back to top |
|
|
sMueggli Guru
Joined: 03 Sep 2022 Posts: 371
|
Posted: Sun Apr 07, 2024 10:05 am Post subject: |
|
|
Der Befehl Code: | grub-install /dev/nvme0n1p8 |
sieht auch falsch aus. Vermutlich wird Grub beim Installieren den falschen Ort (/dev/nvme0n1p8) ignorieren.
Vermutlich reicht ein nacktes
, um Grub am richtigen Ort zu installieren. |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
Posted: Sun Apr 07, 2024 10:19 am Post subject: |
|
|
M.W. sollte beim grub-install noch spezifiziert werden, welches die ESP ist ... also je nachdem wo man seine ESP hingemountet hat, entweder
grub-install --efi-directory=/efi
oder (wenn eine alte Installation):
grub-install --efi-directory=/boot
(Ich weiß grad nicht auswendig, welches der Default ist ... ich glaube aber es war/ist /boot ... kann sich aber mit der neuen Version von grub auch geändert haben; macht nix: einfach spezifizieren) _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5192
|
Posted: Sun Apr 07, 2024 10:47 am Post subject: |
|
|
Falls dualboot mit anderen betriebsystemen (besonders mit windows) nicht benötigt wird (welche die selbe ESP verwenden), dann kann man noch zusätzlich den parameter
angeben.
Dann wird der bootloader in Quote: | <esp-partition>/EFI/BOOT/BOOTX64.EFI | installiert.
Hat den vorteil, dass die meisten UEFI Firmware by default nach diesem eintrag suchen z.b. wenn es keinen boot eintrag im nvram gibt.
Dadurch wird grub auch korrekt gestartet, wenn die boot einträge im nvram verloren gehen.
Was unter umständen bei einem UEFI firmware update/setting reset passieren kann.
Oder beim wechsel des Mainboards. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
sMueggli Guru
Joined: 03 Sep 2022 Posts: 371
|
Posted: Sun Apr 07, 2024 3:28 pm Post subject: |
|
|
Bei Grub ist /boot/efi der "richtige" Einhängepunkt für die ESP (im Sinne der Standardeinstellung) und der Parameter "--efi-directory" kann weggelassen werden, wenn die ESP nach /boot/efi eingehängt wurde.
Wenn das System im UEFI-Modus ist, dann ignoriert grub-install jegliche Gerätenamen: Ein "grub-install /dev/nvme0n1p8" ist also das gleiche wie ein "grub-install" oder "grub-install --efi-directory=/boot/efi". Die Variante "grub-install" ist am kürzesten und einprägsamsten (finde ich).
Und es gibt noch den Parameter "--boot-directory", mit dem man Grub eine Alternative für "/boot/grub" angeben kann ("--boot-directory=huhu" installiert dann nach /huhu/grub). |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
Posted: Sun Apr 07, 2024 3:37 pm Post subject: |
|
|
sMueggli wrote: | Bei Grub ist /boot/efi der "richtige" Einhängepunkt für die ESP [...] |
Da sagt unser AMD64 Handbuch etwas anderes:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base#UEFI_systems
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/System#UEFI_systems
Ebenso die UAPI Group Specifications (bitte GPT_ESP nicht mit GPT_XBOOTLDR verwechseln):
https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
=>
Quote: | EFI System Partition c12a7328-f81f-11d2-ba4b-00a0c93ec93b SD_GPT_ESP VFAT The ESP used for the current boot is automatically mounted to /boot/ or /efi/, unless a different partition is mounted there (possibly via /etc/fstab) or the mount point directory is non-empty on the root disk. If both ESP and XBOOTLDR exist, the /efi/ mount point shall be used for ESP. This partition type is defined by the UEFI Specification.
Extended Boot Loader Partition bc13c2ff-59e6-4262-a352-b275fd6f7172 SD_GPT_XBOOTLDR Typically VFAT The Extended Boot Loader Partition (XBOOTLDR) used for the current boot is automatically mounted to /boot/, unless a different partition is mounted there (possibly via /etc/fstab) or the mount point directory is non-empty on the root disk. This partition type is defined by the Boot Loader Specification. |
_________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
Josef.95 Advocate
Joined: 03 Sep 2007 Posts: 4558 Location: Germany
|
Posted: Mon Apr 08, 2024 8:55 am Post subject: |
|
|
sMueggli wrote: | Bei Grub ist /boot/efi der "richtige" Einhängepunkt für die ESP (im Sinne der Standardeinstellung) und der Parameter "--efi-directory" kann weggelassen werden, wenn die ESP nach /boot/efi eingehängt wurde. | Ja, ist zumindest da wo als erstes by default nach gesucht wird, sofern nichts anderes mit angegeben wird.
ich hab es einfach mal ausprobiert: Code: | lucy ~ # mount /efi
lucy ~ # grub-install
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
lucy ~ # cd /boot
lucy /boot # ln -s /efi
lucy /boot # grub-install
Installing for x86_64-efi platform.
Installation finished. No error reported. |
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
Posted: Mon Apr 08, 2024 12:01 pm Post subject: |
|
|
Josef.95 wrote: | sMueggli wrote: | Bei Grub ist /boot/efi der "richtige" Einhängepunkt für die ESP (im Sinne der Standardeinstellung) und der Parameter "--efi-directory" kann weggelassen werden, wenn die ESP nach /boot/efi eingehängt wurde. | Ja, ist zumindest da wo als erstes by default nach gesucht wird, sofern nichts anderes mit angegeben wird. [...] |
Wir sollten uns aber nicht an dem orientieren was der grub-install defaultmäßig macht (zumindestens NOCH macht), sondern uns an die Vorgaben halten.
Begonnen hat das ganze als unser Developer @sam es als Arbeitsauftrag hier vorgegeben hat:
https://wiki.gentoo.org/index.php?title=Project:Handbook&curid=190180&diff=1260630&oldid=1258723
=>
Quote: | Migrate ESP to {{Path|/efi}} as recommended per UAPI Group Specification's Boot Loader Specification |
Ich habe daraufhin einen deutschen Artikel:
https://forums.gentoo.org/viewtopic-p-8801625.html#8801625
und einen englischen:
https://forums.gentoo.org/viewtopic-t-1165115.html
im Forum gepostet, weil es einige Wochen lang einen Mischmasch gegeben hat (Neue Einstellungen im AMD64 Handbuch; veraltete in Wiki-Artikeln). HEUTE ist aber alles einheitlich auf /efi als Mountpoint für die ESP beschrieben. _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
Josef.95 Advocate
Joined: 03 Sep 2007 Posts: 4558 Location: Germany
|
Posted: Mon Apr 08, 2024 12:30 pm Post subject: |
|
|
@pietinger
Hab mit doch brav an die Vorgaben gehalten! :) Code: | lucy /boot # mount /efi
lucy /boot # mount | grep -e boot -e efi
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)
/dev/sda5 on /boot type ext4 (ro,relatime)
/dev/sda1 on /efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro) |
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
Posted: Mon Apr 08, 2024 1:05 pm Post subject: |
|
|
Josef.95 wrote: | @pietinger
Hab mit doch brav an die Vorgaben gehalten! |
Josef, ja ja, ich habe das ja nicht geschrieben als Vorwurf, sondern nur als Ergänzung für alle Leser des Threads (Ich habe selbst auf meiner alten Kiste immer noch /boot als Mountpoint weil ich einfach zu faul bin umzustellen ... und weil es ja eigentlich auch nicht nötig ist, solange man weiß, wo, was nicht dem Standard entspricht, und deshalb von Beschreibungen abweichen muss.) _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
sMueggli Guru
Joined: 03 Sep 2022 Posts: 371
|
Posted: Mon Apr 08, 2024 4:51 pm Post subject: |
|
|
Das kann schon sein, dass das AMD64 Handbuch etwas anderes sagt. Allerdings schweigen sich die zwei verlinkten Seiten komplett zu Grub aus. Unter https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Bootloader#UEFI_systems wird ein Beispiel "nach Vorgabe" gezeigt, was auch korrekt ist, falls das System "nach Vorgabe" aufgesetzt wurde. Beim System von flammenflitzer wurde das System jedoch nicht "nach Vorgabe" (also nach Zeitgeist, Mode) aufgesetzt, sondern noch traditionell.
Die Fehlermeldungen im ersten Post haben zwar nichts mit Grub zu tun, dennoch wollte ich darauf hinweisen, dass der ursprünglich gepostete grub-install-Befehl "komisch" aussieht (aber nicht schädlich ist).
Apropos Handbuch: Das Handbuch sagt auch folgendes: Quote: | For DOS/Legacy BIOS systems, the bootloader will be installed into the /boot directory |
Sieht für mich falsch formuliert aus.
pietinger wrote: |
Ebenso die UAPI Group Specifications (bitte GPT_ESP nicht mit GPT_XBOOTLDR verwechseln):
https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
=>
Quote: | EFI System Partition c12a7328-f81f-11d2-ba4b-00a0c93ec93b SD_GPT_ESP VFAT The ESP used for the current boot is automatically mounted to /boot/ or /efi/, unless a different partition is mounted there (possibly via /etc/fstab) or the mount point directory is non-empty on the root disk. If both ESP and XBOOTLDR exist, the /efi/ mount point shall be used for ESP. This partition type is defined by the UEFI Specification.
Extended Boot Loader Partition bc13c2ff-59e6-4262-a352-b275fd6f7172 SD_GPT_XBOOTLDR Typically VFAT The Extended Boot Loader Partition (XBOOTLDR) used for the current boot is automatically mounted to /boot/, unless a different partition is mounted there (possibly via /etc/fstab) or the mount point directory is non-empty on the root disk. This partition type is defined by the Boot Loader Specification. |
|
Inwiefern ist die UAPI für GNU Grub wichtig? Stand heute kann Grub "UAPI-konform" installiert werden. Es besteht also keinerlei akuter Handlungsbedarf, GNU Grub anzupassen. Ich bin jedoch zuversichtlich, dass die Leute beim GNU Grub-Projekt in der Lage sein werden, die entsprechenden Änderungen vorzunehmen, damit sie einen Bootloader anbieten, der konform zu UAPI UND Gentoo Handbuch sein wird. So es denn nötig und sinnvoll ist.
pietinger wrote: | Wir sollten uns aber nicht an dem orientieren was der grub-install defaultmäßig macht (zumindestens NOCH macht), sondern uns an die Vorgaben halten. |
Oder wir schauen uns einfach die geposteten Ausgaben des betroffenen Systems an und leben mit der Tatsache, dass noch nicht jedes System "nach Vorgabe" aufgesetzt respektive nachjustiert wurde. |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 4169 Location: Bavaria
|
Posted: Mon Apr 08, 2024 6:03 pm Post subject: |
|
|
sMueggli, Du hattest bereits in Deinem 1. Post (richtigerweise) geschrieben, dass "grub-install /dev/nvme0n1p8" vermutlich falsch ist, und deswegen brauchte ich das nicht zu wiederholen. Ich habe quasi Deinen 1. Post nur ergänzt mit "M.W. sollte beim grub-install noch ..." (jetzige Hervorherbung durch mich). Lediglich bei Deinem 2.Post musste ich dem widersprechen: "Bei Grub ist /boot/efi der "richtige" Einhängepunkt für die ESP (im Sinne der Standardeinstellung)" (jetzige Hervorherbung durch mich).
sMueggli wrote: | [...] Beim System von flammenflitzer wurde das System jedoch nicht "nach Vorgabe" (also nach Zeitgeist, Mode) aufgesetzt, sondern noch traditionell.
[...]
Oder wir schauen uns einfach die geposteten Ausgaben des betroffenen Systems an und leben mit der Tatsache, dass noch nicht jedes System "nach Vorgabe" aufgesetzt respektive nachjustiert wurde. |
... und genau deswegen habe ich im 2. Post geschrieben:
Quote: | oder (wenn eine alte Installation):
grub-install --efi-directory=/boot |
Jja, wenn der grub-install das defaultmäßig hernimmt, kann man es weglassen; wenn ich aber nicht 100 % weiß ob der verwendete grub-install das auch wirklich defaultmäßig so macht, dann gehe ich lieber auf Nummer sicher. Ich denke auch an die Zukunft, wo ein neuer grub - respektive neuer grub-install - das genau andersherum macht (also /efi als default nimmt) und dann liest jemand diesen alten Thread ... _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
flammenflitzer Advocate
Joined: 25 Nov 2003 Posts: 3483 Location: Berlin
|
Posted: Mon Apr 08, 2024 6:47 pm Post subject: |
|
|
Danke. Mache mich demnächst noch einmal die Sache. Im Moment ist auf der Arbeit und im Garten viel zu tun und das System startet ja... |
|
Back to top |
|
|
|