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.

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 (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

Boot0002* Ubuntu    HD(1,800,32000,34911255-cfd8-43ce-a600-fb43636a9c2c)File(\EFI\trusty\shimx64.efi)

Dabei bedeuten:

  • Boot0002*

    • lfd. Nummer des Eintrages im NVRAM

    • das Sternchen verweist auf einen "aktiven" Eintrag

  • Ubuntu

    • Bezeichnung vom Betriebssystem

  • 1,800,32000

    • lfd. Nummer der Partition auf Datenträger

    • Art der Partitionstabelle → hier GPT *)

    • Art der Formatierung → hier FAT32

*) Hinweis: Hier kann je nach Version vom efibootmgr statt 800 auch direkt GPT angezeigt werden.

  • 34911255-cfd8-43ce-a600-fb43636a9c2c

    • entspricht der PARTUUID der Abfrage mit sudo blkid

  • \EFI\trusty\shimx64.efi

    • Angabe zum Pfad und zur Startdatei

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

Informationen zum Rechner

Informationen zur Hardware erhält man durch die Eingabe in das Terminal [1]:

sudo dmidecode -t1  

Als Rückmeldung erhält man dann je nach Rechner - hier beipsielhaft:

System Information
	Manufacturer: FUJITSU
	Product Name: ESPRIMO E710 E90+
	Version:                       
	Serial Number:                   
	UUID: 3867E5DB-D219-E211-BDF2-DA9ED2C03A59
	Wake-up Type: Power Switch
	SKU Number: S26361-Kxxx-Vyyy
	Family: 

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 sich die Aufteilung 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 sich noch die Formatierung und Aufteilung der Datenträger im Terminal [1] 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

EFI-Eintrag wurde gelöscht oder zerstört

Falls man es mal geschafft hat, seinen Eintrag im EFI-Menü zu zerstören, im BIOS-Setup diesen aus Versehen zu löschen oder aus anderen Gründen das System nicht mehr starten will, so kann man diesen Eintrag neu erstellen.

Variante eigenes System fremdstarten

Man benutzt den für sein System passenden, mit z.B. UNetbootin erstellten USB-Stick.

Damit dieser direkt in das eigene System starten kann, muss man auf diesem Live-System folgende Ergänzung einbringen. Dazu öffnet man auf dem USB-Stick mit einem Editor [2] seiner Wahl die Datei

  • /boot/grub/grub.cfg

und ergänzt unter den vorhandenen Menüeinträgen:

1
2
3
4
5
6
7
8
9
menuentry "OS auf dem eigenen Rechner starten" {
	insmod gzio
	insmod part_gpt
	insmod ext2
        insmod btrfs
	set gfxpayload=keep
        search --no-floppy --file --set=root /boot/grub/grubenv
	configfile  /boot/grub/grub.cfg
}

Experten-Info:

Je nach Filesystem kann die Position der Datei grub.cfg bzw. grubenv auf dem eigenen Rechner abweichen.

Bei einem BTRFS-Dateisystem kann der relevante Pfad in der Zeile 8 z.B. /@/boot/grub/grub.cfg lauten bzw. bei einer getrennten Boot-Partition ist in der Zeile 8 der verkürzte Pfad /grub/grub.cfg einzusetzen.

Nach und mit dieser Ergänzung kann man nun sein System direkt starten und ganz normal seine Einträge zum Starten im Terminal [1] neu setzen mit:

sudo grub-install
sudo update-grub 

Variante chroot-Methode

Man setzt den für sein System passenden, mit z.B. UNetbootin erstellten USB-Stick ein und startet damit seinen Rechner. Am Desktop stellt man eine chroot-Umgebung von seinem System im Terminal [1] her. Da alle Befehle mit Rootrechten ausgeführt werden müssen, kann man das Benutzer-Terminal auf ein Root-Terminal umstellen mit

sudo -s 

Ab jetzt werden alle Eingaben in das Terminal [1] ohne das voran gestellte sudo ausgeführt. Verlassen wird dieser Modus wieder mit:

exit 

Der Befehl

blkid 

informiert über die beteiligten Festplatten und Partitionen. Die nachfolgenden Angaben / Annahmen sind an den markierten Stellen an das eigene System anzupassen. Die Root-Partition wird eingebunden mit:

mount /dev/sda4 /mnt 
  • Abweichung bei einem Btrfs-Dateisystem:

    mount -o compress,ssd,subvol=@ /dev/sda4 /mnt 

  • Ergänzung bei getrennter /boot-Partition:

    mount /dev/sda3 /mnt/boot 

Nun erfolgt noch das Einbinden der EFI-Partition

mount /dev/sda1 /mnt/boot/efi 

Mit den folgenden Eingaben wird die chroot-Umgebung vorbereitet (am besten Kopieren → Einfügen verwenden)

for i in dev dev/pts proc sys sys/firmware; do mount --bind /$i /mnt/$i; done 

Nun kann man in das beschädigte System wechseln mit

chroot /mnt 

und repariert dort die Einstellungen für die Datei /boot/grub/grub.cfg und den Eintrag für das EFI-Menü mit:

update-grub 

und nun ohne Angabe einer Festplatte/Partition:

grub-install  # Option = --verbose 

Die Option --verbose bzw. kurz -v zeigt die Aktionen während der Abarbeitung an und sollte nur benutzt werden, wenn man den korrekten Ablauf überprüfen will. Nachdem man sich über die ausgeführten Aktionen informiert hat und diese für richtig befunden hat, kann man das System wieder verlassen mit

exit 

Nach einem Reboot aus dem Livesystem sollte der Eintrag "ubuntu" ein Starten in das eigene System wieder erlauben. Am dortigen Desktop kann man dann, soweit erforderlich, weitere Informationen abfragen bzw. Korrekturen / Reparaturen ausführen.

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 "Eingabeaufforderung" (bcdedit funktioniert mit anderen Terminals nicht korrekt.) 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.

Kurzes Aufflackern eines fallback.efi Fehlers

Bei manchen EFI-Geräten kann es passieren, dass das Gerät beim Booten nur die Grub-2-Shell anzeigt. Dies kann mehrere Ursachen haben, jedoch flackert kurz zuvor die Fehlermeldung Could not open "\EFI\BOOT\fallback.efi" auf, welche man eventuell nur erkennen kann, wenn man den Bildschirm mit einer Kamera abfilmt (z.B. dem Handy).

Diese Meldung deutet darauf hin, dass ein EFI Fallback Modus benötigt wird. Dazu reicht es bei vielen Geräten aus, die Datei(en) des normalen Modus in den Fallback Modus zu kopieren. Dazu führt man folgende Befehle von einer Live-CD aus:

EFI-Partition ermitteln:

sudo parted -l 

EFI-Partition einhängen:

sudo mount /dev/sdXY /mnt 

sdXY muss durch die ermittelte EFI-Partition angepasst werden, z.B. sda1.

  • Wenn secure-boot aktiviert ist:

    sudo cp -a /mnt/EFI/ubuntu/shimx64.efi /mnt/EFI/BOOT/fallback.efi
    sudo cp -a /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/BOOT/grubx64.efi 

  • Ohne secure-boot:

    sudo cp -a /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/BOOT/fallback.efi 

Danach startet man neu, um den Erfolg der Maßnahme zu testen.

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. Andererseits gibt es auch Firmware (EFI-BIOS), die das Starten vom installierten Windows erzwingt - und somit andere Betriebssystem ignoriert.

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!

Ubuntu startet nur einmal

Nach der Installation bzw. nach einer Reparatur vom GRUB 2 wird das Grubmenü angezeigt und man kann alle angezeigten Optionen auch starten.

Sobald man Windows aufruft, startet es. Beim nächsten Start jedoch erscheint der Windows-Bootmanager - das Grubmenü kann nicht mehr ausgewählt werden.

Eine Überprüfung vom NVRAM ergibt dann, dass der Windows-Eintrag in der Bootreihenfolge an erster Stelle steht und meist, dass der Eintrag von Ubuntu gelöscht wurde.

Experten-Info:

Bei einigen Rechner geschieht dabei folgendes: Die Firmware löscht den Windows-Eintrag, wenn dieser nicht an erster Stelle in der Bootreihenfolge steht. Dies beeinträchtigt den Start von Grub nicht. Sobald Windows startet, bemerkt es den fehlenden Eintrag im NVRam, erstellt ihn neu und setzt ihn an die erste Stelle in der Bootreihenfolge. Dabei kommt es vor, dass der Ubuntu-Eintrag gelöscht wird. Wenn man den Windows-Booteintrag an erster Stelle belässt, aber auf inaktiv setzt, umgeht man das Problem.

Um das zu korrigieren, startet man ein Ubuntu Livesystem und arbeitet die Anweisung zur Reparatur ab. Nun sollten sowohl für Windows als auch für Ubuntu Einträge vorhanden sein, die Ausgabe mittels efibootmgr kann beispielhaft wie folgt aussehen:

BootOrder: 0004,0000,0001,0002,0003
Boot0000* Windows Boot Manager  HD(1,800,32000,34911255...
Boot0001* ...
Boot0002* ...
Boot0003* ...
Boot0004* ubuntu  HD(1,800,32000,34911255......

Nun muss man die Bootreihenfolge (Zeile "BootOrder") überprüfen, Windows muss hierbei an erster Stelle stehen, der Eintrag sollte aber deaktiviert sein. Dies ist in unserem Beispiel nicht der Fall, daher wird das wie folgt, korrigiert:

sudo efibootmgr -b 0000 -A
sudo efibootmgr -o 0000,0004,0001,0002,0003 
BootOrder: 0000,0004,0001,0002,0003
Boot0000  Windows Boot Manager  HD(1,800,32000,34911255...
Boot0001* ...

Da jetzt ein Eintrag - wenn auch deaktiviert - für das Windows an der ersten Stelle vorhanden ist, wird dieser zwar für den Aufruf im EFI-Menü ignoriert bzw. gar nicht angezeigt, aber von der Firmware als vorhanden anerkannt und damit kein neuer Eintrag generiert und das NVRAM beim Start vom Windows nicht mehr überschrieben.

Experten-Info:

Das Setzen von Einträgen im Terminal muss wie folgt ausgeführt werden (alternativ):

  • sudo efibootmgr -o 0000,0004,0001,0002,0003

  • sudo efibootmgr -o 0,4,1,2,3,

Bei der Variante für den letzten Befehl muss das abschließende Komma immer gesetzt sein, da ansonsten die Auswertung (als HEX-Zahl) zu falschen Werten beim Setzen für das NVRAM führt.

Aufheben kann man das, sofern die Umstände das erfordern im Terminal [1] mit:

sudo efibootmgr -b 0000 -a 

Danach kann man das Windows auch wieder über das EFI-Menü aufrufen

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 durch die zu bereinigende 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.

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

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

  3. 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 durch die zu bereinigende 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 durch die zu bereinigende 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 22. November 2015 12:28 von Xeno erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Ubuntu, Installation, System, BIOS, EFI