Bootloader mit Autoerkennung für BIOS

  • 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.

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

  • 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.

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“


  • 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.

  • 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

    Einmal editiert, zuletzt von gandro (1. Dezember 2013 um 19:25)

  • 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:

    Code
    19: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

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

    Einmal editiert, zuletzt von thosch97 (1. Dezember 2013 um 19:36)

  • % sudo grub2-mkconfig /usr/sbin/grub2-probe: error: failed to get canonical path of `PARTUUID=16c512a9-0a42-448f-9db9-dc295c652c07'.
    Pfft :<

    PGP-Key E384 009D 3B54 DCD3 21BF  9532 95EE 94A4 3258 3DB1 | S/MIME-Key 0x1A33706DAD44DA
    G d-@ s+:- a--- C+++ UB+L++ P--- L++@ E-@>++ W+ N o? K? w>++ !O !M !V PS+++ PE-- Y+>++ PGP++>+++ !t 5? X? !R tv b+++>++++ DI !D G>+ e>+++ h !r>++ !z
    „Die Aachener gelten als Erfinder des 4. Hauptsatzes der Thermodynamik: ‚Thermo schreibt man zweimal.“‘
    “Saying that Java is good because it works on all platforms is like saying oral sex is good because it works on all sexes.”
    „Es gibt 10 Sorten von Leuten: Die einen verstehen das Binärsystem, die anderen nicht.“
    „Manche Männer lieben Männer, Manche Frauen eben Frauen; Da gibt's nix zu bedauern und nichts zu staunen; Das ist genau so normal wie Kaugummi kauen; Doch die meisten werden sich das niemals trauen“

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!