Ich suche einen Bootloader für Linux für BIOS mit Autoerkennung, so wie mein aktuelles UEFI-System.
Zur Erklärung: Das UEFI lädt von der Festplatte aus der EFI System Partition die \EFI\refind\refind_x64.efi, das lädt aus dem gleichen Ordner seine Konfigurationsdatei und einen ext4-Treiber. Spezielle Kerneleinträge in der rEFInd-Konfig hab ich nicht. Die ESP und alle verfügbaren Dateisysteme (also FAT32 und ISO9660 durch UEFI, HFS+ bei Apple und alles was eben an Treibern da ist, also ext4) werden auf EFI-Programme gescannt. Gefunden werden dann ESP:\EFI\Microsoft\bootmgfw.efi und einige vmlinuz-* auf ext4-Systemen. Für die Linuxkernel werden aus der refind_linux.conf im Verzeichnis des Kernels die Kernelargumente gelesen und dann an den EFISTUB-Loader im Kernel übergeben. Der lädt dann das eigentliche Linux.
TL;DR: BIOS-Bootloader soll von der ext4-Bootpartition alles nehmen, was vmlinuz* oder bzImage oder so heißt und das mit den Argumenten aus einer Datei (unabhängig von der Kerneldatei) laden und mir das in einem Menü präsentieren, dass ich mir einen auswählen kann.
Bootloader mit Autoerkennung für BIOS
-
-
Grub2.
Kann mit update-grub automatisch sämtliche Linuxkernel und Windows-Partitionen erkennen und macht automatisch Menüeinträge. -
GRUB2 kommt nicht in die Tüte. Ich will die Config-Datei auch verstehen.
-
Grub2.Auch wenn du den IRC-Kanal noch so oft deswegen zugenölt hast: Dieses. Selbst der Ubuntu-GRUB hat ohne weitere Konfiguration mein Arch richtig eingebunden und umgekehrt.
Darunter gibt es neben Syslinux ernsthaft wirklich nur LILO und ich denke, selbst du willst dir das nicht antun. -
GRUB2 kommt nicht in die Tüte. Ich will die Config-Datei auch verstehen.Du brauchst da doch garkeine Config-Datei mehr, die generiert er dir automatisch.
-
Meines Wissens gibt es keinen Bootloader, der wo du ein glob-Muster für Dateinamen angeben kannst. GRUB kann dir die Root-Partition dynamisch machen, aber sowohl GRUB1/2 als auch syslinux (genauer extlinux) wollen einen fixen Pfad für den Kernel, soweit ich das sehe.
Von daher sehe ich nur drei Optionen, willst du unbedingt dynamisches Laden des Kernels:
a) Du schreibst dir ein Script was dir die Config-Files dynamisch generiert (das ist der GRUB2 Ansatz, eine minimale GRUB2-Config ist sogar menschenlesbar, das Script macht das dermassen unlesbar).
b) Du patcht dir ein Syslinux damit dass da geht (von allen ist Syslinux wohl der Minimalste und entspricht am ehsten deiner Beschreibung)
c) Du verwendest ein Mini-OS zum Chainloaden. Ein Syslinux was dir ein einen minimalen Linux-Kernel mit initramfs lädt, was dann den eigentlichen Kernelnamen raussucht und mit kexec lädt. Oder du schreibst ein Syslinux-Modul was dir das tut.Nachtrag: Eine Möglichkeit wäre ein Zwischending zwischen a) und c), du patcht dir das linux.c32 Modul von syslinux: http://www.syslinux.org/wiki/index.php/Linux.c32
-
Du brauchst da doch garkeine Config-Datei mehr, die generiert er dir automatisch.
Okay, rEFInds install.sh versteh ich auch nicht. Aber eine Bootloader-Config kann ja echt wunderbar einfach sein:
Code19:21:56 [qsuscs:~] % grep -e "^#" -e "^$" -v /boot/efi/EFI/refind/refind.conf; cat /boot/refind_linux.conf timeout 10 scan_all_linux_kernels # So scannt er nach allen Linux-Kerneln (vmlinuz*, bzImage*, …), nicht nur die, die *.efi heißen. Meine Kernel können ja auch alle EFISTUB "Boot with default options" "root=PARTUUID=16c512a9-0a42-448f-9db9-dc295c652c07 quiet" "Boot with default options (/dev/sdb1)" "root=/dev/sdb1 quiet" "Boot with default options (verbose)" "root=PARTUUID=16c512a9-0a42-448f-9db9-dc295c652c07" "Boot with default options (/dev/sdb1) (verbose)" "root=/dev/sdb1"
@gandro | öö qsuscs linux.c32 hacken wär ggf. echt wat cooles%qsuscs | wat?@gandro | syslinux kann nebst linux-kernel auch so kleine binaries laden@gandro | da gibt ne binary die dir nen linux-kernel lädt%qsuscs | mh also was ich ja sonst für mein problem für ne dämliche idee hab%qsuscs | /boot als fat32, kleines dos-image mit entsprechender autoexec.bat mit menü backen, loadlin.exe… :D@gandro | joa hab ich mir auch gedacht@gandro | aber nich gesagt weil ext verlangt%qsuscs | ja gut wenn ich zweimal denk brauch ich das garnicht%qsuscs | war grad noch bissel in dem setup hier drin%qsuscs | rEFInd mit /boot extra ist bissel mehr arbeit, und wenns im rootfs ist muss ja ext oder btrfs oder wat weiß ich, umsdos ist ja echt nich mehr angebracht :D@gandro | das syslinux-modul wär ggf aber echt funktionierend@gandro | sind grad mal 415 zeilen c@gandro | öö! qsuscs der lua-interpreter in syslinux kann dir kernel laden@gandro | d.h. du kannst dir nen lua-script laden was von bios geladen wird anstatt autoexec.bat@gandro | http://www.syslinux.org/wiki/index.php/Lua.c32 Phai | Link-Titel: Lua.c32 - Syslinux Wiki@gandro | dafür musse nimma compiler anfassen -
% sudo grub2-mkconfig /usr/sbin/grub2-probe: error: failed to get canonical path of `PARTUUID=16c512a9-0a42-448f-9db9-dc295c652c07'.
Pfft
Jetzt mitmachen!
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!