[[Vorlage(Getestet,general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor:Einen Editor verwenden] }}} [[Inhaltsverzeichnis()]] Seit mehreren Jahren kommen zunehmend Computer-Systeme auf den Markt, die mit einem "Unified Extensible Firmware Interface" ([wikipedia:Extensible_Firmware_Interface:(U)EFI]) statt dem lange Zeit genutzten [wikipedia: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 [:Virtualisierung:VM] eine weitere Installation auf einem externen Datenträger eingerichtet werden soll (Multiboot). {{{#!vorlage Hinweis Auf einem Rechner mit einem [:EFI_Bootmanagement:] muss (beachte -> [post: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 1. die Maßnahmen bei der Installation 1. 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. {{{#!vorlage Hinweis Alle Hinweise und Beschreibungen in diesem Artikel beziehen sich ausschließlich auf eine Installation, ausgehend von einem Hostrechner mit einem auf [wikipedia: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 * [:EFI_Installieren:] * [:Installation_auf_externen_Speichermedien:Installation auf externen Speichermedien] 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 [:EFI_Installieren#Installationsart-Etwas-Anderes: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 [wikipedia:GUID_Partition_Table:GPT]-Partitionstabelle vorzusehen. Ist beabsichtigt, diesen externen Datenträger auch an anderen [wikipedia:UEFI:]-Rechnern zu betreiben, so ist auf dem externen Datenträger vor der Installation im Live-System eine [:GRUB_2/Grundlagen#Mit-EFI: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 [wikipedia:File_Allocation_Table#VFAT: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 [[Bild(usb-creator-gtk.png,32)]] auf dem Desktop auf, sondern öffnet mit der Tastenkombination * [[Vorlage(Tasten,strg+alt+t)]] ein Benutzer-Terminal [1] und gibt dort folgenden Befehl ein: {{{#!vorlage Befehl 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 * [:Swap:Swap-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 = {{{#!vorlage Experten Um ein weiteres System im selben Rechner auswählen zu können, braucht nicht zwangsläufig ein Eintrag in das [wikipedia: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 [:GRUB_2/Skripte: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 [[Vorlage(Tasten,strg + alt + t)]] ein Terminal [1] und gibt dort ein: {{{#!vorlage Befehl 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 [wikipedia: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 ([wikipedia:File_Allocation_Table#VFAT: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''' 1. 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: {{{#!vorlage Befehl 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: {{{#!code text 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: {{{#!vorlage Befehl 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 }}} {{{#!vorlage Experten 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo efibootmgr -b 000A -B }}} diesen Eintrag wieder [:efibootmgr#Booteintrag-loeschen:löschen], um Missdeutungen wegen doppelter Einträge zu vermeiden. {{{#!vorlage Experten Durch die Verwendung der [#Startdateien-einbringen 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: {{{#!vorlage Befehl 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 = {{{#!vorlage Experten Der folgende Abschnitt dient als zusätzliche Information und zum Verständnis dieser Beschreibung. }}} Bei der Installation bzw. bei einem Aufruf im Terminal mit: {{{#!vorlage Befehl sudo grub-install }}} werden u.a. folgende Dateien für die [:EFI_Problembehebung#EFI-Partition: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) 1. '''shimx64.efi''' 1. '''MokManager.efi''' 1. '''grub.cfg''' Die vom Installationsmedium übernommenen Dateien: 1. '''BOOTx64.efi''' 1. '''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:EFI_Bootmanagement] {Übersicht} Übersicht zur Artikelserie * [:EFI_Grundlagen:EFI_Grundlagen] - Alles Wissenswerte rund um Ubuntu mit einem (U)EFI-BIOS] * [:EFI_Installieren:EFI_Installieren] - Hinweise vor einer und zur Installation * [:EFI_Deinstallieren:EFI_Deinstallieren] - Hinweise und Maßnahmen beim Entfernen eines Betriebssystems * [:EFI_Nachbearbeitung:EFI_Nachbearbeitung] - Hinweise und Maßnahmen nach einer Installation * [:EFI_Modus_umstellen:] - Umstellung der Boot-Modi von (U)EFI nach BIOS * [:efibootmgr:Das EFI_Werkzeug] - (U)EFI-Menü einstellen und prüfen * [:EFI_USB-Stick:] - Einen USB-Stick für [wikipedia:UEFI:] aufbereiten * [:EFI_Problembehebung:EFI_Problembehebung] - eine Sammlung von Erfahrungen, Fragen und Abhilfen * [:Laufwerksverwaltung/#Laufwerksabbild-wiederherstellen:] - Eine ISO-Datei auf einen USB-Stick direkt übertragen * [:Installation_auf_externen_Speichermedien:] - vergleichbare Beschreibung für den BIOS-Modus #tag: System, EFI, Installation