Es ist möglich und sehr häufig sowohl mit externen USB-Sticks als auch mit internen Laufwerken.
Zu Partitionstabellentypen:
-
BIOS braucht normalerweise nicht jede Partitionstabelle. Es interessiert sich nur für den Bootstrap-Code Teil, der die ersten 440 Bytes Ihres MBR sind. (Obwohl es Ausnahmen gibt. Einige BIOS-Implementierungen brechen tatsächlich ab, wenn sie keinen MBR mit einem der üblichen Partitionstypen finden. Hoffentlich sind diese selten.)
Die GPT-Partitionstabelle funktioniert physisch nicht Ersetzen Sie einen MBR – er beginnt immer bei Sektor 1, während sich der MBR in Sektor 0 befindet – es ist also möglich, dass eine Festplatte beides hat. Tatsächlich tun die meisten GPT-Festplatten einen "schützenden MBR" haben, der nur eine einzige Partition enthält, die die gesamte Festplatte abdeckt, um zu verhindern, dass ältere MBR-Partitionierungstools versehentlich die Daten zerstören.
So können Sie beispielsweise den Syslinux-Bootsektor in Ihren MBR installieren, und er bootet. (Der
syslinux-install_update
Das Skript erledigt dies für Sie, aber Sie können nachgptmbr.bin
suchen in Ihrem Syslinux-Paket, um dies manuell zu tun.)Ähnlich wie das Flag „aktiv“ auf MBR-Partitionen sucht Syslinux auf GPT-Partitionen nach dem Flag „legacy BIOS bootable“ (Bit 2 – UEFI-Spezifikation 2.4, Abschnitt 5.3.3, Tabelle 20); Das oben genannte Skript setzt dieses Flag auch automatisch, wenn Sie
sgdisk
haben (von gptfdisk) installiert.GRUB kann auch verwendet werden, ist aber auch etwas lästiger. Da GRUB 2 Teile von sich selbst in die traditionell ungenutzten Sektoren 1-62 "einbetten" möchte, würde es eine GPT überschreiben, die am selben Ort gespeichert ist. Daher müssen Sie möglicherweise eine dedizierte Partition von 2-4 MB erstellen und diese als BIOS-bootfähig markieren, sodass
grub-install
einen Einbettungsplatz finden würde. -
Die UEFI-Spezifikation hingegen tut sie erfordern Unterstützung für MBR-Partitionstypen (Abschnitt 12.3.1) und weisen den MBR-Partitionstyp
0xEF
zu auf die EFI-Systempartition (Abschnitt 5.2.2).Wenn Sie also aus irgendeinem Grund Ihre Festplatte nicht mit GPT zum Laufen bringen können, können Sie immer noch eine EFI-Systempartition im MBR erstellen, und sie wird verwendet, solange sie das richtige Dateisystem und alle erforderlichen Dateien enthält (Abschnitt 12.3.1.3):
Für Wechselmediengeräte darf es nur eine UEFI-kompatible Systempartition geben, und diese Partition muss ein UEFI-definiertes Verzeichnis im Stammverzeichnis enthalten. Das Verzeichnis wird
EFI
genannt . Alle OS-Ladeprogramme und Anwendungen werden in einem Unterverzeichnis unterEFI
gespeichert genanntBOOT
. InBOOT
darf es nur ein ausführbares EFI-Image für jede unterstützte Prozessorarchitektur geben Verzeichnis. Damit Wechselmedien unter EFI bootfähig sind, müssen sie gemäß den in Abschnitt 3.4.1.1 dargelegten Regeln erstellt werden.
Bei Betriebssystemen ist es Linux generell egal, ob heute vom BIOS und morgen vom UEFI gebootet wird. Ich musste meinen Laptop diese Woche vielleicht hundert Mal vom UEFI-Modus in den „BIOS-Kompatibilitätsmodus“ und zurück neu starten, während ich versuchte, einen Fehler in der 3.17-UEFI-Unterstützung zu finden …
Beachten Sie, dass es im Artikel „BIOS to UEFI Transformation“ um etwas ganz anderes geht. Es beschreibt, wie UEFI selbst installiert wird – eine UEFI-Implementierung namens „DUET“ – zum Starten von einem reinen BIOS-System. Es hat nichts damit zu tun, ein Betriebssystem direkt vom BIOS zu booten.
Ja, das ist möglich.
Die Grundidee ist, Ihren USB-Stick wie folgt mit GPT zu partitionieren:
- BIOS-Startpartition (GPT-Typ
1686148-6449-6E6F-744E-656564454649
) - 1 MiB, kein Dateisystem - EFI-Systempartition (GPT-Typ
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
) - 200 MiB, VFAT-Dateisystem - Linux-Startpartition (GPT-Typ
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - 1 GiB, ext4-Dateisystem - Linux-Root/Home-Dateisystem (GPT-Typ
0FC63DAF-8483-4772-8E79-3D69D8477DE4
) - verbleibender Speicherplatz, XFS- oder Btrfs-Dateisystem
Diese Partitionierung ermöglicht es uns, auf Legacy-Systemen zu booten, da mit GPT noch Platz für einen MBR ist (aus Gründen der Abwärtskompatibilität) und Grub2 genügend Platz hat, um eine mittlere Stufe in die BIOS-Bootpartition zu installieren. Legacy-BIOS kümmern sich nicht um das Partitionierungsschema und der Grub2/Linux-Kernel hat keine Probleme, GPT auf Legacy-Systemen zu verstehen.
Auf UEFI-Systemen ignoriert die UEFI-Firmware den MBR und verwendet die EFI-Systempartition als Einstiegspunkt.
Bei Fedora beispielsweise müssen Sie grundsätzlich Folgendes tun:
Stellen Sie sicher, dass das Linux-Boot-Dateisystem unter /boot
gemountet ist und das Dateisystem der EFI-Systempartition ist unter /boot/efi
gemountet .
(Neu-)Installieren Sie sowohl Legacy- als auch UEFI-Bootloader:
grub2-pc grub2-efi-x64 shim-x64 efibootmgr
(Neu-)Generieren Sie die Grub-Konfigurationsdateien sowohl für Legacy- als auch für UEFI-Boot:
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# grub2-mkconfig -o /boot/grub2/grub.cfg
Abhängig davon, ob Ihr System im Legacy- oder UEFI-Modus gestartet wurde, müssen Sie entweder die erste oder die zweite Datei reparieren und (linux|initrd)16
ersetzen mit (linux|initrd)efi
oder umgekehrt.
Grub in den MBR installieren:
# grub2-install --target=i386-pc /dev/sd_your_usb_stick_device
Voila.