EFI Externer-Datenträger
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Seit mehreren Jahren kommen zunehmend Computer-Systeme auf den Markt, die mit einem "Unified Extensible Firmware Interface" ((U)EFI) statt dem lange Zeit genutzten BIOS ausgestattet sind. Deshalb soll in diesem Artikel die Aufmerksamkeit auf die durch diese Technik entstehenden Unterschiede gelenkt werden.
Allgemeiner Hinweis¶
Diese Beschreibung ist vorzugsweise dann anwendbar, wenn Ubuntu wegen Platzmangel vom internen Datenträger auf einen externen Datenträger (z.B. USB-Medium bzw. Festplatte) ausgelagert werden muss. Außerdem kann diese Beschreibung benutzt werden, wenn zum Testen anstelle einer Installation in einer VM eine weitere Installation auf einem externen Datenträger eingerichtet werden soll (Multiboot).
Hinweis:
Auf einem Rechner mit einem EFI Bootmanagement muss (beachte → 9023909) jede weitere Installation (Multiboot) im EFI-Modus erfolgen, damit diese mit den anderen Systemen kompatibel ist. Es sollten bei einem externen Datenträger mit einer USB-Schnittstelle mindestens der Standard 3.0 vorhanden und ein Speicherplatz von 8 GiB vorhanden sein.
Dabei wird in dieser Beschreibung auf Besonderheiten eingegangen,
die die Vorbereitungen zur Installation
die Maßnahmen bei der Installation
die den ersten Start nach erfolgter Installation
betreffen – sofern sie etwas mit der Nutzung von UEFI zu tun haben. Anderweitige Probleme mit Ubuntu auf EFI-Systemen, die eventuell nach längerer Laufzeit hervortreten, sind nicht Gegenstand dieses Artikels.
Hinweis:
Alle Hinweise und Beschreibungen in diesem Artikel beziehen sich ausschließlich auf eine Installation, ausgehend von einem Hostrechner mit einem auf UEFI basierenden Ubuntu-System.
Die Nutzung mit aktivierten "Secure Boot" ist hierbei ebenso möglich wie eine verschlüsselte Installation und wurde als Basis bei dieser Beschreibung angewendet und getestet.
Installation¶
Die Installation auf einem externen Datenträger (USB oder eSATA) kann prinzipiell wie unter
beschrieben ausgeführt werden.
Es sind dabei die folgend aufgeführten Hinweise und Abweichungen bei der Installation zu beachten. Es wird empfohlen, bei der Partitionierung innerhalb der Installation die Option Etwas Anderes zu benutzen.
Vorbereitungen vor Installation¶
Die Aufbereitung der Partitionstabelle sollte der Größe der Festplatte angepasst sein, bei größeren Festplatten ist eine GPT-Partitionstabelle vorzusehen.
Ist beabsichtigt, diesen externen Datenträger auch an anderen UEFI-Rechnern zu betreiben, so ist auf dem externen Datenträger vor der Installation im Live-System eine EFI-Partition als erste Partition einzurichten. Diese wird zwar für die Installation noch nicht benötigt, kommt jedoch in den nachfolgenden Schritten zur Anwendung.
Dazu reicht in der Regel eine Partition mit ca. 64 MiB, als Dateisystem ist VFAT vorgeschrieben.
Abweichung ohne Bootloader¶
Um ein Überschreiben der Dateien im Verzeichnis /EFI/ubuntu vom Hostsystem zu verhindern, ruft man am Live-Desktop den Installationsassistenten Ubiquity nicht mit dem Programmstarter auf dem Desktop auf, sondern öffnet mit der Tastenkombination
Strg + Alt + T
ein Benutzer-Terminal [1] und gibt dort folgenden Befehl ein:
ubiquity -b &
Damit wird die Installation gestartet und danach keine Auswahl für das Anlegen eines Starteintrags angezeigt und auch keiner angelegt.
Partitionierung¶
Weitere Partitionen sind während der Installation zu bestimmen/anzulegen:
Root-Partition
Ist es beabsichtigt, diesen externen Datenträger nur an einem Hostrechner im Multiboot zu betreiben, so ist eine weitere SWAP-Partition nicht erforderlich.
separates Homeverzeichnis
Eine separates Homeverzeichnis ist nicht zwingend erforderlich. Wenn man verschiedene Ubuntu-Varianten oder verschiedene Versionen nebeneinander benutzen möchte, ist von einem gemeinsamen Homeverzeichnis dringend abzuraten.
Nachbereitung weiteres System¶
Experten-Info:
Um ein weiteres System im selben Rechner auswählen zu können, braucht nicht zwangsläufig ein Eintrag in das NVRAM des Hostrechners eingebracht zu werden. Allerdings lässt sich ein derart erstelltes System ohne eine Nachbereitung nicht starten. Es wird empfohlen, anstelle der Funktion os-prober
einen Menüeintrag mittels geeigneter Skripte nachträglich im Hauptsystem zu erstellen.
Einbinden stationäre Festplatte¶
Ist beabsichtigt, diesen externen Datenträger nur an diesem Hostrechner im Multiboot zu betreiben, startet man den Hostrechner und öffnet am Desktop mit Strg + Alt + T ein Terminal [1] und gibt dort ein:
sudo update-grub
Nun sollte in der Datei /boot/grub/grub.cfg das System vom externen Datenträger vorhanden sein. Nach einem Neustart ("reboot") kann man nun das weitere System im Bootmanager GRUB 2 auswählen und dieses System den eigenen Wünschen und Aufgaben entsprechend konfigurieren.
Autarke Verwendung¶
Will man ein System auf einem externen Datenträger auch an einem anderen UEFI-Rechner betreiben, so ist die Einbindung in das GRUB 2-Menü des jeweiligen Hostrechners zwar prinzipiell möglich – über geeignete Skripte sogar mit dedizierter Anzeige. Jedoch ist ein Eintrag im NVRAM des Hostrechners nicht immer sinnvoll noch erforderlich.
In der Regel erkennen die EFI-BIOS-Routinen beim Starten des Rechner Speichermedien, die extern angeschlossen werden und eine eigene EFI-Partition (VFAT-Formatierung) haben. Diese werden in der Regel im EFI-Menüeintrag angezeigt. Nach der Auswahl im EFI-Menü prüft das EFI-BIOS dann das Vorhandensein eines Verzeichnisses
/EFI/Boot,
wobei die Schreibweise (Groß- bzw. Kleinbuchstaben) ohne Belang ist. In diesem Verzeichnis wird nach einer Datei:
bootx64.efi
gesucht und wenn vorhanden, zum Starten ausgewertet.
Startdateien aufbereiten¶
Nach der Installation auf dem externen Datenträger startet man ein Hostsystem und verbindet das zur Installation eingesetzte Installationsmedium (DVD/CD bzw. USB-Stick) mit diesem Rechner.
Die für den externen Datenträger erforderlichen Dateien werden vom Installationsmedium übernommen/kopiert:
aus dem Verzeichnis /EFI/boot/
die Datei BOOTx64.efi
die Datei grubx64.efi
z.B. im Homeverzeichnis in das Verzeichnis ~/Downloads. Das Installationsmedium kann nun wieder entfernt werden, und man verbindet danach den externen Datenträger mit dem Hostrechner und ermittelt im Terminal [1] mit:
sudo blkid
die Zuordnung des externen Datenträgers – angenommen wird beispielhaft:
/dev/sdc1 = EFI-Partition vom externen Datenträger
/dev/sdc2 = Rootpartition vom externen Datenträger
Man erstellt im Verzeichnis ~/Downloads mit einem Editor [2] eine minimale grub.cfg mit folgenden Inhalt:
1 2 3 | search.fs_uuid d3a07532-b35f-4e3f-8502-8aa4e8331b68 root hd2,gpt2 set prefix=($root)'/boot/grub' configfile $prefix/grub.cfg |
Dabei ist die angegebene UUID in der Zeile 1 diejenige, die auf die Partition mit dem Bootverzeichnis /boot (hier beispielhaft /dev/sdc2) auf dem externen Datenträger verweist. Bei einer separaten /boot-Partition oder einem Btrfs-Dateisystem sind die Angaben anzupassen.
Startdateien einbringen¶
Man bindet nun die EFI-Partition vom externen Datenträger (hier beispielhaft /dev/sdc1) im Terminal ein und überträgt die Startdateien mit:
sudo mount /dev/sdc1 /mnt sudo mkdir -p /mnt/EFI/Boot sudo mkdir -p /mnt/boot/grub sudo cp -f Downloads/BOOTx64.efi /mnt/EFI/Boot/bootx64.efi sudo cp -f Downloads/grubx64.efi /mnt/EFI/Boot/grubx64.efi sudo cp -f Downloads/grub.cfg /mnt/boot/grub/grub.cfg
Installation abschließen¶
Nun kann man das System (auf dem Hostrechner) verlassen, den Rechner neu starten und - wenn man alles richtig gemacht hat - über das EFI-Menü den externen Datenträger starten. Danach kontrolliert man das externe System und konfiguriert es entsprechend seinen Wünschen bzw. der Anforderung an dieses System.
Anpassen fstab¶
Man öffnet in einen Editor mit Root-Rechten die Datei /etc/fstab und bearbeitet diesen (beispielhaften) Abschnitt der zweiten Zeile in dieser Datei:
# /boot/efi was on /dev/sda1 during installation UUID=4AE5-EAA1 /boot/efi vfat umask=022 0 1
Experten-Info:
Dieser Eintrag wurde während der Installation angelegt und verweist auf die (erste) EFI-Partition vom Hostrechner. Außerdem wurde, weil der Aufruf des Installers mittels ubiquity -b
erfolgte, dieser Eintrag zum Einbinden der EFI-Partition als nur lesbar deklariert .
Man öffnet ein (zusätzliches) Terminal und gibt dort ein:
sudo umount /boot/efi sudo blkid /dev/sdc1
Die UUID der EFI-Partition überträgt man nun in obige zweite Zeile und korrigiert die in obiger Zeile die markierten Stellen, so dass sich (beispielhaft) das Folgende ergibt:
# /boot/efi was on /dev/sda1 during installation UUID=B78A-B435 /boot/efi vfat defaults 0 0
und speichert es dann ab. Man bindet jetzt die EFI-Partition des externen Datenträgers in das externe System im Terminal ein:
sudo mount -a mount
Mit dem letzten Befehl überprüft man, ob die EFI-Partition richtig nach /boot/efi eingebunden wurde.
Anpassen GRUB-Basis¶
Man installiert nun den Bootloader GRUB 2 neu, auch um die notwendige Signatur zu erhalten. Dazu gibt man in das Terminal ein:
sudo efibootmgr ## Information zu den bestehenden Einträgen sudo apt-get install grub-efi-amd64-signed shim-signed sudo grub-install --no-nvram
Man öffnet in einen Editor mit Root-Rechten die Datei /etc/default/grub und fügt dort diese Zeile ein:
GRUB_DISABLE_OS_PROBER=true
und speichert das dann ab. Damit diese Zeile wirksam wird, gibt man in das Terminal ein:
sudo update-grub sudo efibootmgr -v
Einträge bereinigen¶
Man sollte nach jeder Aktualisierung ("update") von GRUB 2-Paketen auf einem externen Datenträger den zugehörigen Eintrag im NVRAM wieder löschen. Angenommen, es wird als neuer Eintrag dabei für ubuntu
beispielhaft #000A
angezeigt, dann kann man im Terminal mit:
sudo efibootmgr -b 000A -B
diesen Eintrag wieder löschen, um Missdeutungen wegen doppelter Einträge zu vermeiden.
Experten-Info:
Durch die Verwendung der ISO_Dateien im Verzeichnis /EFI/Boot/ wird der technische Stand des GRUB-2-Bootloaders auch bei einer Aktualisierung nicht verändert.
Einträge aktualisieren¶
Will man auch auf dem externen Datenträger mit aktuellem Datensatz arbeiten, so muss man nach einer Aktualisierung von GRUB 2 die entsprechenden Dateien manuell im Terminal kopieren mit:
sudo cp -f /boot/efi/EFI/ubuntu/shimx64.efi /boot/efi/EFI/Boot/bootx64.efi sudo cp -f /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Boot/
Zusätzliche Information¶
Experten-Info:
Der folgende Abschnitt dient als zusätzliche Information und zum Verständnis dieser Beschreibung.
Bei der Installation bzw. bei einem Aufruf im Terminal mit:
sudo grub-install
werden u.a. folgende Dateien für die EFI-Partition aufbereitet und dann im Verzeichnis /boot/efi/EFI/ubuntu abgelegt. Wobei die innere Programmierung dieser Dateien immer darauf abgestellt ist, die Dateien in diesem Verzeichnis vorzufinden. Abgelegt werden in der Regel die Dateien:
ohne
secure-boot
grubx64.efi (einfache Form)
mit
secure-boot
grubx64.efi (angepasste Form)
shimx64.efi
MokManager.efi
grub.cfg
Die vom Installationsmedium übernommenen Dateien:
BOOTx64.efi
grubx64.efi
erwarten dagegen das Verzeichnis/die Datei:
/boot/grub/grub.cfg
auf der selben, also der EFI-Partition. Dieser Sachverhalt bzw. dieses Verhalten wurde bei der oben beschriebenen Installation und dem Betreiben des externen Datenträgers angewendet.
Links¶
EFI_Bootmanagement Übersicht zur Artikelserie
EFI_Grundlagen - Alles Wissenswerte rund um Ubuntu mit einem (U)EFI-BIOS]
EFI_Installieren - Hinweise vor einer und zur Installation
EFI_Deinstallieren - Hinweise und Maßnahmen beim Entfernen eines Betriebssystems
EFI_Nachbearbeitung - Hinweise und Maßnahmen nach einer Installation
EFI Modus umstellen - Umstellung der Boot-Modi von (U)EFI nach BIOS
Das EFI_Werkzeug - (U)EFI-Menü einstellen und prüfen
EFI USB-Stick - Einen USB-Stick für UEFI aufbereiten
EFI_Problembehebung - eine Sammlung von Erfahrungen, Fragen und Abhilfen
Laufwerksverwaltung (Abschnitt „Laufwerksabbild-wiederherstellen“) - Eine ISO-Datei auf einen USB-Stick direkt übertragen
Installation auf externen Speichermedien - vergleichbare Beschreibung für den BIOS-Modus