Du bist nicht angemeldet.

Eine Antwort schreiben

Schreibe deinen Beitrag und versende ihn
Beitragsoptionen
Deine Antwort

Zurück

Themen-Übersicht (Neuester Beitrag zuerst)

Greg
21.11.2019 11:57:03
fablab schrieb:

...Wird der systemd-boot Bootloader bei Arch in einem UEFI System immer automatisch installiert?

Nein.  Systemd-boot ist im Paket systemd enthalten. Muß mit pacman nicht gesondert installiert werden. Um den ins UEFI zu installieren siehe Post #15

fablab
21.11.2019 10:27:31

Hallo Forum,

handelt es sich bei der "startup.nsh im UEFI Bios" erstellte um die gleiche, wie die mit "startup.nsh  mit nano /boot/efi/startup.nsh" erstellte?

Warum wird die Datei als Script bezeichnet, für sieht die startup.nsh  eher nach einer Konfigurationsdatei?

Muss die Datei als ausführbar gekennzeichnet werden, davon habe ich bisher nichts gelesen?

Wird der systemd-boot Bootloader bei Arch in einem UEFI System immer automatisch installiert?

MfG

fablab

blub
20.11.2019 19:23:09

Ja, ich habe auch im UEFI Bios rumgefummelt. Bis ich merkte, dass das nichts bringt. Daher auch völlig irrelevant, was efibootmgr ausgibt, für die Lösung mit startup.nsh müssen keine efivars geändert werden.
/dev/sda1 ist bei mir 512MB. Ist bei den meisten Anleitungen eine Art Standardgröße. Geht aber auch deutlich kleiner, müssen ja nur initrd und Kernel-Image drauf.

Was bei dir schwieriger sein sollte, erschließt sich mir nicht so ganz. Anstatt root=/dev/sda2 kannst du auch root=UUID=... in startup.nsh eintragen, oder wie auch immer du deine Root-Partition identifizierst. Für ein btrfs Subvolume musst du noch zusätzlich den Parameter rootflags=subvol=... einfügen.

fablab
20.11.2019 17:45:31

Hast Du auch im UEFI Bios rumgefummelt?
Dort habe ich eine startup.nsh auch mal testweise angelegt. angelegt.

Bei mir war es vermutlich etwas schwieriger weil ich ein /@ Subvolume habe.

Wie groß ist deine /dev/sda1?

Was gibt "efibootmgr --verbose" bei dir aus?

blub
20.11.2019 17:35:38

Da gibt es eigentlich nicht viel zu dieser Datei zu sagen, kann man schon während der Installation im Livesystem anlegen.
Man sollte nur beachten, dass /boot auch gleichzeitig die EFI-Partition ist, wenn man nicht noch irgendwelche Kernel- oder efi-Dateien hin und her kopieren will.
Alles, was man wissen muss, steht im Wiki-Eintrag zu EFISTUB.

fablab
20.11.2019 16:57:43

Kannst Du mir etwas zu der "/boot/startup.nsh" Datei sagen?

Jetzt dachte ich, die kann man nur im UEFI Menü editieren und erstellen.

blub
20.11.2019 16:46:31
fablab schrieb:

...
Kann es evtl. am UEFI Bios von Virtualbox liegen?

Ich hatte gestern Abend an dem gleichen Problem gesessen, die Antwort ist: Ja!
VirtualBox speichert beim Ausschalten der VM keine efivars, die von innerhalb der VM geändert wurden (sprich mit efibootmgr usw). Ein Reboot funktioniert noch, aber ein Shutdown überlebt die Konfiguration leider nicht.

Meine Lösung:
/boot/startup.nsh

vmlinuz-linux root=/dev/sda2 rw initrd=\initramfs-linux.img

und das war auch schon alles. Bootmanager wie Grub benutze ich nicht.
* Standardkernel von Arch
* /dev/sda1 EFI, Fat32, Mountpoint /boot
* /dev/sda2 Linux Filesystem, ext4, Mountpoint /

fablab
20.11.2019 09:21:19

Mittwoch, 20. Nov. 2019

Mein neues startup.nsh  Script:
cat /boot/efi/startup.nsh

Shell> fs0:
edit startup.nsh
\EFI\Arch-Linux-grub\grubx64.efi
ctrl-s <cr>
<enter>
ctrl-q <cr>
reset

Ausführbar gemacht mit:

chmod +x /boot/efi/startup.nsh

Warum hast das Script die Endung "nsh"?
Wie wird das Script ausgeführt?


Info, der Eintrag Boot0003 wird vergessen, wenn das System ausgeschaltet wird, ein reboot funktioniert:

efibootmgr --verbose
BootCurrent: 0001
BootOrder: 0003,0000,0001,0002
Boot0000* EFI DVD/CDROM PciRoot(0x0)/Pci(0x1,0x1)/Ata(1,0,0)
Boot0001* EFI Hard Drive        PciRoot(0x0)/Pci(0xd,0x0)/Sata(0,0,0)
Boot0002* EFI Internal Shell    MemoryMapped(11,0x2100000,0x28fffff)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
Boot0003* Arch-Linux-grub       HD(1,GPT,ecefe053-7b28-4c47-80cb-fe0358dd08df,0x800,0x7d000)/File(\EFI\Arch-Linux-grub\grubx64.efi)

Nicht mal mein Script funktioniert richtig:

[root@arch efi]# sh ./startup.nsh
./startup.nsh: Zeile 1: fs0:: Das Argument ist ungültig
./startup.nsh: Zeile 2: edit: Kommando nicht gefunden.
./startup.nsh: Zeile 3: EFIArch-Linux-grubgrubx64.efi: Kommando nicht gefunden.
./startup.nsh: Zeile 4: Syntaxfehler beim unerwarteten Wort `newline'
./startup.nsh: Zeile 4: `ctrl-s <cr>'
[root@arch efi]# 

Von Scripten habe ich auch keine Ahnung, ich kann zur Zeit nur nachmachen. :-(


Ok, jetzt Verstanden, in der EFI ist es einzugeben. *wow


Einfachste Lösung:

https://askubuntu.com/questions/566315/ … ell#573672

Copy and rename \EFI\ubuntu\shimx64.efi to \EFI\boot\bootx64.efi is the best. credit – CallMeLaNN Nov 26 '17 at 18:46


Nur auf Arch übertragen und schon funktioniert es.

Danke

MfG

fablab

fablab
19.11.2019 20:26:00

Ubuntulösung Dez. 2014: https://uberubuntu.info/questions/2082/ … tive-shell

Hallo Forum,

mit den Eintrag "Eintrag von Perryg vom 31.05.2014" https://forums.virtualbox.org/viewtopic.php?t=61970 , kann ich nichts anfangen, das sagt mir nichts.
Ich kanne nicht umsetzen.


Jetzt habe ich im Arch Guest getan:

nano /boot/efi/startup.nsh 
cat /boot/efi/startup.nsh 
vmlinuz-linux rw root=/dev/sda1 [rootfs=myfs] [rootflags=myrootflags] \
 [kernel.flag=foo] [mymodule.flag=bar] \
 [initrd=\intel-ucode.img] initrd=\initramfs-linux.img
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch-Linux-grub

So sieht boot bei mir aus:

https://nopaste.linux-dev.org/?1277111

Partitionen:

Gerät           Typ
/dev/sda1     EFI-System
/dev/sda2     Linux-Dateisystem, btrfs
/dev/sda3     Swap

Das Problem besteht weiterhin, was fehlt, was habe ich falsch gemacht?

Fehlen noch Informationen von meinem System?



MfG

fablab

Greg
19.11.2019 14:34:37
fablab schrieb:

Wie kommst Du dann auf die weitere Kernelauswahl oder den Notmodus?

Per systemd-boot gibt es eine zu konfigurierende Datei /boot/loader/loader.conf
Dort in der Einstellung timeout3 den Kommentator vorne entfernen.
Zeile hinzufügen mit default uefi_arch.
Eine weitere Datei editieren:
/nano /boot/loader/entries/uefi_arch.conf
Mit den Eintragungen
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=LABEL=p_arch rw

Eine weitere Datei editieren:
/nano /boot/loader/entries/uefi_arch_fallback.conf
Mit den Eintragungen
title Arch Linux fallback
linux /vmlinuz-linux
initrd /initramfs-linux-fallback.img
options root=LABEL=p_arch rw

So hat man mit systemd-boot 2 Bootmöglichkeiten innerhalb von 3 Sekunden auszuwählen.

Das Gleiche kann man auch mit efistub machen:
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux -L "Arch Linux efistub" -u "initrd=/initramfs-linux.img root=LABEL=p_arch rw"
efibootmgr -c -d /dev/sda -p 1 -l \vmlinuz-linux -L "Arch Linux fallback efistub" -u "initrd=/initramfs-linux-fallback.img root=LABEL=p_arch rw"

Wobei die Auswahl dann aber mit dem Uefi des PCs ausgewählt werden muß.
Mit efibootmgr kann man die Bootreihenfolge nachträglich verändern, löschen, was auch immer.

Was virtualbox und qemu-KVM gemeinsam haben, weiß ich nicht.

Nachtrag:
Habe eben mal mit virtualbox Arch installiert.
systemd-boot funktioniert. grub ist nach dem Reboot nicht drin.
Ich verfolge das nicht weiter, da ich systemd-boot und efistub vorziehe.
Wer konfortabel einen Bootloader benutzen will, dem könnte ich noch refind empfehlen.
Gruß aus DN (nicht DK)
Greg

Baldr-noligin
19.11.2019 14:16:16

Das Skript gehört in Guest auf die EFI-Partition.

Du trägst hier nicht die Kernel ein, sondern nur den Pfad zur grubx64.efi-Datei. Wichtig hierbei Backslash im Pfad zu verwenden. Dann sollte das EFI-BIOS von VirtualBox die Datei beim Einschalten ausführen und Grub starten. Alles andere wird dann in Grub selbst konfiguriert (grub.cfg).

Schau dir mal den Eintrag von Perryg vom 31.05.2014 in dem von mir verlinkten Forum-Thread an. Da findest du ein Beispiel.

fablab
19.11.2019 13:31:32

https://wiki.archlinux.org/index.php/EF … nsh_script

startup.nsh

vmlinuz-linux rw root=/dev/sdX [rootfs=myfs] [rootflags=myrootflags] [kernel.flag=foo] [mymodule.flag=bar] [initrd=\intel-code.img] initrd=\initramfs-linux.img

Danke, die Sache war, ist ja nicht ganz unerheblich, aber wie setze ich das um?
Wie finde ich /dev/sdX ?

Gehört das Script in den Guest oder in den Host?

Ist das ein Bug oder so gewollt von Archlinux bzw. Virtualbox?

@Greg
Behebt das dein qemu-kvm Problem auch?

Baldr-nologin
19.11.2019 12:54:44

Tschuldige ... eine Sache hatte ich noch vergessen.

Siehe mal hier:
https://wiki.archlinux.org/index.php/Vi … n_EFI_mode
und hier:
https://forums.virtualbox.org/viewtopic.php?t=61970

Mit startup.nsh kannst du die Einstellung das Grub automatisch gestartet wird persistent machen.

fablab
19.11.2019 09:39:45

Hi, danke, es funktioniert stimmt, meine Lösung bzw. mein Fehler:

https://wiki.archlinux.de/title/GRUB

Booten per UEFI: GRUB ins UEFI eintragen.

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch-Linux-grub

Grub hatte ich nicht ins UEFI eingetragen.

[root@arch ~]# efibootmgr --verbose
BootCurrent: 0001
BootOrder: 0003,0000,0001,0002
Boot0000* EFI DVD/CDROM PciRoot(0x0)/Pci(0x1,0x1)/Ata(1,0,0)
Boot0001* EFI Hard Drive        PciRoot(0x0)/Pci(0xd,0x0)/Sata(0,0,0)
Boot0002* EFI Internal Shell    MemoryMapped(11,0x2100000,0x28fffff)/FvFile(7c04a583-9e3e-4f1c-ad65-e05268d0b4d1)
Boot0003* Arch-Linux-grub       HD(1,GPT,ecefe053-7b28-4c47-80cb-fe0358dd08df,0x800,0x7d000)/File(\EFI\Arch-Linux-grub\grubx64.efi)
[root@arch ~]# 

Leider geht der Eintrag nach weiterem Booten verloren.

Meine Version:
Package: virtualbox-6.0
Version: 6.0.14-133895~Ubuntu~bionic

[root@arch ~]# blkid
/dev/sda1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="8680-6E66" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="ecefe053-7b28-4c47-80cb-fe0358dd08df"
/dev/sda2: LABEL="ROOT" UUID="77bf17f0-4f69-4c85-ae7e-8d040192e9ab" UUID_SUB="5ce6695e-9ab5-4eff-a7d1-7127d5645579" TYPE="btrfs" PARTLABEL="Linux filesystem" PARTUUID="f8478830-ca27-462a-84c2-8f50762c0756"
/dev/sda3: LABEL="SWAP" UUID="57ec4edd-124a-4c14-a787-4956d9863b7b" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="e681da02-3d8b-4f32-89e5-505a8d9e41d1"
[root@arch ~]# 
Festplattenbezeichnungstyp: gpt
Festplattenbezeichner: DD00CF4E-B262-4E82-89AA-95513E01586A

Gerät        Anfang      Ende Sektoren Größe Typ
/dev/sda1      2048    514047   512000  250M EFI-System
/dev/sda2    514048  92788735 92274688   44G Linux-Dateisystem
/dev/sda3  92788736 125829086 33040351 15,8G Linux Swap

/dev/sda2 enthält ein btrfs Filesystem.


Grub wird bei einem Reboot von dem Guest Arch nach dem Eintrag immer angezeigt,
Fahre ich die Arch VM kompett runter und starte neu, startet das System wieder ohne Grub.
Der "Boot0003* Arch-Linux-grub" UEFI Eintrag fehlt wieder.

https://www.virtualbox.org/manual/ch03.html#efi

Note that the Oracle VM VirtualBox EFI support is experimental and will be enhanced as EFI matures and becomes more widespread. Mac OS X, Linux, and newer Windows guests are known to work fine. Windows 7 guests are unable to boot with the Oracle VM VirtualBox EFI implementation.


Info:

https://forums.virtualbox.org/viewtopic … 15&t=95300

EFI: Switch to newer firmware code base and add NVRAM support, should improve compatibility with OSes significantly


@Baldr
Bei dir funktioniert es zuverlässig, wenn ja, mit welcher Software, Releaseständen?



MfG

fablab

Baldr-nologin
19.11.2019 09:19:48
fablab schrieb:

Kenn es evtl. am UEFI Bios von Virtualbox liegen?

Nein. Grub funktioniert auch in Virtualbox.

Fußzeile des Forums

Powered by FluxBB