/boot/boot1.efifat in 13.x nicht mehr vorhanden: Ersatz?

pit234a

Well-Known Member
vielleicht weiß jeder, wie er mit FreeBSD von Hand eine Partition als EFI-System-Partition erstellen und füllen muss.
Auch ich habe so etwas schon mehrfach gemacht und fürchte mich nicht davor. Demnächst will ich in meinem (EFI-tauglichen) PC die SSDs ersetzen und dann auch gleich auf EFI umstellen. Aktuell sind die SSDs hier noch ohne EFI-Partition und ich habe diese auf einem alten Stick ausgelagert, was ja auch geht.

Bei den letzten, ganz ähnlichen Aufgaben fand ich es sehr gut und Zeit sparend, dass ich die EFI-Partition, die nur für FreeBSD da sein soll, ganz einfach einrichten konnte:
Code:
# gpart bootcode -b /boot/pmbr -p /boot/boot1.efifat -i 1 da0
so etwas richtete mir auf da0 in einer vorhandenen da0p1 eine EFI komplett ein, mit pmbr im MBR und passend formatiert und mit Leben gefüllt.

Das hatte ich mir nun auch mit FreeBSD 13.x so vorgestellt, wenn ich meine neuen SSDs vorbereite, dass ich denen ihre EFI-Partition auf diese Weise fülle.
Aber leider gibt es keine /boot/boot1.efifat und damit wahrscheinlich den kompletten Mechanismus nicht mehr?

Das ist meine Frage.
Muss ich nun in 13 alles wieder manuell machen? Also erst anlegen, formatieren und dann von Hand die passenden EFI-Dateien dorthin kopieren?

Das ist ein Rückschritt, finde ich, der aber natürlich wohl begründet sein kann. Vielleicht übersehe ich auch etwas und deshalb frage ich lieber mal.
 
Die kurze Anwort ist ja.

Die efifat Partition war eh unheimlich klein was nervt wenn Du zum Beispiel noch memtest86 nachinstallieren willst.

Das einkopieren des Loaders kann zumindest mein loadearupdate Skript übernehmen. Leider wurde der Port noch nicht aktualisiert.
 
Ja, so habe ich mir das schon gedacht.
Dein Script habe ich mir angesehen (du hattest es hier mal veröffentlicht) und dann tatsächlich in meinem System danach gesucht und nicht gefunden. Es ist ja so eine Art "One for All" und berücksichtigt auch Fälle, die ich für mich nicht möchte oder brauche. Ich habe ein ZFS mit EFI und das geht ja ziemlich einfach mit FreeBSD, zumindest mit FreeBSD alleine.

memtest habe ich aus alter Gewohnheit auf einem Stick liegen, von dem ich dann bei Bedarf boote. Wahrscheinlich würde ich es sogar vergessen, dass ich es auf dem PC selbst booten könnte. Macht der Gewohnheit.

Inzwischen, noch so eine Gewohnheit, die ich gar nicht so wirklich begründen kann, nutze ich für alle Partitionen beim Anlegen ein Allignement vom 100M. Nicht 4k, nicht 256k. Das verschenkt dann eh immer etwas Platz, ist aber für mich einfacher zu sehen und zu verstehen, als die weniger geraden Zahlen. Jedenfalls bin ich damit auch davon abgerückt, eine EFI-SP so klein wie geht zu halten. Da habe ich früher ganz bewusst schon mal FAT 12 benutzt, um klein genug bleiben zu können. Das kann ich mir heute gar nicht mehr vorstellen, wie blöd das war. Heute nehme so 200M als Standard und FAT 32 für meine EFIs.
 
In FreeBSD 13.0 ist der Installer etwas intelligenter geworden: Wenn keine UEFI-Partition vorhanden ist, legt er eine an. Ist bereits eine vorhanden, wird die genommen. In jedem Fall wird sie nach /boot/efi gemountet.
 
Interessant, bei mir wird kein /boot/efi gemountet (ich habe nicht den Installer verwendet). Da frage ich mich, wenn es mehrere EFI Partitionen gibt (wie bei mir im Mirror), nimmt er dann irgend eine oder die von der tatsächlich gebootet wird. Mit jedem Kernel Update update ich nämlich nur den Loader in einer der beiden Partitionen (immer abwechselnd). Das heißt mit jedem Udpate wechselt bei mir die EFI Partition.

Nicht dass ich sehe warum das überhaupt gemountet sein sollte. Das könnte aber mit meinem loaderupdate Skript kollidieren, wenn die EFI Partition bereits gemountet ist.
 
Sieht so aus als wird das EFI vom Installer in der fstab eingetragen. Mir wäre ja ein Skript in /etc/rc.d/ lieber das so etwas wie efibootmgr -v | sed -n '/^+/{n;s/^ *//;s/:.*//p;}' macht um das richtige EFI zu mounten.
 
Zurück
Oben