OS-Installation auf UEFI-Systemen

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

UEFI und GPT treten als Nachfolger zum traditionellen BIOS und dem MBR-Schema auf. Aktuelle Betriebssysteme (OS) wie Ubuntu bringen alle Werkzeuge mit, um im UEFI-Modus auch von GPT-Datenträgern zu booten. Microsoft Windows legt für seine 64-bit Systeme gar fest, dass booten unter UEFI nur von GPT-Devices unterstützt wird.[1]

Eine explizite Auswahl der UEFI-Booteinträge garantiert das Starten des Installations-Mediums im UEFI-Modus

UEFI stellt seinen eigenen Boot Manager zur Verfügung, der es erlaubt Boot Loader von UEFI unterstützen Filesystemen zu laden. Das Ziel des UEFI Boot Managers ist es, ein Set von Boot Menüs bereits in der Plattform-Firmware zu verwalten.[2] Dieses Menü erlaubt es jedes UEFI konforme Boot-Medium auszuwählen, das dem System zur Verfügung steht. Die Reihenfolge der Boot Loader wird dabei im persistenten NVRAM abgelegt.[3]

Um sicher zu gehen, dass das Installations-Medium im UEFI-Modus gestartet wird, kann im UEFI-Menü explizit jener Eintrag gewählt werden, dem UEFI vorangestellt ist:

  • z.B. UEFI: DVD/CD Drive oder UEFI: USB-Stick

Linux

Laut Ubuntu-Dokumentation zu UEFI[4] ergeben sich folgende Optionen für die Auswahl einer Installation im UEFI-Modus:

Annahme UEFI (64bit) CSM (Legacy Mode)
Andere OS im UEFI Modus Ja Nein
Andere OS Legacy Nein Ja
Ubuntu einziges OS Ja Ja

Für die Auswahl der Festplatten-Partitionierung gelten folgende Schema:

  • BIOS Boot via MBR

Dem traditionellen Weg stehen keine Hindernisse entgegen.

  • BIOS Boot via GPT

Linux benötigt zum Booten von einem GPT-Device eine Bios Boot Partition und einen Bootloader, der mit dem GPT-Format umgehen kann (z.B Grub2).[5] Eine einfache Möglichkeit ist auch die System Partition auf eine nicht-GPT Partition zu verlegen, von dort zu booten und die separaten GPT-Devices einzubinden. Windows (siehe unten) kann von GPT Devices nur im UEFI Modus booten.

  • UEFI Boot via MBR

Die Spezifikation legt fest, dass zum Booten von einem Block-Device via UEFI eine UEFI System Partition (ESP) benötigt wird. Ob diese System Partition auf einem GPT oder MBR formatierten Device liegt, spielt dabei keine Rolle. Für Windows unter UEFI ist eine GPT jedoch verpflichtend.

  • UEFI BOOT via GPT

Der Boot-Manager verwaltet die Boot-Einträge im persistenten NVRAM. Die zugehörigen Boot Loader befinden sich auf der UEFI System Partition (ESP). Im folgenden Beispiel ist /dev/sdc1 eine ESP auf einer GPT formatierten Festplatte. Mittels gdisk können die Partitionen gelesen werden:

:~$ sudo gdisk /dev/sdc
[...]
Partition number (1-4): 1
Partition GUID code: C12A7328-F81F-11D2-BA4B-00A0C93EC93B (EFI System)
Partition unique GUID: A81C2DB8-E808-4853-A67B-3982C65C23C2
First sector: 34 (at 17.0 KiB)
Last sector: 293002 (at 143.1 MiB)
Partition size: 292969 sectors (143.1 MiB)
[...]
:~$ mount -l
[...]
/dev/sdc1 on /boot/efi type vfat (rw)
[...]
:~$ ls /boot/efi/EFI/ubuntu/
grubx64.efi

EFI System Partition

Wird Ubuntu im EFI-Modus installiert wird, wie oben erwähnt, eine ESP benötigt. Der aktuelle Installer von Ubuntu (12.04) legt beim automatisierten Partitionieren eine ESP an. Beim manuellen erstellen mit gparted müssen folgende Attribute erfüllt sein:[6]

  • Mount point: /boot/efi
  • Größe zwischen 100MB und 250MB
  • Typ: FAT32
  • Boot Flag setzen und am Beginn der GPT-Partition liegend

Seit Ubuntu 12.04 ist es außerdem möglich, eine von Windows erstellte ESP mit zu benutzen. Dabei wird diese Partition nicht formatiert und nur der Mount Point "/boot/efi" festgelegt.

efibootmgr

Der efibootmgr ist unter Linux ein User-Space-Werkzeuge zur Manipulation des UEFI Boot-Managers.[7] Mit ihm kann z.B. die aktuelle Reihenfolge der UEFI Boot-Einträge eruiert als auch geändert werden. Hier die Ausgabe unseres UEFI-Testsystems:

:~$ sudo efibootmgr 
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,000A,0009,0003,0007,0006
Boot0000* ubuntu
Boot0003* Network Card 
Boot0006* UEFI: Built-in EFI Shell 
Boot0007* USB 
Boot0009* Hard Drive 
Boot000A* UEFI: ATP Nano Vision 1100

Der Eintrag ubuntu entspricht den im obigen Beispiel gezeigten Eintrag unter /boot/efi/EFI/ubuntu/.

Secure Boot und Linux

UEFI_Secure_Boot ist verpflichtend in allen Windows 8 ausgelieferten Systemen aktiviert. Die dabei verwendeten Schlüssel müssen entweder von Microsoft oder dem OEM stammen. Zwar gibt es die Anforderung, dass Secure Boot deaktiviert werden können muss und die Schlüssel durch andere ersetzt werden können, aber ein standardisierter Weg dies zu tun existiert bis lang nicht (UEFI_Secure_Boot#Aktuelle_Informationen). 3 Lösungswege haben sich im Umgang mit Secure Boot herauskristallisiert, eine Detail-Beschreibung findet sich auch unter Dealing with Secure Boot (rodsbooks.com):

  1. Verwendung im Secure Boot "Setup Modus" (UEFI_Secure_Boot#Firmware_Modus)
  2. Ersetzen bzw. konfigurieren der Secure Boot Schlüssel
  3. Eigene kleine, von Microsoft signierte Bootloader, die anschließend z.B. Grub starten[11]

Eine weitere "Lösung" wäre die Deaktivierung von Secure Boot. Die Sicherheitsfunktionen stehen dann natürlich nicht zur Verfügung.

Windows

Die folgenden Partition werden vom Windows-Installer im UEFI-Modus automatisch erstellt. Quelle: Installing Windows on UEFI Systems, S.4 (msdn.microsoft.com)

Folgende Windows-Versionen besitzen die Möglichkeit unter UEFI von GPT Festplatten zu booten:[15]

  • Desktop
    • Die 64-bit Varianten von Windows 8, Windows 7, Windows Vista with Service Pack 1 (SP1)
  • Server
    • Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 (ebenfalls 64-bit)

Vom Windows-Installer werden automatisch folgende Dateien in der UEFI System Partition abgelegt:

  • Windows Boot Manager (auch Boot-Manager anderer OS werden sich auf dieser Partition befinden)
  • Boot Konfigurations-Daten

Windows benötigt außerdem mindestens 3 Partitionen auf GPT Datenträgern:[16]

  1. Die bereits erwähnte ESP (UEFI System Partition)
    • Mindestens 100MB, FAT32
    • Für Advanced Format 4k Festplatten 260MB
  2. Microsoft reserved Partition (MSR), für Drive Management
  3. Windows Partition
  4. Außerdem, wenn gewünscht, eine Windows RE Tools Partition

Die 32-bit Varianten werden gegenwärtig über das Compatibility Support Module (CSM) eingerichtet, laufen also auch auf UEFI-Systemen können aber nicht von den UEFI-Neuerungen profitieren. Ob dieser CSM-Modus für sogenannte Legacy Systeme vorhanden ist, ist abhängig von der jeweiligen Firmware. Ein unter CSM gestartetes OS unterscheidet sich dann aber nicht mehr von den traditionellen BIOS Systemen.[17]

Einzelnachweise

  1. Windows and GPT FAQ (msdn.microsoft.com)
  2. UEFI Specification (uefi.org)
  3. UEFI Boot Manager (software.intel.com)
  4. Ubuntu UEFI (help.ubuntu.com)]
  5. Booting from GPT (rodsbooks.com)
  6. Creating an EFI partition (help.ubuntu.com)
  7. efibootmgr man Page (linux.die.net)
  8. efitools 1.4 with linux key manipulation utilities released (blog.hansenpartnership.com)
  9. Debian and Ubuntu packages for sbsigntools and efitools built (blog.hansenpartnership.com)
  10. UEFI Image File Sign Tools (en.opensuse.org)
  11. Another approach to UEFI secure boot (lwn.net)
  12. shim Quellcode (github.com)
  13. A detailed technical description of Shim (mjg59.dreamwidth.org)
  14. Linux Foundation UEFI Secure Boot System for Open Source (blog.hansenpartnership.com)
  15. Installing Windows on UEFI Systems (msdn.microsoft.com)
  16. How to Configure UEFI/GPT-Based Hard Drive Partitions (http://technet.microsoft.com)
  17. FAQ UEFI (heise.de)
Foto Georg Schönberger.jpg

Autor: Georg Schönberger

Georg Schönberger, Abteilung DevOps bei der XORTEX eBusiness GmbH, absolvierte an der FH OÖ am Campus Hagenberg sein Studium zum Bachelor Computer- und Mediensicherheit, Studium Master Sichere Informationssysteme. Seit 2015 ist Georg bei XORTEX beschäftigt und arbeitet sehr lösungsorientiert und hat keine Angst vor schwierigen Aufgaben. Zu seinen Hobbys zählt neben Linux auch Tennis, Klettern und Reisen.


Das könnte Sie auch interessieren

Extreme Privilege Escalation UEFI Sicherheitslücke
Windows 7 UEFI Boot Stick unter Ubuntu erstellen
Windows Installation auf einem LSI RAID Controller im UEFI-Modus