[[Vorlage(Getestet,general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor/#Bearbeiten-von-Systemdateien:Bearbeiten von Systemdateien] }}} [[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 des lange Zeit genutzten [wikipedia:BIOS:] ausgestattet sind. Deshalb soll in diesem Artikel die Aufmerksamkeit auf den durch diese Technik entstehenden Unterschied gelenkt werden. Beschrieben wird das Konfigurieren eines Rechners nach der Installation, wie es zurzeit bei Ubuntu und deren Derivaten erforderlich werden kann. Es werden Hinweise und Problemlösungen gegeben, wie man Einstellungen vornimmt, die bei einer normal ablaufenden Installation nicht automatisch vorgenommen werden. Dabei wird in diesem Unterartikel auf Besonderheiten eingegangen, die den ersten Start nach erfolgter Installation betreffen – sofern sie etwas mit der Nutzung von (U)EFI 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 auf einem Rechner mit einem (U)EFI-BIOS. }}} = EFI-Eintrag neu erstellen = Sollte ein erster Start mangels EFI-Eintrag nicht auf Anhieb funktionieren, muss dieser (neu) erstellt werden, wie es in [:EFI_Problembehebung#EFI-Eintrag-wurde-geloescht-oder-zerstoert:] beschrieben ist. = Andere Distribution einbinden = Der Ubuntu-Installer erkennt während der Installation nicht immer andere, bereits vorhandene EFI-Installationen. Deshalb muss man ggf. die Einträge anderer Betriebssysteme im [:GRUB_2:]-Menü in einem späteren Arbeitsgang nachholen. Entsprechende Beschreibungen und Vorgaben findet man unter * [:GRUB_2/Skripte#Beispiel-EFI-Modus:] -> andere Betriebssysteme im EFI-Modus starten Andererseits sollte man bei einem Upgrade prüfen, ob der Windows-Eintrag im Grub-Menü, der über ein separates [:GRUB_2/Skripte:Skript] eingebracht wurde, wieder entfernt werden kann. {{{#!vorlage Hinweis Dieses ist konzeptionell so vorgesehen und nicht als Fehler zu betrachten. EFI-Modus bedeutet eben, dass man das UEFI-Boot-Menü zur Auswahl benutzen kann. Für das Einbinden einer anderen Distribution auf einem externen Datenträger siehe [:EFI_Externer-Datenträger:diese separate Beschreibung]. }}} == Zusätzliches Bootverzeichnis erstellen == Wenn man bei einem [:Mehrbootsystem_mit_2x_Ubuntu/#Zweites-Ubuntu-im-System:Mehrfach-Bootsystem] nicht gleich von Anfang an die [:Mehrbootsystem_mit_2x_Ubuntu/#Installation-des-2-buntu-ohne-GRUB:Installation von GRUB unterdrückt] hat, kann die mehrfache Benutzung des [:EFI_Grundlagen#EFI-Bootverzeichnis:Bootverzeichnisses] ('''/boot/efi''')'''/EFI/ubuntu''' dazu führen, dass dieses Verzeichnis und dessen Datei(en) bei der Installation eines weiteren Derivats überschrieben werden – insbesondere bei einer Aktualisierung von GRUB_2:-Paketen über das eine oder andere Derivat führt das dann zu unkontrollierten Startbedingungen, da dann die Zuordnung, welches als das primäre System gilt, immer wieder wechselt. Aus diesem Grund empfiehlt es sich bei einem sekundären Betriebssystems, gleich nach der Installation und nachdem man sich vom allgemeinen funktionieren der neuen Installation überzeugt hat, ein gesondertes Verzeichnis mit einer markanten Bezeichnung zu erstellen, quasi als "Parkplatz" für die redundante nicht benötigte GRUB-Installation und deren automatische Aktualisierungen. Dazu kann man in der Datei '''/etc/default/grub''' in einem Editor mit Root-Rechten [2] die Zeile {{{GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`}}} beispielhaft ändern in {{{GRUB_DISTRIBUTOR="Precise-Server"}}} und dann GRUB erneut installieren [1]: [[Vorlage(Befehl"sudo grub-install")]] Damit wird für diese Installation dauerhaft der GRUB-Installationspfad auf * (/boot/efi)'''/EFI/precise-server''' gelegt und auch ein darauf fixierter [:efibootmgr/#Auflistung-aller-Eintraege-Kurzformat:EFI-Menü-Eintrag] im NVRAM angelegt. [[Vorlage(Hinweis,"Der Befehl `grub-install` verändert Großbuchstaben aus der Vorgabe in der Datei '''/etc/default/grub''' immer in Kleinbuchstaben!")]] === Systeme ohne secure-boot === Bei Systemen ohne `secure-boot`-Fähigkeit wird hierbei nur die Datei '''grubx64.efi''' im Bootverzeichnis angelegt. Das sekundäre Betriebssystem kann dann auch direkt über das UEFI-Boot-Menü gestartet werden. Dabei werden dann auch die Anweisungen aus der diesem zugehörigen '''/boot/grub/grub.cfg''' angewendet. === Systeme mit secure-boot === Bei Systemen mit `secure-boot`-Fähigkeit werden hierbei die Dateien '''grubx64.efi''', '''grub.cfg''' sowie evtl. '''shimx64.efi''' angelegt, seit [:Saucy_Salamander:Ubuntu 13.10] noch evtl. zusätzlich die Datei '''MokManager.efi'''. Die GRUB-Konfiguration, auf die per '''grub.cfg''' verwiesen wird, kommt dabei allerdings nicht zur Anwendung aufgrund von folgendem: [[Vorlage(Experten"Das Verzeichnis '''/boot/efi/EFI/ubuntu''' darf nie gelöscht werden – dieses wird immer vom aktuell primären Betriebssystem verwaltet und ggf. (auch automatisch) aktualisiert! Die sekundären Betriebssysteme werden dann über den [:GRUB_2/Konfiguration/#Skript-30-os-prober:GRUB 2 Menü-Eintrag] im primären Betriebssystem aufgerufen / gestartet. Im Fall des signierten Ubuntu-GRUB-Bootloaders (secure-boot-fähig) ist die Verwendung der '''grub.cfg''' in '''EFI\\ubuntu\\ ''' [bug:1647235:fest verdrahtet] {us}, sodass trotz der Auswahl des sekundären Bootloaders per UEFI-Boot-Menü dadurch immer wieder die '''/boot/grub/grub.cfg''' des primären Betriebssystems ausgeführt wird. Um dies zu ändern, müsste dafür in der z.B. '''EFI\\precise-server\\grubx64.efi''' die Zeichenkette \"EFI\\ubuntu\" mittels eines Hex-Editors in \"EFI\\precise-server\" manipuliert werden, wodurch jedoch wegen der dann ungültigen Signatur `secure boot` nicht mehr möglich ist. Nachdem ein sekundäres Betriebssystem über die GRUB-Umgebung des primären Betriebssystem erfolgreich gestartet werden kann, sollte man deshalb bei Nutzung von `secure boot` den zusätzlichen [:efibootmgr/#Booteintrag-loeschen:Eintrag für das sekundäre Betriebssystem im NVRAM wieder löschen]!")]] Wenn man auf die '''Nutzung von secure-boot verzichten''' kann, kann man einen unsignierten Bootloader (nicht secure-boot-fähig) erzwingen. Dazu deinstalliert man die signierten Pakete und installiert GRUB anschließend neu: {{{#!vorlage Befehl sudo apt purge grub-efi-amd64-signed shim-signed --allow-remove-essential sudo apt-mark hold grub-efi-amd64-signed shim-signed sudo grub-install }}} Dadurch wird dieser intern automatisch mit der entsprechenden '''/boot/grub/grub.cfg''' des sekundären Betriebssystems verknüpft und man kann letzteres dann nicht nur über das GRUB-Menü des primären Systems starten, sondern auch über den entsprechenden Eintrag im UEFI-Boot-Menü. ==Eintrag im NVRAM absichern== Ubuntu versucht standardmäßig als Regeleintrag im [wikipedia:NVRAM:] die nächste freie Position ab `0000` aufwärts zu belegen. Wird eine derartige Position aber vom EFI-BIOS für andere Zwecke gebraucht (Hardware- und Hersteller-abhängig) und so dieser Eintrag nur flüchtig angelegt oder z.B. [:EFI_Problembehebung/#Ubuntu-startet-nur-einmal:durch Starten von Windows zerstört], ist er dann bei einem Reboot verschwunden und wird im UEFI-Boot-Menü auch nicht mehr angezeigt, und damit ist dieses Ubuntu nicht mehr start- bzw. auswählbar. Als Lösung wird die Bearbeitung des UEFI-Boot-Menüs empfohlen. Nach einer [:EFI_Problembehebung/#EFI-Eintrag-wurde-geloescht-oder-zerstoert:Wiederherstellung des EFI-Eintrags] werden mit [[Vorlage(Befehl"sudo efibootmgr | grep ^Boot[0-9] | cut -b 5-8")]] die benutzten Einträge im NVRAM angezeigt. Wird beispielhaft `000A` als freier Platz angenommen, kann man dann im Terminal [1] mit [[Vorlage(Befehl"sudo efibootmgr -c -b 000A -d /dev/sda -p 1 -L \"Precise Server\" -l \\\EFI\\\precise-server\\\grubx64.efi")]] einen neuen [:efibootmgr#Booteintrag-erstellen:UEFI-Boot-Menü-Eintrag] anlegen (bitte die jeweils doppelten 'backslash' bei der Eingabe beachten). Danach muss dann noch die [:efibootmgr/#Bootreihenfolge-aendern:Bootreihenfolge wieder festgelegt] werden auf das primäre Derivat. ==Anzeige Grubmenü anpassen== Für Ubuntu wird aufgrund der System-ID als Anzeige im Grubmenü immer "Ubuntu" verwendet, auch wenn es sich z.B. um das Derivat "Lubuntu" handelt. Dieser Umstand als solches ist für viele Benutzer unbefriedigend. Damit diese Anzeige auf das jeweils wirkliche Derivat in einer Installation mit mehreren Derivaten hinweist, kann man sich ab [:Trusty_Tahr:] für jede Installation auch die zutreffende Bezeichnung anzeigen lassen. Dazu muss für __jede__ Installation [:GRUB_2/Skripte#Anzeige-in-der-Menuezeile:diese Maßnahmen] ausgeführt werden. Nach einem [1] [[Vorlage(Befehl,"sudo update-grub")]] im primären System werden dann auch die Bezeichnungen aus den sekundären Systemen übernommen. = Secure-Boot nachrüsten = Hat man Ubuntu auf einem Rechner mit [wikipedia:UEFI:] ohne `secure-boot`-Eigenschaften installiert, so kann man diese Schutzmaßnahme auch nachträglich in ein bestehendes System einbringen. [[Vorlage(Experten,"Alle ISO-Dateien der verschiedenen Ubuntu-Derivate werden erst nach und nach mit der `secure-boot`-Eigenschaft ausgestattet, um damit auch gleich in diesem Modus installieren zu können. Man sollte die Fähigkeit des Bootens über eine EFI-Firmware mit aktiven `secure-boot` vorab mit Ubuntu bzw. einem Derivat seiner Wahl auf z.B. einem USB-Stick ausgiebig testen! Beispielhafte Einstellungen von `secure-boot` sind [:EFI_Grundlagen#Secure-Boot:diesen Bildern] zu entnehmen. Diese Einstellungen sind im eigenen System sinngemäß aufzusuchen und soweit erforderlich einzustellen.")]] Bevor man mit der Nachinstallation der Pakete beginnt, sollte man sein System - zumindest aber die Paketlisten - auf den aktuellen Stand bringen. Dazu gibt man in ein Terminal [1] ein: [[Vorlage(Befehl,"sudo apt-get update")]] == Pakete installieren == {{{#!vorlage Paketinstallation linux-signed-generic grub-efi-amd64-signed shim-signed}}} Es werden, je nach der Ubuntuversion und dem Stand der Updates, weitere Pakete der Installation automatisch hinzugefügt. Mit der Installation der Pakete wird automatisch die [:GRUB_2:]-Datei '''/boot/grub/grub.cfg''' auf den neuesten Stand gebracht. Bis hierhin ist diese Maßnahme leicht wieder rückgängig zu machen. Man kann diese Pakete in einem Terminal [1] wieder aus dem System entfernen mit [[Vorlage(Befehl,"sudo apt-get purge \"Liste installierte Pakete\"")]] [[Vorlage(Hinweis,"Es wird nur der aktuelle Kernel umgestellt! Bei dem `update-grub` wird im Submenü-Verzeichnis ab der zweiten Kernelgruppe die bisherigen, nicht signierten Kernel weiter verwendet. Erkennbar ist dies daran, dass der Zeile mit {{{linux /boot/vmlinuz-3.8.0-0-generic root=UUID=2eea1ed3-a715-4722-8aba-7dc4a7f99e9b ro quiet splash $vt_handof }}} hinter der Kernelbezeichnung das `.efi.signed` fehlt! Dieser Kernel kann aber im normalen EFI-Modus gestartet und weiterhin als Notstarter verwendet werden.")]] Nun muss man nur noch in das EFI-BIOS (NVRAM) die neuen Gegebenheiten im Terminal [1] eintragen mit [[Vorlage(Befehl,"sudo grub-install --uefi-secure-boot # --force")]] Die hierbei erfolgte Anzeige sowie die '''/boot/grub/grub.cfg''' sollte man danach erst einmal auf Plausibilität überprüfen, bevor man das System rebootet. Die Option `--force` wird nur angewendet, wenn je nach der Fehlermeldung ein weiterer Versuch ausgeführt werden soll. [[Vorlage(Hinweis,"Wird das System nach der Umstellung im EFI-`secure-boot`-Modus gestartet, so ist die Option `--uefi-secure-boot` bei einem erneuten `grub-install` nicht mehr erforderlich!")]] == Start ohne secure-boot == Ein derart umgestelltes System kann jederzeit auch über den normalen EFI-Modus ohne `secure-boot`-Einstellung gestartet werden - es erfolgt dann auf dem Monitor der (kurze) Hinweis: {{{secure boot not enabled}}} auf dem Bildschirm, was aber keinen Einfluss auf das nachfolgende Starten hat. [[Vorlage(Hinweis,"Man sollte beachten, dass - sofern in diesem Zustand ein Kernelupdate ausgeführt wird - das relevante Paket '''linux-signed-generic''' entfernt wird und danach mit diesem Kernel kein `secure-boot` mehr möglich ist. Auch werden nachfolgende Updates ohne die entsprechenden '''-signed-''' Pakete ausgeführt. Man muss dann die obige [#Pakete-installieren Nachinstallation] wiederholen.")]] == Secure-Boot wieder entfernen== Es ist zwar nicht zwingend erforderlich, aber man kann das System durch Entfernen des Paketes '''grub-efi-amd64-signed''' wieder auf den normalen EFI-Modus umstellen. Dazu gibt man in das Terminal [1] ein: [[Vorlage(Befehl,"sudo apt-get purge grub-efi-amd64-signed")]] Zu beachten ist dabei, dass die Einträge im Verzeichnis ('''/boot/efi''')'''EFI/ubuntu''' bzw. in einem selbst erstellten Verzeichnis gemäß [#Anderes-Bootverzeichnis-erstellen Anderes Bootverzeichnis] von Hand gelöscht werden müssen. = Links = == Links - intern == * [:EFI_Bootmanagement:EFI_Bootmanagement] {Übersicht} Übersicht zur Artikelserie * [:EFI_Grundlagen:EFI_Grundlagen] - Alles Wissenwerte 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 Betriebssystemes * [:EFI_Externer-Datenträger:] - Einzelnes System oder Multiboot auf externen Datenträger einrichten * [: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:] aufberieten * [:EFI_Problembehebung:EFI_Problembehebung] - eine Sammlung von Erfahrungen, Fragen und Abhilfen * [:Dualboot:] - Installation von Ubuntu neben Windows * [:Laufwerksverwaltung/#Laufwerksabbild-wiederherstellen:] - Eine ISO-Datei auf einen USB-Stick direkt übertragen == Links - extern == * [wikipedia:Extensible_Firmware_Interface:UEFI] - Unified Extensible Firmware Interface * [http://www.uefi.org/home/ UEFI Spezifikation]{us} - Aufbau und Grundsätze * [wikipedia:NVRAM:] - Non-Volatile Random-Access Memory * [http://community.acer.com/t5/Aspire/Bootreihenfolge-permanent-%C3%A4ndern-Probleme-mit-UEFI-Firmware-in/td-p/329256 ACER Rechner] - Bootreihenfolge ändern #tag: Ubuntu, System, EFI, BIOS, Installation