Hallo,

ich würde mir gerne das System mit EFISTUB einrichten. Die Anleitung dazu habe ich mir auch durchgelesen, dennoch habe ich Verständnisfragen dazu. Das vorgeben ganz grob ist:
- Festplatte mit GPT formatieren und /boot als $esp anlegen
- Unterhalb von $esp noch EFI/arch anlegen
- Dateien in das angelegte Verzeichnis kopieren

Wenn ich /boot als $esp benutze, benötige ich dann dennoch ein Script welches mir bei einem Kernel Update den Kernel als EFISTUB Kernel kopiert? Laut dem Hinweis brauche ich die Punkte da drunter nicht weiter beachten und kann direkt zum Punkt "2 Booting EFISTUB" springen.

Vielleicht ist es tatsächlich mangelndes Verständnis meinerseits aber ich finde die Anleitung jetzt auch nicht so richtig gut strukturiert.


Danke schon mal für jede Hilfe. Ich bin derzeit fast nur tagsüber von der Arbeit aus im Internet, also bitte nicht wundern wenn ich nicht immer sofort antworte. 😉

Gruß

Tapsi
https://bbs.archlinux.org/viewtopic.php?pid=1241590 Da scheiden sich derzeit noch die Geister, wie es gemacht werden sollte. 🙂

Ich benutze meine ESP als normales /boot – ohne besondere Ordnerstruktur, Kernel-Images liegen direkt im Ordner. Funktioniert einwandfrei, solange kein anderes OS vorhanden ist…
Hätte ich vielleicht auch dazu schreiben sollen. Ich habe nicht vor ein anderes OS außer Arch zu installieren. Danke für den Link. Das Thema UEFI scheint generell unterschiedlich verstanden zu werden wenn ich mir die diversen Wikis und Foren anderer Distributionen anschaue.
Mein Layout mit refind als Bootmanager:
/boot/
|-- efi
|   `-- EFI
|       `-- refind
|           |-- drivers
|           |   |-- btrfs_x64.efi
|           |   |-- ext2_x64.efi
|           |   |-- ext4_x64.efi
|           |   |-- hfs_x64.efi
|           |   |-- iso9660_x64.efi
|           |   `-- reiserfs_x64.efi
|           |-- icons
|           |   |-- arrow_left.icns
|           |   |-- arrow_right.icns
|           |   |-- boot_linux.icns
|           |   |-- boot_win.icns
|           |   |-- func_about.icns
|           |   |-- func_exit.icns
|           |   |-- func_firmware.icns
|           |   |-- func_reset.icns
|           |   |-- func_shutdown.icns
|           |   |-- os_altlinux.icns
|           |   |-- os_arch.icns
|           |   |-- os_centos.icns
|           |   |-- os_chrome.icns
|           |   |-- os_debian.icns
|           |   |-- os_ecomstation.icns
|           |   |-- os_fatdog.icns
|           |   |-- os_fedora.icns
|           |   |-- os_freebsd.icns
|           |   |-- os_freedos.icns
|           |   |-- os_funtoo.icns
|           |   |-- os_gentoo.icns
|           |   |-- os_gummiboot.icns
|           |   |-- os_haiku.icns
|           |   |-- os_hwtest.icns
|           |   |-- os_kubuntu.icns
|           |   |-- os_legacy.icns
|           |   |-- os_linux.icns
|           |   |-- os_linuxmint.icns
|           |   |-- os_lubuntu.icns
|           |   |-- os_mac.icns
|           |   |-- os_mandriva.icns
|           |   |-- os_netbsd.icns
|           |   |-- os_openbsd.icns
|           |   |-- os_opensuse.icns
|           |   |-- os_redhat.icns
|           |   |-- os_refind.icns
|           |   |-- os_refit.icns
|           |   |-- os_slackware.icns
|           |   |-- os_suse.icns
|           |   |-- os_ubuntu.icns
|           |   |-- os_unknown.icns
|           |   |-- os_win.icns
|           |   |-- tool_apple_rescue.icns
|           |   |-- tool_mok_tool.icns
|           |   |-- tool_part.icns
|           |   |-- tool_shell.icns
|           |   |-- transparent.icns
|           |   |-- vol_external.icns
|           |   |-- vol_internal.icns
|           |   `-- vol_optical.icns
|           |-- refind.conf
|           `-- refind_x64.efi
|-- initramfs-linux-fallback.img
|-- initramfs-linux.img
|-- lost+found
|-- refind_linux.conf
`-- vmlinuz-linux
/boot/efi ist dabei der Mountpoint der ESP (formatiert mit vfat) und /boot ist ext4. Ich muss da auch keinen Kernel umherkopieren. Nur refind muss/kann ich dann da reinkopieren, wenn ich updaten will (ist ja nichts updatekritisches, wenn es funktioniert, dann funktioniert es). Windows ist auf einer externen USB-Platte und wird, wenn sie dran hängt, von refind automatisch erkannt und angezeigt.

In der refind_linux.conf steht:
"ArchLinux"    "root=/dev/disk/by-label/ssdroot rootfstype=ext4 rw resume=/dev/disk/by-label/ssdswap initrd=initramfs-linux.img add_efi_memmap intel_iommu=on nmi_watchdog=0"
"refind" taucht dann auch bei mir im EFI als Boot-Option auf.
11 Tage später
Creshal schriebIch benutze meine ESP als normales /boot – ohne besondere Ordnerstruktur, Kernel-Images liegen direkt im Ordner. Funktioniert einwandfrei, solange kein anderes OS vorhanden ist…
Ich bin jetzt erst dazu gekommen mich mal wieder an mein Notebook zu setzen. Allerdings scheine ich da etwas verkehrt zu machen. Der USB-Stick ist mit Arch als UEFI Bootfähig beschrieben und das funktioniert auch. Ebenso wird efivarfs automatisch gemountet. Partitioniert habe ich die Festplatte jetzt folgendermaßen:

/dev/sda1 = /boot (EF00)
/dev/sda2 = /
/dev/sda3 = swap
/dev/sda4 = /home

/dev/sda1 ist mit
mkfs.fat -F32 /dev/sda1
formatiert. Danach habe ich /mnt/boot erstellt und /dev/sda1 dahin gemountet. Jetzt kommt schon der erste Punkt an dem ich hänge. Wenn ich jetzt / nach /mnt mounte, habe ich hier ja auch einen /boot Ordner. Ich hätte schon gerne ein UEFI Setup, allerdings scheine ich mich dafür zu dumm anzustellen. Wenn ich keinen Bootmanager verwende, muss ich dann zwingend per efibootmgr einen Eintrag in der UEFI Firmware machen oder sollte die Firmware im Idealfall mir automatisch Arch anzeigen?
> formatiert. Danach habe ich /mnt/boot erstellt und /dev/sda1 dahin gemountet. Jetzt kommt schon der erste Punkt an dem ich hänge. Wenn ich jetzt / nach /mnt mounte, habe ich hier ja auch einen /boot Ordner.

Öh… in der richtigen Reihenfolge mounten? 🙂

> Wenn ich keinen Bootmanager verwende, muss ich dann zwingend per efibootmgr einen Eintrag in der UEFI Firmware machen

Ja.
Ich habe jetzt mit efibootmgr einen Eintrag für Arch angelegt. Eingetragen habe ich:
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux.efi -L "Arch Linux"

Das Ergebnis ist eine Kernel panic:
kernel panic-not syncing: VFS: unable to mount root fs on unknown block(0,0)
Also den Eintrag neu gemacht, diesmal folgendermaßen:
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux.efi -L "Arch Linux" -u initrd=/initramfs-linux


Diesmal keine Kernel panic dafür ein neuer Fehler:
ERROR: Unable to find root device ´´
Um das root device mit anzugeben müsste ich den option -u erweitern um root=/dev/sda2 Der Befehl würde dann so aussehen:
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux.efi -L "Arch Linux" -u initrd=/initramfs-linux root=/dev/sda2
Das Problem hierbei ist dann allerdings das der Eintrag von efibootmgr nachher ohne Unterbrechung ist. Nach einem Neustart kommt dann die Meldung nichts gefunden wurde unter " initrd=/initramfs-linuxroot=/dev/sda2". Ich habe mir auf der Seite http://www.rodsbooks.com/efi-bootloaders/efistub.html den Beispiel Eintrag unter "Configuring and Using the EFI Stub Loader" angeschaut und da steht das auch ohne einen speziellen Trenner oder ähnliches.
-u root=/dev/sda3 ro initrd=EFI/arch/initramfs-arch.img
Wahrscheinlich mach ich immer noch irgendwo etwas verkehrt. Oder ich stell mich blöd an. Wenn ich mir die Anleitung angucke oder auch das Gentoo Wiki dann sieht das nach einer ganz einfachen Sache aus. 🙂
Setzt mal alle Parameter hinter dem -u in Anführungszeichen, also
-u "root=/dev/sda3 ro initrd=EFI/arch/initramfs-arch.img"
So funktioniert es zumindest bei mir.
Danke, das war es. Jetzt läuft es. Was für "kleinigkeiten" es manchmal sind. Danke an alle für die Hilfe.