1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Bootloader auf USB-Stick oder SD-Karte installieren

Dieses Thema im Forum "FreeBSD - Installation" wurde erstellt von zuglufttier, 11 November 2017.

  1. zuglufttier

    zuglufttier Well-Known Member

    Registriert seit:
    2 November 2004
    Beiträge:
    1.639
    Ort:
    Ostfriesland
    Ahoi,

    ich habe einen HP Microserver Gen 8 und man kann dort nicht direkt von einer SSD z. B. booten, weil es im BIOS diese Option einfach nicht gibt, wenn der RAID-Controller im AHCI-Modus ist. Und genau das will ich, damit ich schön ZFS nutzen kann.
    Nun kann man einen Bootloader ja auch ein anderes Medium schreiben. Hier ist eine Anleitung für Linux: https://www.hardwareluxx.de/communi...20lv2-microserver-963207-81.html#post22905333

    Also, kurzum, wie geht das unter FreeBSD?
     
  2. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.160
    Hat der BIOS oder (U)EFI?

    Mit BIOS könntest du auch mal versuchen, ob du nicht "ohne alles" auskommen kannst und einfach auf einen Stick den /boot/boot0 mit dd drauf legen. Der enthält den alten, interaktiven FreeBSD-Loader und der kann mit einer Option auf ein internes System verzweigen und das könnte schon ausreichen, deinen ZFS-Pool zu booten. Bei mir tut es das. Wenig elegant, aber wenig Aufwand und als Test schon mal einfach durchzuführen.
     
  3. zuglufttier

    zuglufttier Well-Known Member

    Registriert seit:
    2 November 2004
    Beiträge:
    1.639
    Ort:
    Ostfriesland
    Ist noch BIOS. Das muss ich wohl mal ausprobieren...

    Also einfach das folgende, wenn /dev/da1 der Stick ist?

    dd if=/boot/boot0 of=/dev/da1
     
    Zuletzt bearbeitet: 11 November 2017
  4. zuglufttier

    zuglufttier Well-Known Member

    Registriert seit:
    2 November 2004
    Beiträge:
    1.639
    Ort:
    Ostfriesland
    OK, die komplette Lösung findet sich auch schon hier: https://forums.freebsd.org/threads/57297/#post-334517 Ich fasse nochmal zusammen, damit ich es hier später wiederfinden kann...

    Zunächst FreeBSD auf die gewünschte Platte installieren, da muss nichts besonderes gemacht werden. Zum Schluss einmal in das Live System rein und den Stick oder die SD-Karte da1 wie folgt behandeln. Das kann man auch später noch erledigen, sogar an einem anderen Rechner.

    Partition auf dem Stick erstellen:
    gpart create -s GPT da1

    Bootloader installieren:
    gpart bootcode -b /boot/boot0 da1

    Und den Bootloader so einstellen, dass er von der gewünschten Platte startet, bei mir die fünfte am Controller. Gezählt wird von 0x80 an, also ist Nummer fünf dann 0x84. "-s 5" hat nichts mit der Plattenreihenfolge zu tun, sondern sagt nur, dass nicht von einer anderen Platte gestartet werden soll, siehe "man boot0cfg":
    boot0cfg -Bv -o setdrv -d 0x84 -s 5 da1
     
  5. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.160
    das ist, denke ich mal, nicht anders. Also grundsätzlich mal nicht anders.
    Ob du den bootcode boot0 mit dd schreibst, oder mit gpart, dürfte keinen Unterschied machen. Denke ich mal. Auch nicht, ob du GPT oder MBR verwendest, denn du nutzt eh nur den Teil mit boot0 drin.
    Mit boot0cfg machst du dann das "Finetuning". Normalerweise, wenn ich das alles noch richtig weiß, hat der Loader die erste Platte konfiguriert und das Gerät, von dem aus er startet oder auch einen PXE-Boot. Dazwischen kann mit Fx Tasten gewählt werden. Nun kannst du mit boot0cfg die Deafult Fx Taste festlegen oder eine andere Platte hernehmen.

    Ich dachte mir immer, dass etwas ähnliches auch für ZFS (also gptzfsboot) möglich sein könnte. Dann könnte ich einen Stick so einrichten, dass er das ZFS nicht vom Stick aus nimmt, sondern auf ein anderes Gerät mit dem Pool verweist, eben meine eingebaute Platte.
    Dazu habe ich nichts gefunden und dann eben die oben beschriebene Möglichkeit genommen.
    Bei mir kann ich das BIOS sogar passend einstellen, es funktioniert nur eben nicht. Ich kann nicht von einer Platte im AHCI-Modus booten.
    Für den Betrieb belanglos, aber etwas mehr Arbeit gewesen.
     
  6. das.chaos

    das.chaos Duracellhase 2.0

    Registriert seit:
    16 April 2008
    Beiträge:
    361
    Ort:
    Flensburg
    Hi,

    MBR Partitionisierungschema initialisieren:
    Code:
    # gpart create -s mbr da0
    
    Bootsektor initialisieren:
    Code:
    # gpart bootcode -b /boot/mbr da0
    
    MBR Partition erzeugen:
    Code:
    # gpart add -t freebsd da0
    
    Slice anlegen und initialisieren:
    Code:
    # gpart set -a active -i 1 da0
    # gpart create -s bsd da0s1
    # gpart bootcode -b /boot/boot da0s1
    
    Bspw. UFS-Partition innerhalb eines slices anlegen:
    Code:
    # gpart add -t freebsd-ufs  -a 4k -s ${size}   da0s1
    
    usw. usf. ...

    Quelle: http://www.wonkity.com/~wblock/docs/html/disksetup.html
     
  7. pit234a

    pit234a Well-Known Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    3.160
    ja, aber das braucht es hier nicht und /boot/mbr ist "der andere" Bootloader, der "ohne Interaktivität" kommt und nur auf ein Ziel booten kann. Ich weiß nicht, ob man den auch so umändern kann, wie das bei /boot/boot0 der Fall ist. Ich habe da immer nur von boot0cfg gelesen.

    Das ist schon irgendwie unheimlich, wie klein dieser boot0-Loader überhaupt ist und was der alles kann.

    Was das Thema selbst angeht, wollte ich die Gelegenheit nutzen, mal einen Neustart meines PCs hinlegen und dann auch mal unterschiedliche Methoden und Settings testen. Zunächst fällt auch, dass einzelne Optionen geändert werden können, dabei aber die restlichen Werte wieder auf default landeten. Also, unbedingt immer wieder auslesen und prüfen, was man da hat. Ich wollte einmal nur die Ticks verändern und dadurch wurde die Bootreihenfolge dann verändert, wieder zurückgestellt.
    Sodann testete ich mit zwei PCs und die reagierten unterschiedlich.
    Bei dem einen bootete nur der Stick, der mit dd den boot0 drauf gelegt hatte und bei dem anderen nur der Stick, der mit gpart beschrieben worden war. Jener, der mit gpart beschrieben wurde, hatte auch "mehr Inhalt" im MBR. Ich hatte tatsächlich der Einfachheit halber zwei Sticks verwendet und gleichzeitig verändert und getestet. Man kann das Verhalten ja auch an "normalen" Rechnern testen, die also diese Hilfskonstruktion gar nicht bräuchten.
    Es genügt da ja der älteste und kleinste Stick im Bestand.