Benutzer-Werkzeuge

Webseiten-Werkzeuge


lip:uefi-ubuntu

Rechner mit UEFI bootbar machen

Grundlagen und Missverständnisse

UEFI-Erkennung

  • EFI wird nicht erkannt, wenn das System nicht als EFI-Gebootet wurde.
    • Typische Fehlermeldungen:
      • Try „sudo insmod efivars“ , aber /sys/modules/efivars existiert bereits, insmod-Befehl schlägt fehl.
      • dmesg | grep -i efi liefert nur eine Zeile, offensichtlich keine EFI-Variablen
      • /sys/firmware/efi/vars ist nicht vorhanden oder leer
  • Achtung: Mainboard „ASUS E35M“ will USB-Sticks im UEFI-Modus nur von [UEB-Stick]/EFI/BOOT/BOOTX64.EFI booten

EFI mit MBR-Platte

  • EFI funktioniert auch mit MBR-Platten
    • EFI-ID im MBR „ef“, Filesystem FAT12 FAT16 oder FAT32 (FAT32 getestet,ok)
  • EFI-Bootloader werden (außer auf USB-Sticks oder CDs) nicht gescannt sondern müssen mit efibootmgr (siehe unten) eingetragen werden.

EFI mit GPT-Platte

  • GPT-EFI-Partition hat FAT32 und spezielle GUID, siehe http://en.wikipedia.org/wiki/EFI_System_Partition
  • gparted kann auch GPT-Platten bearbeiten
  • GPT-EFI-Partionen werden nicht nach möglichen Bootloadern gescannt, sondern diese müssen mit efibootmgr (siehe unten) eingetragen werden.

Installation

  • Bei der Installatiuon
    • EFI-Systempartition als /boot/efi mit installieren
  • EFI-Bootloader installieren (bei der Installation)
    • chroot in /target gemäß Anleitung
      • mount /dev/ /target/dev, etc.
      • chroot /target /bin/bash -l
    • mount /boot/efi
    • apt-get-install grub-efi
    • cd /boot/efi/EFI/BOOT
      • mv ubuntu BOOT
      • cd BOOT mv grubx64.efi BOOTX64.EFI
      • cp -R /boot/grub/. .

EFI-Boot-Eintrag erzeugen

  • Prärequisite:
    • System muß im UEFI-Modus gebootet sein, sonst sind meist keine EFI-Variablem vom Kernel detektierbar.
  • efibootmgr –create –disk /dev/sda –part 1 –write-signature –label „Linux-UEFI“ –loader „\\EFI\\BOOT\\BOOTX64.EFI“
    • ggf. im o.a. Eintrag –gpt einbauen, wenn die Platte eine GPT-Platte ist.

Windows aus Grub heraus im EFI-Modus booten

siehe http://www.rodsbooks.com/efi-bootloaders/grub2.html

menuentry "Windows 7" {
        set root='(hd0,gpt1)'
        chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Windows reparieren

  • Der Windows-Bootloader meldet sich nach einer Änderung am EFI oder an der Partitionstabelle nur noch mit einer Fehlermeldung 0xc00000xyz . Wahrscheinlich ist die BCD (Boot Configuration Data) - Datei auf dem System nicht aktuell.
    • Windows 7 Rescue-USB-Stick nehmen.
      • Stick starten
      • Sobald Windows gestartet ist: mit Shift-F10 Windows-Shell starten
      • 1. Versuch:
        • bootrec.exe /RebuildBCD
      • 2. Versuch:
        • diskpart
        • list volume
          • hier sucht man die Nummer <nummer> der EFI-Partition, der vmtl. keine Volume (Laufwerksbuchstabe) zugewiesen ist
        • select volume <nummer>
        • assign
          • Weist der Partition eine Volume (Laufwerksbuchstaben) zu und „mountet“ diese.
        • diskpart beenden
        • dir Volume:
          • Zum Prüfen der richtigen Zuweisung der Boot-Partition. Nicht, dass man hier versehentlich den Boot-Stick erwischt
        • bcdedit /sysstore Volume:
          • Leitet das Speichern des BCDs auf Volume: um.
        • bootrec.exe /RebuildBCD
          • Schreibt den BCD nun auf das richtige Volume

BCD (Boot Configuration Data) bearbeiten

  • Einen beliebige BCD-Datei zum Bearbeiten auswählen: bcdedit /store x:/path/to/BCD /enum

Test of im MBR- oder (U)EFI-Modus

Das ist ungetestet. Bitte selbst verifizieren

  • bcdedit.exe /sysstore <existierendes Laufwerk>
    • Im (U)EFI-Modus: funktioniert
    • im MBR-Modus: Fehlermeldung „
      Fehler beim Ausführen des Befehls zum Festlegen des Systemspeichergerätes. Die Anforderung wird nicht unterstützt.

lip/uefi-ubuntu.txt · Zuletzt geändert: 2013/02/01 02:15 von mmoebius