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

FreeBSD-11.0 amd64 memstick Korrektur für UEFI-Boot

Dieses Thema im Forum "FreeBSD - Installation" wurde erstellt von STB-3, 16 Februar 2017.

  1. STB-3

    STB-3 New Member

    Registriert seit:
    16 Februar 2017
    Beiträge:
    2
    Ort:
    Rheinland
    Problem(e):
    =======

    - USB Stick mit FreeBSD 11 bootet nicht mit UEFI,
    - oder "hängt" während Bootvorgangs,
    - oder Reset während des Bootvorgangs


    Alle Angaben beziehen sich konkret auf das

    >> FreeBSD-11.0-RELEASE-amd64-mini-memstick.img <<

    wahrscheinlich sind die Probleme/Lösungen auf alle bisherigen FreeBSD-11.0-xxx Images übertragbar. Ein Test mit den aktuellenFreeBSD-11.0-STABLE-amd64 Image erbrachte identische Ergebnisse.


    Die Reparatur wurde unter (Arch)Linux durchgeführt, sollte aber auch mit jeder anderen Linux Distribution funktionieren. FreeBSD wurde aufgrund der möglichen Probleme mit den FAT Dateisystem (s.u.) nicht verwendet.

    Getestet wurde mit einem älteren HP 6200 (Core i3). Da es nur wenige BIOS/UEFI Hersteller gibt (d.h. bei PC´s AMI/Award/Phoenix), ist die Marke HP hier relativ unerheblich und die Ergebnisse sollten übertragbar sein.



    1. Problem: Die GPT Partitionierung
    =====================

    Mit 11.0 wurde die GPT Partionierung bei den USB Stick Images eingeführt, also

    der Datenträger enthält am Anfang
    - einen Protective MBR
    - den primären GPT Header
    und am Ende
    - den sekundären GPT Header

    Genau hier liegt das Problem; da die Stickgröße den Image-Ersteller nicht bekannt sein kann, folgt der sekundäre GPT Header hier direkt nach der letzten Partition. Der "last usable sector" wird bei unseren Image mit 612991 angegeben (also nach ca. 300MB), während er z.B. bei einem 8GB Stick real bei 15661056 liegt. (Sektorgröße 512 Byte).

    Erste Korrektur:

    gdisk (für GPT Partion, nicht fdisk) aufrufen

    gdisk /dev/sd<X> .................................. sd<X> mit den tatsächlichen device ersetzen, z.B. sdc

    zur Kontrolle verify <v> ....................... Ergebnis s.o. "Identified 1 problems!"
    ins "experts' menu" wechseln <x>
    Reparatur mit <e> ................................ "Relocating backup data structures to the end of the disk"
    Neue Partitionsdaten speichern <w> ... Die 4 Partitionen auf dem Stick werden hierbei nicht zerstört, Warnung ignorieren.



    2. Problem: die EFI Partition
    =================

    Die erste Partition (= EFI Partition) ist zwangsweise eine FAT Partition, die den Bootloader im Verzeichnis EFI/BOOT enthält. So die UEFI Spezifikationen.

    Zitat aus <wiki.freebsd.org/UEFI>
    "FreeBSD's FAT32 code appears to sometimes create filesystems that the UEFI code can't properly read"

    Wir sichern also die Daten aus der Partition, erstellen das FAT Dateisystem mit Linux neu und spielen den zuvor gesicherten Bootloader wieder ein. (sudo/su hier nicht mit angegegeben)

    mkdir tmp
    mount /dev/sd<X>1 tmp ........... sd<X>1 mit der tatsächlichen Partition ersetzen, z.B. sdc1 Linux erkennt den Partionstyp, deshalb kein -t Parameter
    cd tmp
    tar cvf ../EFI-backup.tar EFI/ ....... EFI-Verzeichnis mit Bootloader sichern
    cd ..
    umount tmp
    mkfs.vfat /dev/sd<X>1 ............. EFI/FAT Dateisystem neu erstellen; nur die erste Partition, 1 nicht vergessen!
    mount /dev/sd<X>1 tmp
    cd tmp
    tar xvf ../EFI-backup.tar ............. Bootloader inkl. Verzeichnis wieder zurücksichern
    cd ..
    sync
    umount tmp



    Somit sollte der FreeBSD-11.0 Memstick jetzt grundsätzlich bootfähig sein,

    <secure boot> im UEFI Setup muss natürlich ausgeschaltet sein,
    sämtliche "legacy" Booteinträge im BIOS/UEFI zum Test ausschalten
    Mischbetrieb USB2/USB3 vermeiden (will sagen, der billige USB3 Stick am USB2 Port)

    Auf mögliche USB Probleme beim Booten achten (evt. boot -v), Stichwort "USB Quirks" (z.B. NO_6_BYTE), aber das ist ein anderes Thema...
     
    Zuletzt bearbeitet: 16 Februar 2017
    holgerw gefällt das.
  2. holgerw

    holgerw Active Member

    Registriert seit:
    29 Februar 2016
    Beiträge:
    739
    Ort:
    Simtshausen - Hessen
    Wow, solch ein Beitrag als Foreneinstieg :)

    Vielleicht ist das etwas für das Wiki.

    Viele Grüße,
    Holger