ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

EFI Problembehebung

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Seit mehreren Jahren kommen zunehmend Computer-Systeme auf den Markt, die mit einem Unified Extensible Firmware Interface (kurz (U)EFI) in der Mainboards-Firmware ausgestattet sind statt der lange Zeit genutzten BIOS-Firmware.

Daraus ergeben sich eine Reihe von Fragen bis hin zu ernsthaften Problemen zur Integration in und von Ubuntu und dem Zusammenspiel mit Windows.

Dieser Artikel stellt eine Sammlung der Erfahrungen von den Autoren zusammen, die diese bei Ihrer Arbeit gesammelt haben. Diese Sammlung erhebt keinen Anspruch auf Vollständigkeit - Erfahrungen kann man nicht lesen, die muss man selber machen!

Standardfragen und Antworten

Probleme bei der Installation

Gab es beim Versuch einer Installation Probleme, so sollte man das System mit einer Live-System gezielt untersuchen. Man sollte das Live-System im EFI-Modus starten und am Desktop die folgenden Maßnahmen ausführen.

NVRAM auslesen

Dazu öffnet man ein Terminal mit der Tastenkombination

  • Strg + Alt + T

und gibt in das Terminal [1] ein:

sudo apt-get install efibootmgr 

sudo efibootmgr -v 

Es wird eine Liste der Einträge im NVRAM angezeigt. Auch das Installations-Medium muss in dieser Liste sein. Eine typische Ausgabe ist beispielhaft

Boot0001* Windows Boot Manager	HD(1,800,32000,34911255-cfd8-43ce-a600-fb43636a9c2c)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...a................

Daraus lässt z.B ableiten:

  1. markierte Stelle = Betriebssystem

  2. markierte Stelle = lfd. Datenträger

  3. markierte Stelle = Pfad mit Startdatei auf der EFI-Partition

Informationen zum EFI-BIOS

Eine weitere Informationsquelle sind die Angaben zum EFI-BIOS im System. Dazu gibt man in das Terminal [1] ein:

sudo dmidecode -t0 | grep -Ei "BIOS boot|UEFI" 

Als Rückmeldung erhält man dann je nach System:

  • Computer verfügt nur über ein BIOS ohne UEFI

    •      BIOS boot specification is supported

  • Computer verfügt über ein UEFI mit CSM

    •      BIOS boot specification is supported
           UEFI is supported

  • Computer verfügt nur über ein UEFI ohne CSM

    •      UEFI is supported

Information zu den Datenträgern

Man kann sich eine Übersicht über die vorhandenen Festplatten machen. Dazu öffnet man die Laufwerksverwaltung mit

  • Super -Taste antippen → "Laufwerksverwaltung" ins Suchfeld eingeben →

Dann öffnet sich ein Fenster, in dem links angezeigt wird, welche Laufwerke im Rechner sind, dass ist schon mal die erste Kontrolle. Das Fenster auf Vollbild stellen → oben links.

Nun mit der linken linke Maustaste-Taste die Festplatte(n nacheinander) anklicken und die Aufteilung sich ansehen

  • Obere Hälfte Angaben zur Festplatte

  • Untere Hälfte welche Partitionen gibt es

  • ganz unten nach dem Anklicken einer Partition kann man sich mit

    • "Partition bearbeiten"

weitere Details anzeigen lassen. Hierbei ist es bei einem vorhandenen Windows EFI-System wichtig, dass folgende zwei Partitionen zu finden sind:

  • "EFI-Systempartition"

  • "Reservierte Microsoft-Partition"

Als Ergänzung sollte man noch die Formatierung und Aufteilung der Datenträger im Terminal [1] sich ansehen mit

sudo parted -l 

Eine hierbei auftretenden Fehlermeldungen muss man nun im Detail überprüfen - siehe dazu MischMasch Partitions-Tabelle.

Probleme und Lösungen

Der Windows-Bootmanager

Windows-Bootmanager.png
Auswahl Windows Bootmanager

Meistens wird ein neues (U)EFI-Computer-System mit einem Windows 8 Betriebssystem ausgeliefert. In der Regel kennt man die Funktionstasten, um die verschiedenen Basis-Optionen zu erreichen. Sollte man diese nicht kennen oder ist man sich unsicher, so kann man diese Basis-Optionen auch über den Windows-Bootmanager erreichen.

Man startet das Windows 8 ganz normal und kann

  • in der Anmeldemaske (unten rechts)

  • am Desktop

das "Neustarten" einleiten / auswählen. Um damit in die für Ubuntu relevanten Optionen des Windows-Bootmanagers zu gelangen, muss dazu nur gleichzeitig die Umschalttaste gedrückt werden. In der folgenden Anzeige (siehe Abbildung) arbeitet man mit der linke Maustaste-Taste nacheinander die "Apps" ab

Mein Ubuntu ist nicht im EFI-Menü

Das Aufrufen einer Ubuntu-Installation erfolgt nach einer Ubuntu EFI Installation in der Regel automatisch. Es wird der Eintrag im NVRAM benutzt, der mit der Installation angelegt wurde.

Hinweis:

In der Regel legt der Ubuntu-Installer den Ubuntu Starteintrag im NVRAM so an, dass damit nach einem Reboot auch automatisch Ubuntu gestartet wird.

Ist dieses aber nicht möglich, weil man z.B. nicht die richtige Tastenkombination zum Aufruf des EFI-Menüs kennt, so kann man dieses auch über den Windows-Bootmanager auswählen.

Ubuntu im Windows-Bootmanager starten

Nach dem Aufruf des Windows-Bootmanagers wählt man in der Auswahl der Optionen (siehe Abbildung) nacheinander die Apps

  • "Ein Gerät verwenden"

  • "ubuntu"

Nach der Auswahl mit der linke Maustaste sollte das Ubuntu starten.

Anzeige des NVRAM

EasyBCD_Auswahl_alle.png
EasyBCD Anzeige EFI-Partition

Mit der Windows Anwendung EasyBCD kann man sich u.a. die Einträge im NVRAM anzeigen lassen, jedoch ist damit keine Ergänzung mit einem EFI-Eintrag um diese Bootoption im Windows Bootmanager möglich. Aber man erkennt, dass das Ubuntu auf dieser Partition eingerichtet wurde. Nun kann man den erforderlichen Booteintrag manuell generieren. Dazu ruft man am Windows Desktop das Terminal mit Adminrechten auf und gibt dort ein:

bcdedit /create /d "Mein Linux" /application bootsector 

Ausgegeben wird eine Zeichenkette / UUID innerhalb geschweifter Klammern, zum Beispiel:

 {ef8119c2-86bc-11dc-99e3-0019dbeb3cb3} 

Diese UUID muss man bei dem nächsten Befehl einmal sorgfältig in den markierten Bereich von Hand zwischen die geschweiften Klammern gegeben.

bcdedit /set {UUID} device partition=\Device\HarddiskVolume1 

Danach mit den vorherigen Eintrag wieder zurückrufen und dann die Parameter korrigieren auf

bcdedit_efi_ubuntu.png
Ergebnis manueller Eintrag

bcdedit /set {UUID} path \EFI\ubuntu\grubx64.efi # oder shimx64.efi 

bcdedit /displayorder {UUID} /addlast  # oder /addfirst 

Am Ende lässt man sich das Ergebnis anzeigen mit

bcdedit /enum 

und es sollte dann wie in der Abbildung aussehen. Damit erscheint dieses im Windows 7 als Auswahlzeile bzw. in Windows 8 als App, die dann (hoffentlich) das Ubuntu startet.

Hinweis:

Das secure-boot muss deaktiviert sein, weil ansonsten das Nachladen der erforderlichen Dateien abgeblockt wird.

Komme nicht ins EFI-BIOS

Nach dem Aufruf des Windows-Bootmanagers wählt man in der Auswahl der Optionen nacheinander die Apps

  • "Problembehandlung"

  • "Erweiterte Optionen"

  • "UEFI-Firmwareeinstellungen" → Button "Neu Starten"

Danach startet Windows 8 in das Firmware-Setup (UEFI).

Mit Ubuntu CD/DVD

Man kann alternativ versuchen, das Firmware-Setup auch mit dem Ubuntu Installations-Medium aufzurufen - sofern dieses nicht von den Einstellungen im Setup abgeblockt wird. Bei einer CD/DVD wählt man am GRUB 2-Menü nach dem Start

  • mit zum Eintrag "Check disc for defects"

  • mit E den Editor aufrufen

  • und löscht mit die letzten Zeilen

  • ergänzt dafür mit

    • "insmod efifwsetup"

    • "fwsetup"

  • startet mit F10

und gelangt nach dem Reboot in das Firmware-Setup.

Mit Ubuntu USB-Stick

Hat man sich den Empfehlungen angeschlossen, das ISO z.B mit UNetbootin auf einen USB-Stick zu bringen, so kann man auf dem USB-Stick die Datei am Ende

  • /boot/grub/grub.cfg

mit folgender Sequenz ergänzen:

1
2
3
4
5
menuentry 'Firmware Setup aufrufen' {
   set gfxpayload=keep
   insmod efifwsetup
   fwsetup
}

Mit den anderen Ergänzungen (siehe Beispiel bei Boot Optionen anpassen) erhält man dann gleichzeitig ein Universal-Werkzeug - zum Installieren, Reparieren sowie Stöbern im Firmware-Setup.

Ubuntu auf USB-Festplatte

Hat man bereits ein Ubuntu Betriebssystem im EFI-Modus auf einer (externen) Festplatte, so kann man die direkte Auswahl im GRUB 2-Menü benutzen. Diese Option ist allerdings erst ab Quantal Quetzal gegeben.

Probleme mit Windows

Es kann passieren, dass das Windows nach einer Installation von Ubuntu bzw. nach Arbeiten mit Ubuntu nicht mehr richtig arbeitet. Das kann verschiedene Gründe haben. Einige markante Probleme werden nachfolgend beschrieben.

EFI-Partition

Windows und auch Ubuntu starten scheinbar ohne Probleme - und doch erscheinen nicht erklärbare Probleme im laufenden Betrieb. Dazu wird unter Windows u.a. folgendes Fehlverhalten festgestellt bei der:

  • "Systemsicherung" , diese bricht mit einer Fehlermeldung ab

  • "Eingabeaufforderung" , diese verweigert Administratorrechte

parameter-efi-partition.png
Einstellungen Parameter einer EFI-Partition

Dann sollte man unter Ubuntu die Einstellungen der EFI-Partition zu

  • "Partitionstyp, Bezeichnung und Flags"

überprüfen. Dazu ruft man durch Antippen der Super -Taste und der Eingabe in das Suchfeld von

  • "Laufwerksverwaltung"

diese Anwendung auf und fragt die Festplatte, auf der sich die EFI-Partition befindet, nach den Parametern der EFI-Partition ab unter

  • "Partition bearbeiten"

Das Ergebnis muss (abgesehen von der Partitionsbezeichnung) die abgebildeten Einstellungen aufweisen. Diese sind, sofern erforderlich, anzupassen.

Hinweis:

Mit dem Werkzeug GParted lassen sich diese Parameter zwar abfragen, nicht jedoch korrekt setzen / einstellen!

Booten aus dem Grubmenü

Nicht auf allen Rechnern mit aktiven secure-boot kann man aus dem GRUB_2 Menü das Windows direkt zum Booten aufrufen, obwohl der generierte Eintrag korrekt ist. Dabei erfolgt die folgende bzw. eine sinngemäße Ausgabe auf dem Monitor:

/EndEntire
file path: /ACPI(a0341d0,0)/PCI(2,1f)/UnknownMessaging(12)/HD (1,800,3200,55129134d8cfce43,a6,0)/ File (\efi\microsoft\boot)/ File (bootmgfw.efi)
/EndEntire

Dieses ist begründet in der Hersteller spezifischen Aufbereitung des UEFI. Man kann dann nur

  • das Windows direkt über das EFI-Menü (BIOS) booten

  • den Rechner ohne secure-boot benutzen (im BIOS deaktivieren - eingeschränkte Sicherheit)

Experten-Info:

Man sollte, da der Windows-Eintrag auf diesen Rechnern im GRUB_2 Menü ohnehin nicht korrekt arbeitet, diesen in der /etc/default/grub über das Einbringen der zusätzlichen Zeile

  • GRUB_DISABLE_OS_PROBER=true

deaktivieren!

Eine Alternative für betroffene Rechner, um das secure-boot weiterhin zu nutzen, ist das Setzen der Option --bootnext in einem Terminal vor dem Herunterfahren aus dem Ubuntu, um so das Windows automatisch als nächstes zu starten.

Ist man gezwungen, den Wechsel öfter auszuführen, kann das beispielhafte Skript:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh

# Diese Datei als 
#     'restart-windows'
# ausführbar machen (unter 'Eigenschaften') und nach
# ~/usr/local/sbin/' kopieren

if ! mount | grep 'efivars' 2>/dev/null ; then
    notify-send "Achtung - kein EFI-Betriebssystem" "Diese Anwendung kann auf diesem Ubuntu nicht eingesetzt werden!"
    exit;
fi

if ! which gksu 2>/dev/null; then
    notify-send "'gksu' ist nicht vorhanden!" "Benutzen Sie 'sudo apt-get install gksu', um diese Anwendung zu installieren!";
    exit;
else
    [ ! `ls -la /bin | grep efibootmgr | cut -c 4` = 's' ] && gksu chmod +s /bin/efibootmgr 2>/dev/null;
fi

NEXTBOOT=$( efibootmgr | grep 'Windows' | cut -c 5-8 ) 2>/dev/null;
if [ 'x${NEXTBOOT}' != 'x' ]; then
   efibootmgr -n ${NEXTBOOT} 2>/dev/null;
   gnome-session-quit --power-off;
   else
   notify-send "Abbruch - kein EFI Eintrag" "Das Windows kann nur direkt über das BIOS gestartet werden"
fi

exit;

in Verbindung mit dieser beispielhaften Startdatei dabei nützlich sein:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
### **** Desktop-File ****
# die folgende Sequenz in eine Datei kopieren und 
# z.B. als   'win-reboot.desktop'
# nach '/.local/share/applications/' im Homeverzeichnis kopieren

[Desktop Entry]
Name[de]=Ins Windows booten
Comment=Von Ubuntu direkt ins EFI Windows starten
Exec=/usr/local/sbin/restart-windows
Icon=Win8-Icon.png
Terminal=false
Type=Application
Categories=System;Settings;
MimeType=application;
StartupNotify=true
Keywords=Reboot;Windows

Unter Verwendung obigen Windows-Icon (nach ~/.icons im Homeverzeichnis kopieren) kann man das dann im Unity-Launcher platzieren oder über die Super -Taste aufrufen - bei den anderen Derivaten ist entsprechend den dortigen Vorgaben zu verfahren.

Spezialfall MBR-GPT-Mischmasch

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Ein "GPT-MBR-Mischmasch" entsteht ganz leicht beim Herumprobieren von verschiedenen Installationen auf einem EFI-System. Dieses Herumprobieren wird dadurch provoziert, dass der Ubuntu-Installer - genauer gesagt das Paket os-prober - derzeit keine EFI-Installationen erkennt.

Beim Herumprobieren - sprich beim erneuten Installieren - werden dann in der Regel, Partitionstabellen nur neu angelegt. Beim Neuanlegen werden aber Strukturen einer alten anderen Partitionstabelle nicht gelöscht - zumindest sehr häufig nicht.

D.h. wenn man z.B. auf dem Datenträger bisher ein msdos-Partitionierungs-Schema hatte und legt dann ein GPT-Partitionierungs-Schema an, dann können Reste des msdos-Schemas erhalten bleiben, obwohl das neue GPT-Schema eingerichtet wird und an sich auch funktioniert. Das gilt noch mehr für den umgekehrten Fall, dass man erst ein GPT-Schema hatte und dann zum msdos-Schema wechselt.

Problem für den "normalen Nutzer" ist dabei, dass sowohl im Windows-Setup als auch im Ubuntu-Installer gar nicht oder nicht ausreichend transparent wird, welches Schema verwendet bzw. neu angelegt wird.

Erkennen eines MBR-GPT-Mischmasches

Das Vorliegen von msdos- und GPT-Strukturen auf ein und dem selben Datenträger erkennt man an der Ausgabe von parted:

ubuntu@ubuntu:~$ sudo parted -l
Warning: /dev/sda contains GPT signatures, indicating that it has a GPT table.
However, it does not have a valid fake msdos partition table, as it should.
Perhaps it was corrupted -- possibly by a program that doesn't understand GPT
partition tables.  Or perhaps you deleted the GPT table, and are now using an
msdos partition table.  Is this a GPT partition table?
Yes/No?   

In GParted erkennt man es daran, dass keine Partitionen auf dem Datenträger angezeigt werden.

Auflösen des MBR-GPT-Mischmasches vor vollständiger Neuinstallation

Den MBR-GPT-Mischmasch kann man bei Neuinstallation auflösen indem man vor der Installation beide Strukturen vollständig entfernt. Das geht von Linux aus wie folgt:

Löschen des msdos-Schemas

sudo dd if=/dev/zero of=/dev/sdX count=2048

/dev/sdX ist dabei durch den Datenträger zu ersetzen, den man bereinigen möchte. Mit diesem Befehl wird der MBR und der dahinterliegende verborgene Bereich genullt, was für das Löschen des msdos-Schemas ausreichend ist.

Löschen des GPT-Schemas

Obwohl die primären GPT-Informationen auch innerhalb der ersten 2048 Sektoren liegen, reicht hier für ein sauberes Löschen der GPT-Struktur ein Nullen dieses Bereiches nicht aus. Ein vollständiges Löschen ist effizient nur mittels gdisk möglich:

  1. sudo gdisk /dev/sdX

    /dev/sdX mit der zu bereinigenden Platte ersetzen.

  2. gdisk präsentiert daraufhin wahrscheinlich die folgende Abfrage:

    GPT fdisk (gdisk) version 0.8.1
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid MBR and GPT. Which do you want to use?
     1 - MBR
     2 - GPT
     3 - Create blank GPT
    
    Your answer: 

    Da man hier ohnehin alle Strukturen vom Datenträger löschen möchte, ist es in dem Fall egal, ob man 1 , 2 oder 3 drückt.

  3. X drücken um in das extra-functionality-Menü zu gelangen.

  4. Z drücken um etwaige Reste eines GPT-Schemas zu löschen.

  5. Dabei beide Nachfragen mit Y bestätigen gdisk sollte anschließend selbständig schließen.

Alternativ könnte man auch den vollständigen Datenträger mit Nullen überschreiben lassen, was dann aber im Verhältnis viel länger dauern würde.

Wenn beide Strukturen gelöscht wurden, dann kann man wieder sauber neu installieren, wobei man dabei unbedingt die Hintergründe einer Installation auf einem EFI-System beachten muss. Siehe dazu oben ab Vorbemerkung).

Auflösen des MBR-GPT-Mischmasches im bereits installierten und an sich lauffähigen System

Auch wenn das System bereits installiert ist, kann man den Mischmasch aus msdos- und GPT-Strukturen beseitigen. Voraussetzung ist, dass man sich zunächst gdisk auf dem System installiert.

Achtung!

Auch wenn gdisk in aller Regel zuverlässig arbeitet, stellen Operationen am Partitionierungs-Schema einen sehr risikoreichen Vorgang dar, bei dem es im schlimmsten Fall zu Datenverlust kommen kann. Wichtige Daten müssen daher vor der Operation unbedingt extern gesichert werden!

Löschen von nicht benötigten verbliebenen GPT-Strukturen

Nutzt man auf dem System aktuell ein msdos-Schema und möchte übriggebliebene GPT-Strukturen löschen, so geht man wie folgt vor:

  1. sudo gdisk /dev/sdX

    /dev/sdX mit der zu bereinigenden Platte ersetzen.

  2. gdisk präsentiert daraufhin wahrscheinlich die folgende Abfrage:

    GPT fdisk (gdisk) version 0.8.1
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid MBR and GPT. Which do you want to use?
     1 - MBR
     2 - GPT
     3 - Create blank GPT
    
    Your answer: 

    Hier muss man mit 1 antworten!

  3. X drücken um in das extra-functionality-Menü zu gelangen.

  4. Z drücken um etwaige Reste eines GPT-Schemas zu löschen.

  5. Achtung: Nach drücken von Z stellt gdisk zwei Fragen. Die erste bezüglich des Löschens des GPT-Schemas beantwortet man mit Y . Die zweite Frage bezüglich des MBR muss man unbedingt mit N beantworten, da man andernfalls das bestehende, funktionstüchtige msdos-Schema löscht!

Löschen von nicht benötigten verbliebenen msdos-Strukturen

Setzt man aktuell eine GPT-Struktur ein und muss Reste einer msdos-Struktur entfernen, so erfolgt dies ebenfalls mittels gdisk:

  1. sudo gdisk /dev/sdX

    /dev/sdX mit der zu bereinigenden Platte ersetzen.

  2. gdisk präsentiert daraufhin wahrscheinlich die folgende Abfrage:

    GPT fdisk (gdisk) version 0.8.1
    
    Partition table scan:
      MBR: MBR only
      BSD: not present
      APM: not present
      GPT: present
    
    Found valid MBR and GPT. Which do you want to use?
     1 - MBR
     2 - GPT
     3 - Create blank GPT
    
    Your answer: 

    Hier muss man mit 2 antworten!

  3. X drücken, um in das extra-functionality-Menü zu gelangen.

  4. N drücken, um einen sauberen Protectiv-MBR zu erzeugen und damit Reste eines msdos-Schemas zu löschen.

  5. W drücken, um die Veränderungen zu übernehmen und gdisk zu verlassen.

  6. Die Nachfrage mit Y bestätigen.

intern

  • Dualboot - Installation von Ubuntu neben Windows

extern

  • UEFI - Unified Extensible Firmware Interface

  • UEFI Spezifikation🇺🇸 - Aufbau und Grundsätze

  • NVRAM - Non-Volatile Random-Access Memory

Diese Revision wurde am 29. März 2014 18:01 von axt erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Ubuntu, Installation, System, BIOS, EFI