ubuntuusers.de

EFI Externer-Datenträger

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

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,

  1. die die Vorbereitungen zur Installation

  2. die Maßnahmen bei der Installation

  3. 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 usb-creator-gtk.png 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:

Ist es beabsichtigt, diesen externen Datenträger nur an einem Hostrechner im Multiboot zu betreiben, so ist eine weitere SWAP-Partition nicht erforderlich.

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/

    1. die Datei BOOTx64.efi

    2. 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

    1. grubx64.efi (einfache Form)

  • mit secure-boot

    1. grubx64.efi (angepasste Form)

    2. shimx64.efi

    3. MokManager.efi

    4. grub.cfg

Die vom Installationsmedium übernommenen Dateien:

  1. BOOTx64.efi

  2. 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.

Diese Revision wurde am 26. April 2019 08:20 von ubot erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System, Installation, EFI