Es ist tatsächlich möglich .
Bevor ich fortfahre, sind diese Anweisungen für leere EFI-Systempartitionen (ESP) gedacht und überschreiben wahrscheinlich vorhandene Dateien oder funktionieren nicht wie erwartet. Zumindest Backups machen!
Hinzufügen der erforderlichen Partitionen für verschiedene Plattformen
Plattformen: Legacy-PC, UEFI-basierter Windows-Computer, Apple-Computer
Fügen Sie einer vorhandenen Installation mit MBR ein ESP hinzu
Sie müssen diese Anweisungen einer anderen Installation oder eines anderen Live-Mediums befolgen.
Installieren Sie das grub-efi-amd64-bin
Paket. Dadurch werden nur die benötigten Ressourcen installiert. Es wird Ihre vorhandene Installation im MBR-Stil nicht auf UEFI umstellen und die Dinge auf den Kopf stellen.
Verkleinern Sie Ihre Ubuntu-Partition in GParted , um Platz für ein ESP zu schaffen. Die empfohlenen Größen für ESPs liegen zwischen 100 MB und 500 MB. Für die Dateien, die anhand dieser Anweisungen erstellt wurden, sind jedoch nicht mehr als 2 bis 5 Megabyte erforderlich.
Hinweis: Es sollte keine Rolle spielen, wo sich Ihr ESP auf der Festplatte befindet, und das Verkleinern Ihrer Ubuntu-Partition um einige Megabyte vom Ende sollte schnell und sicher sein. Das Schrumpfen am Anfang ist nicht sicher . Eine Einschränkung: Ihr ESP sollte eine primäre Partition sein und nicht Teil einer erweiterten Partition oder eines logischen Volumes. Partitionsnummern von 1 bis 4 sind in Ordnung. Die obigen Zahlen geben eine erweiterte Partition in MBR-Partitionstabellen an.
Wählen Sie FAT32 als Dateisystem und setzen Sie das Boot-Flag.
Hängen Sie das soeben erstellte ESP und das verkleinerte Root-Dateisystem ein:
mkdir -p /mnt/esp
mount $esp_device /mnt/esp
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Hinweis: Ersetzen Sie $esp_device
und $root_device
durch die entsprechenden Geräte, z . B. /dev/sdb2
und /dev/sdb1
. Die Mountpunkte /mnt/esp
und /mnt/rootfs
sind nur Beispiele, die ausgewählt wurden, um mit dem verbleibenden Teil dieser Antwort zu arbeiten.
Installieren Sie das EFI-Image von GRUB und eine minimale Konfigurationsdatei mit:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Beachten Sie, dass dies $device
das gesamte Gerät ist, z. B. /dev/sdb
keine Partition.
Das war's, wir sind schon fertig, aber lassen Sie mich versuchen, ein paar Dinge zu erklären.
Der Parameter stellt --target x86_64-efi
sicher, dass UEFI-Images und -Module auf den angegebenen Pfaden installiert werden. --removable
Installiert das UEFI-Image auf dem fest codierten Pfad \EFI\BOOT\BOOT{arch}.EFI
für Wechselmedien anstelle eines verteilungsspezifischen Pfads. Ihr grub.cfg
In /boot/grub/
sollte mit beiden Startmethoden funktionieren und ein neuer Ordner mit dem Namen x86_64-efi
sollte jetzt neben vorhanden sein i386-pc
.
Der Vollständigkeit halber ist dies der Befehl für nicht entfernbare Medien, die NVRAM-Einträge auf der Plattform schreiben und darauf zurückgreifen:
grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
Ordnungsgemäße UEFI-Installationen enthalten eine Zeile ähnlich der folgenden in /etc/fstab
, aber das Setup funktioniert ohne und das UEFI-Image (ähnlich dem MBR-Bootloader) wird normalerweise nur während der Betriebssysteminstallation geschrieben / aktualisiert.
UUID=1234-567F /boot/efi vfat defaults 0 1
Hinzufügen eines ESP oder GRUB-BBP zu einer Installation mit GPT
Das Hinzufügen eines ESP zu einer Legacy-Installation auf einem GPT-partitionierten Laufwerk ist dem oben genannten sehr ähnlich:
- Installieren Sie das
grub-efi-amd64-bin
Paket.
- Erstellen Sie eine Partition mit einem FAT32-Dateisystem ähnlich den obigen Anweisungen, indem Sie die Größe der Root-Partition ändern und das
boot
Flag setzen.
- Hängen Sie die Partitionen ein und führen Sie den
grub-install
Befehl von oben aus, der den --removable
Parameter enthält.
Dies funktioniert auch, wenn Sie nur Ihre vorhandene UEFI-Installation auf einem anderen Computer starten möchten.
Das Erstellen einer BIOS Bootable Partition (BBP) für GRUB ist etwas anders:
Installieren Sie das grub-pc-bin
Paket.
Erstellen Sie eine Partition ähnlich den obigen Anweisungen, indem Sie die Größe der Root-Partition ändern und das bios_grub
Flag setzen. Wählen Sie kein Dateisystem und lassen Sie es unformatiert.
Bearbeiten Sie die Konfigurationsdatei /etc/default/grub
mit Administratorrechten und fügen Sie GRUB_DEVICE=/dev/sdb6
sie am Ende hinzu. Ersetzen Sie /dev/sdb6
durch den tatsächlichen Gerätenamen Ihres BBP. Sie können den Befehlszeileneditor nano verwenden , um die Sache einfach zu halten.
Installieren Sie das GRUB MBR-Image auf dem BBP mit:
grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
Möglicherweise möchten Sie die Zeile entfernen oder auskommentieren /etc/default/grub
und zur eigentlichen Installation hinzufügen.
Bonus: Fügen Sie bei einer Installation mit GPT eine Partition für Macs hinzu
Ich fand heraus, dass der sehr neue Mac (Mac Mini A1347 EMC 2840), mit dem ich getestet habe, von einem Standard-FAT32-ESP booten konnte, sogar von MBR! Wie auch immer, los geht's:
Installieren Sie die grub-efi-amd64-bin
, hfsprogs
, mactel-boot
und mactel-boot-logo
(optional) Pakete. Sie müssen die Universe- Repositorys aktivieren ( Wie aktiviere ich das "Universe" -Repositorium über die Befehlszeile? ) Und die aktuelle Mactel-Support-PPA hinzufügen ( weitere Informationen finden Sie im Mactel-Support-Community-Team ), um alle zu installieren.
Erstellen Sie eine Partition mit einem HFS + -Dateisystem ähnlich den obigen Anweisungen, indem Sie die Größe der Root-Partition ändern. Dieses Mal benötigen wir ein paar Megabyte mehr Speicherplatz. Verdoppeln Sie also die Größe des ESP, wenn Sie zuvor nur 5 Megabyte oder weniger hatten. Es ist keine Flagge erforderlich.
Montieren Sie die Partitionen:
mkdir -p /mnt/esp-mac
mount $esp-mac_device /mnt/esp-mac
mkdir -p /mnt/rootfs
mount $root_device /mnt/rootfs
Hinweis: Ich habe Konflikte gewählt $esp-mac_device
und /mnt/esp-mac
vermieden.
Führen Sie den grub-install
Befehl aus, der den --removable
Parameter enthält:
grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
Richten Sie die Partition schließlich so ein, wie es ein Mac erwartet:
sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
Um Ubuntu von einem externen Medium auf einem Mac zu starten, müssen Sie nur noch die Optionstaste ⌥ oder Altauf Windows-Tastaturen drücken und die richtige Festplatte auswählen.
Informationen zu Partitionsflags, Typcodes und GUIDs
Um so genau wie möglich zu sein, ist das Startflag für GRUB nicht wichtig. Standardmäßig sucht GRUB nach UUIDs, um das richtige Dateisystem zum Booten zu finden. Durch Setzen des Boot-Flags oder des bios_grub-Flags in GParted wird normalerweise ein Typ (MBR) oder eine GUID (GPT) für die Partition festgelegt.
Der Vorteil des Festlegens des richtigen Typs oder der richtigen GUID besteht neben einem ordnungsgemäß funktionierenden Setup darin, dass diese Partitionen im Dateimanager ausgeblendet werden. Der einfachste Weg, Typen und GUIDs zu überprüfen und zu ändern, ist über Disks ( gnome-disks
).
Alternativ können Sie parted oder gdisk verwenden:
- 0xef ist der Typcode für ESP in MBR zur Verwendung mit fdisk
- ef00 ist der abgekürzte Typcode für ESP in GPT zur Verwendung mit gdisk
- ef02 ist der abgekürzte Typcode für BBP in GPT zur Verwendung mit gdisk
Wikipedia hat eine große Liste von GUIDs für GPT .
Befehlszeilenäquivalente parted
gemäß Handbuch sind parted $device set partition esp on
und parted $device set partition bios_grub on
.