Installation mit refind statt grub

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Installation mit refind statt grub

Beitrag von Simaryp » 09.01.2020 09:21:35

Debian wird ja über einen Installer installiert und nachdem der durch ist rebooted. Wenn ich es richtig sehe, wird dabei auch standardmäßig grub installiert.

Unter Arch habe ich mir angewöhnt root zu verschlüsseln und statt einer extra boot Patition einfach die ESP nach /efi zu mounten und auf der ESP einen ordner als mountpoint anzulegen zum Beispiel "arch" oder "debian" und einen mount bind auf /boot dort hin zu machen. Statt grub nutze ich dort auch lieber refind. Das muss bei der Konfiguration zwar auch manuell installiert werden, aber erscheint mir weniger overhead als grub, bei dem ich noch nie wirklich wusste, was ich eigentlich da mache.

Also in kurz:
Anlegen einer größeren ESP und mount nach /efi.
Anlegen von /efi/debian.
Mount -bind /efi/debian /boot.
Und dann refind installieren.

Kriegt man das bei der Debianinstallation auch ähnlich hin? Oder ist es sogar ratsam nicht zu sehr von dem default Debian weg abzuweichen?

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Installation mit refind statt grub

Beitrag von smutbert » 09.01.2020 11:03:03

Was ich bei einem verschlüsselten /-Dateisystem ohne separates unverschlüsseltes /boot-Dateisystem machen würde habe ich mir auch schon oft überlegt. Dabei ist folgendes herausgekommen:

1.
Die Lösung, die du schilderst, gefällt mir insofern nicht, als /boot, dann auf einem Dateisystem liegt, das nicht die üblichen Metadaten speichern kann, wie zum Bespiel Besitzer, Gruppe und Rechte. Ich bin dem nicht weiter nachgegangen, aber ich könnte mir sogar vorstellen, dass dpkg beim Installieren von Paketen, die dort Dateien ablegen, deswegen zumindest Warnungen ausgibt.

2.
Grub (glaube nicht, dass das auch mit refind möglich wäre) sozusagen standalone auf die EFI System Partition installieren, also dort im Wurzelverzeichnis der ESP statt debian, ein Verzeichnis grub anlegen, dann grub installieren und selbst eine grub.cfg erstellen, die beim Booten von Debian den Kernel vom verschlüsselten Dateisystem liest (grub kann grundsätzlich lesend mit luks1 umgehen). Das sollte sogar soweit gehen, dass man beim richtigen Vorgehen die Passphrase nur einmal in grub und kein zweites Mal beim Booten von Debian eingeben muss.

3.
Den Kernel und die initrd mit einem Skript in »/etc/kernel/postinst.d« automatisiert bei Kernelinstallationen auf die ESP kopieren, zB wieder in ein Verzeichnis debian auf der ESP und dann dort vom Bootloader der Wahl booten lassen. Das wäre wahrscheinlich unabhängig vom Bootloader meine favorisierte Lösung.
Soweit ich das verstehe könntest auch auf refind verzichten. (refind ist ja kein Bootloader sondern nur ein Bootmanager und kann daher nur Linuxkernel laden, die EFI stub unterstützen und das kann das uefi dann auch ohne refind.) Eine Anleitung wie man den Kernel automatisiert auf die ESP kopieren lassen kann findet sich im Debian Wiki: https://wiki.debian.org/EFIStub
Ich würde trotzdem auf einen standalone installierten grub setzen. Einerseits, weil ich mich mit grub eher auskenne als mit refind :wink: und andererseits, weil sich damit notfalls auch ein Rettungssystem aus einem iso-Image (zB grml) von der ESP booten lässt.


Einen von Debian aus standalone installierten grub nutze ich übrigens auch ohne Verschlüsselung, wenn du dabei Hilfe willst, versuche ich gerne hilfreich zu sein.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: Installation mit refind statt grub

Beitrag von Simaryp » 09.01.2020 13:10:19

Refind muss auch nur auf die ESP geworfen werden und ein Booteintrag im uefi erzeugt werden.
Das schöne ist, refind findet alles ootb, auch Livesticks.
Da ich den Server nur als singleboot mache, könnte ich natürlich auch nur efistb nutzen klar.

Der genannte Weg funktioniert unter arch ohne Probleme.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Installation mit refind statt grub

Beitrag von smutbert » 09.01.2020 15:22:10

Hab noch etwas gegoogelt und es widerspricht eindeutig Debians Vorstellungen /boot auf die ESP oder eine andere mit FAT formatierte Parition zu legen. Neben den fehlenden Rechten, sollte das Dateisystem von /boot auch symbolische Links unterstützen.

Das ganze ist aber keine prinzipielle Einschränkung, sondern nur eine des Debian-Installers, der bei dem Versuch eine Meldung wie
The file system type fat32 cannot be mounted on /boot, because it is not a fully-functional Unix file system. Please choose a different file system, such as ext2.
ausgibt.
Schließlich wird bei Raspbian auch ein fat-Dateisystem als /boot verwendet. Wenn du nach der Installation /boot auf die ESP packst, musst du einige Dinge beachten.
Zum Beispiel werden bei der Kernel-Installation symbolische Links auf Kernel und initrd angelegt und die können und dürfen dann nicht in /boot angelegt werden (werden sie per default aber ohnehin nicht - man kann das in der erst anzulegenden »/etc/kernel-img.conf« konfigurieren). Möglicherweise gibt es noch ein paar weitere, wahrscheinlich zum Großteil eher exotische Features, die man dann nicht nutzen kann.

Sonst sehe ich keinen Grund warum das nicht auch unter Debian funktionieren sollte. Ich würde allerdings trotzdem /boot auf ein „richtiges“ Dateisystem legen (vorzugsweise einfach als Teil des /-Dateisystems belassen) und nur Kernel+initrd automatisiert auf die ESP kopieren.

Wenn vielleicht noch fragen darf: Wenn refind alles automatisch findet, woher weiß es welche Kernelparameter übergeben werden müssen?

KP97
Beiträge: 3433
Registriert: 01.02.2013 15:07:36

Re: Installation mit refind statt grub

Beitrag von KP97 » 09.01.2020 15:35:46

@smutbert
Eine Anleitung wie man den Kernel automatisiert auf die ESP kopieren lassen kann findet sich im Debian Wiki: https://wiki.debian.org/EFIStub
Ich hatte vor längerer Zeit mal Grub entfernt und systemd zum Booten eingerichtet. Leider hatte ich trotz viel Sucherei diese Anleitung zum Automatisieren nicht gefunden,
daher habe ich das manuell gemacht. Da ich meine Kernel selbst kompiliere, wurde mir das dann aber zu lästig und ich bin wieder bei Grub gelandet.
Vielen Dank für den Link, das probiere ich jetzt nochmal aus.

@TE
Entschuldigung, daß ich den Thread etwas gekapert habe, aber vielleicht interessiert Dich das ja auch.
Speziell zu refind kann ich aber nichts sagen, habe ich noch nicht genutzt.

@TE
Nochmal Entschuldigung, ich habe nopoaste wieder entfernt.
Auch mit der Anleitung aus dem o.a. Link ist und bleibt es Gefrickel, also nicht zu empfehlen.
Zuletzt geändert von KP97 am 10.01.2020 21:25:22, insgesamt 1-mal geändert.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: Installation mit refind statt grub

Beitrag von Simaryp » 09.01.2020 15:55:12

Die Kernelparameter kann man on the fly setzen, defaults nutzen oder aber eine kleine config mit abspeichern.
Windows findet der einfach so und irgendwelche Sticks werden auch angezeigt. Der startet dann zum Beispiel das Grub auf dem Stick.

/boot auf / geht zumindest bei verschlüsseltem root nicht. Das scheint nach sehr viel gefrickel zu klingen. Vlt. lasse ich es einfach bei einer Standardinstallation und lege die notwendige /boot Partition an. Das ist dann vlt. einfacher in der Fehlersuche, wenn es mal ein Problem gibt.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Installation mit refind statt grub

Beitrag von smutbert » 17.01.2020 23:03:47

Ist zwar schon ein paar Tage her, aber ich hab erst jetzt deine Antwort gesehen. Also erstens, danke, das mit refind klingt für mich jetzt schon deutlich interessanter (auch wenn ich momentan keine Verwendung dafür habe).
Simaryp hat geschrieben: ↑ zum Beitrag ↑
09.01.2020 15:55:12
[...]
/boot auf / geht zumindest bei verschlüsseltem root nicht. Das scheint nach sehr viel gefrickel zu klingen. [...]
Ein Skript an der dafür vorgesehenen Stelle, das Kernel+initrd von /boot an einen Ort kopiert, der für den Bootloader zugänglich ist, als Gefrickel zu bezeichnen finde ich ein bisschen hart.

Dasselbe Problem hat man ja auch mit efi stub, weil das UEFI im Allgemeinen nur das fat bzw. Dateisystem der EFI System Partition lesen kann. Die Lösung besteht dann wie gesagt auch in einem solchen Skript, wie es im offiziellen Debian Wiki beschrieben wird.
Wenn Debian so eine Konstellation bereits von Haus aus und im Installer unterstützte, würde die Lösung vermutlich genauso aussehen.

Simaryp
Beiträge: 108
Registriert: 29.11.2019 14:09:49

Re: Installation mit refind statt grub

Beitrag von Simaryp » 21.01.2020 06:19:24

Das war nicht böse gemeint. Es ist für mich nur unverständlich, warum man ein Skript schreiben sollte, um nachträglich die Kernel rüber zu kopieren, alte zu entfernen usw. usf. anstatt einfach direkt einen Ordner oder die Partition gleich als /boot zu mounten, einzig, weil das FS nicht der Spezifikation entspricht, die im Installer hinterlegt ist. Denn scheinbar funktioniert das ja generell. Wäre also die Frage, aus welchen Gründen das festgesetzt worden ist, dass /boot nicht auf FAT liegen darf.

Da der Server kein Multiboot wird, ist es im Prinzip nicht super wichtig, wie gebootet wird, solange es funktioniert. Daher ist es auch kein Beinbruch, wenn da Grub läuft. Es war nur für mich eine Überlegung wert, ob ich weiter alte Zöpfe dort abschneiden kann.

Antworten