Wie erstelle ich bootfähige UEFI-USB-Live-Medien?

88

Live-Medien, die beide Wege booten können, können ein Problem bei der Installation von Ubuntu auf derzeit verfügbaren Windows 8 Computern sein.

Mit anderen Worten, der Hauptvorteil beim Erstellen von nur UEFI-only bootfähigen USB-Live-Medien ist: Sie wissen, dass es definitiv über UEFI gebootet und installiert wurde.

Da Valve bereits UEFI-only gestartet hat, sind USB-Installer mit ihrem Debian-basierten Steam-Betriebssystem und UNetbootin - der am häufigsten gewählten Alternative zu Ubuntus Startup Disk Creator - nicht UEFI-kompatibel und daher irreführend. Ich denke, wir sollten ein separates Thema haben, um UEFI-only bootfähige USB-Live-Medien zu erstellen.

    
LiveWireBT 26.12.2013, 11:03

3 Antworten

108

Übersicht

Das Erstellen von UEFI-Only-Booten von USB-Live-Medien ist ziemlich einfach. Kopieren Sie die Dateien einfach auf Ihr FAT32-formatiertes USB-Laufwerk. Das ist es!

Denken Sie daran, dass für eine Installation oder das Booten des Mediums:

  • Sie müssen möglicherweise noch explizit Ihren Computer anweisen, den Datenträger über UEFI zu starten .
  • Eine GPT-Partitionstabelle wie in den Vorinstallationen von Windows 8 und höher wird empfohlen.
  • Verwenden Sie die neuesten AMD64 (LTS) ISOs, da diese definitiv UEFI-Bootloader enthalten.

Inhaltsverzeichnis

  • Kopieren Sie Dateien von der ISO-Methode
    1. Beispiel über Terminal
    2. Beispiel über GUI
    3. Beispiel unter Windows
  • Die ISO-Loopback-Methode (erweitert)
    1. Erstellen der Binärdatei
    2. Erstellen der Konfigurationsdatei
    3. Persistenz hinzufügen
    4. Überprüfung der Integrität
    5. UEFI Secure Boot

1. Kopieren Sie Dateien von der ISO-Methode

Diese Methode funktioniert auch für andere Installationsmedien, die EFI-Loader enthalten, wie zum Beispiel Windows.

1.1. Beispiel über Terminal

Sie können Folgendes tun, wenn 604A-00EA Ihr USB-Laufwerk ist und Sie bereits p7zip installiert haben:

$ 7z x ubuntu-12.04-desktop-amd64.iso -o/media/$USER/604A-00EA/

Sie sind fertig, wenn Sie nur eine Partition auf diesem USB-Laufwerk haben, andernfalls müssen Sie die Partition als bootbar z. via parted :

# parted /dev/sdX set 1 boot on

Dabei wäre /dev/sdX Ihr USB-Laufwerk und 1 die Partitionsnummer, die zum Booten verwendet werden sollte.

1.2. Beispiel über GUI

  1. Hängen Sie die .iso-Datei an und kopieren Sie den Inhalt auf Ihr USB-Laufwerk. Drücken Sie Strg + H in Nautilus, um auch versteckte Dateien anzuzeigen und zu kopieren.

  2. Fügen Sie das Boot-Flag über GParted hinzu.

1.3. Beispiel unter Windows

  1. Wie oben, kopieren Sie nur Dateien.
  2. Drücken Sie Windows / Super + X , wechseln Sie zur Datenträgerverwaltung und prüfen Sie, ob die Partition als aktiv markiert ist. Bei Windows-Versionen vor Windows 8 drücken Sie Windows / Super + R , um das Ausführungsmenü zu öffnen und diskmgmt.msc zu öffnen, wodurch die Datenträgerverwaltung geöffnet wird.

2. Die ISO-Loopback-Methode (erweitert)

Anstatt Inhalte aus einem ISO-Image zu extrahieren, konnten GRUB und GRUB2 direkt von ISO-Images über ein Loopback-Gerät booten. Da das ISO-Image UEFI-bootfähig ist, können wir ein USB-Laufwerk einrichten, das mehrere ISOs mit unterschiedlichen Betriebssystemen enthält, ohne dass auf dem USB-Laufwerk Unordnung entsteht.

Wenn Sie auch Windows booten möchten, sollten Sie sich SARDU ansehen. Ich erinnere mich an die Verwendung mit Windows PE um 2005 herum und es scheint, dass es zur Unterstützung von USB-Laufwerken und UEFI aktualisiert wurde, aber bedenken Sie, dass dieses Tool auch Legacy-Boot unterstützt.

Was brauchen wir?

  • Sehr gute Kenntnis der GRUB-Konfigurationsdateien.
  • Sehr gute Kenntnisse in UEFI-Boot und GRUB, da wir unser eigenes GRUB-Bootloader-Image mit vielen enthaltenen Modulen erstellen werden.
  • Ein UEFI-bootfähiges ISO-Image, ein FAT-formatiertes USB-Laufwerk und ein Computer, auf dem Linux ausgeführt wird.
    • Nein, wir brauchen keine UEFI-Installation von Linux (was eine Hühner- und Ei-Situation sein kann), eine herkömmliche Linux-VM wie in VirtualBox ist in Ordnung.

2.1. Erstellen der Binärdatei

Vergewissern Sie sich auf Ihrem Ubuntu-Computer oder Ihrer VM, dass das Paket grub-efi-amd64-bin ist installiert (grub-efi-ia32-bin ist auch für 32-bit Intel-Architekturen auf neueren Releases verfügbar). Das Paket hat möglicherweise einen anderen Namen in einer anderen Distribution. Sie können die Dateiliste des Pakets vergleichen , um das richtige Paket für Ihre Distribution zu finden.

Der folgende Befehl generiert das GRUB-Image, in diesem Fall eine EFI-Binärdatei, die jeder Computer mit einer UEFI-Firmware ausführen kann:

grub-mkimage -o bootx64.efi -p /efi/boot -O x86_64-efi \
 fat iso9660 part_gpt part_msdos \
 normal boot linux configfile loopback chain \
 efifwsetup efi_gop efi_uga \
 ls search search_label search_fs_uuid search_fs_file \
 gfxterm gfxterm_background gfxterm_menu test all_video loadenv \
 exfat ext2 ntfs btrfs hfsplus udf

Jede Standard UEFI-Firmware sollte in \EFI\BOOT\ nach einer Datei mit dem Namen boot{arch}.efi suchen, also erstellen Sie die Ordner auf dem USB-Laufwerk und kopieren Sie das soeben erstellte Bild an diesen Ort. Andere Architekturen als x64 sind möglich, aber lassen Sie es einfach mit x64 / amd64 bleiben.

2.2. Erstellen der Konfigurationsdatei

Ein sehr einfaches Beispiel für eine Konfigurationsdatei grub.cfg , die im selben Verzeichnis wie bootx64.efi platziert werden sollte, würde folgendermaßen aussehen:

set timeout=3
set color_highlight=black/light-magenta

menuentry 'Boot Ubuntu 14.04.2 LTS from ISO' {
        set isofile="/efi/boot/ubuntu-14.04.2-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject quiet splash persistent --
        initrd (loop)/casper/initrd.lz
}
submenu 'Useful snippets' {
    menuentry 'Ubuntu' {
            chainloader /efi/ubuntu/grubx64.efi
    }
    menuentry 'Windows' {
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
    }
    menuentry 'Firmware Setup' {
            fwsetup
    }
}

Wichtig ist der Konfigurationsblock mit dem Titel Boot Ubuntu 14.04.2 LTS from ISO .Sie können die Farbe und das Zeitlimit nach Ihren Wünschen ändern. Ich wählte black/light-magenta , da es immer noch ein bisschen Ubuntu-isch aussieht, aber leicht unterscheidbar ist, wenn andere Konfigurationen verkettet werden. Weitere Beispiele für andere Distributionen finden Sie im Arch Wiki und lesen Sie die GRUB Handbuch ist wirklich Ihre Zeit wert, wenn Sie darüber hinausgehen möchten.

Zurück zum Konfigurationsblock sollte es offensichtlich sein, dass die ISO als /efi/boot/ubuntu-14.04.2-desktop-amd64.iso referenziert wird, also kopieren Sie Ihr ISO nach \EFI\BOOT\ und ersetzen Sie ubuntu-14.04.2-desktop-amd64.iso in der Konfiguration durch den tatsächlichen Dateinamen Ihres ISO.

loopback loop $isofile ist die Zeile, die unsere ISO-Datei in ein Loopback-Gerät lädt, von dem aus wir den Linux-Kernel direkt booten können. Dies ist möglich, da unser EFI GRUB-Image das Loopback-Modul enthält. (Ein wenig Trial-and-Error wurde benötigt, um herauszufinden, welche Module sinnvoll sind. Sie sollten keine Fehlermeldungen sehen, aber es ist immer noch nicht perfekt.) Apropos Kernel: Sie können Kernel-Parameter wie toram , Parameter hinzufügen für verschiedene Sprachen (Beispiel locale=de_DE bootkbd=de ) und wie im Beispiel: persistent

2.3. Persistenz hinzufügen

Sie können eine Partition wie folgt hinzufügen: Wie erhalte ich einen Live-USB, um eine Partition für die Persistenz zu verwenden? > Oder Sie können eine Datei casper-rw erstellen und sie im Stammverzeichnis Ihres USB-Laufwerks platzieren.

dd if=/dev/zero of=casper-rw bs=1M count=4094
mkfs.ext4 -m 0 casper-rw

Ich habe nicht getestet, was das absolute Maximum ist, es sollte irgendwo zwischen 4094 und 4096 MB liegen. Verwenden Sie eine Partition, wenn Sie mehr Speicherplatz benötigen. Beachten Sie, dass jede Änderung an (root) eine Änderung des Overlay-Dateisystems ist, sogar das Löschen von Dateien.

2.4. Überprüfen der Integrität

Sie sollten sich die Antworten auf die folgenden Fragen ansehen, um sicherzustellen, dass der Live-ISO-Inhalt auf dem USB-Laufwerk in einwandfreiem Zustand ist:

2.5. UEFI Secure Boot

Secure Boot wird für Windows 10-Rechner obligatorisch. Ich schlage vor, dass Sie sich den PreLoader der Linux Foundation ansehen, um dieser Einrichtung die Funktion "Secure Boot" hinzuzufügen. Hier ist eine ASCII-Grafik, die Menüs des zugehörigen HashTools veranschaulicht .

Herzlichen Glückwunsch, ich würde sagen, Sie beherrschen nun das UEFI-Booten und sollten keine Angst mehr haben.

    
LiveWireBT 26.12.2013, 11:03
2

Extrahiere von der ISO-Datei nach FAT32

Das Extrahieren des Inhalts einer Ubuntu 64-Bit-Desktop-ISO-Datei auf eine Partition mit einem FAT32-Dateisystem und einem Boot-Flag übernimmt die Aufgabe: ein Live-Laufwerk zu erstellen, das nur im UEFI-Modus bootet. Es heißt hier 'Kopieren von Dateien von der ISO-Methode' (in der akzeptierten Antwort).

Test, wenn im UEFI- oder BIOS-Modus

ausgeführt wird

Aber es ist einfach in einem laufenden Ubuntu-System zu testen (sowohl live als auch installiert), wenn es im UEFI- oder BIOS-Modus gestartet wurde. Führen Sie diese Befehlszeile aus,

test -d /sys/firmware/efi && echo efi || echo bios

Dies macht es einfach, Live-Systeme zu verwenden, die in beiden Boot-Modi verwendet werden können, was auch ein Vorteil sein kann.

Siehe auch die folgenden Links für eine ausführlichere Erklärung und Beschreibung der Methode,

help.ubuntu.com/community/Installation/iso2usb

help.ubuntu.com/community/Installation/iso2usb/diy

    
sudodus 19.09.2017 22:21
1

Die Verwendung von dd funktionierte für mich, aus irgendeinem Grund funktionierte die GUI-Version nicht. Also, zuerst, möchten Sie vielleicht überwachen die Fortschritte von dd , eine andere Optionen verwenden die Option SIGUSR1 zum Auslösen von dd , um den Fortschritt periodisch zu melden, aber das ist komplizierter als pv .

Dann:

sudo dd if=path/to/image/file | pv | sudo dd of=/dev/device_you_want_to_use

( /dev/device_you_want_to_use ist normalerweise /dev/sdb , aber überprüfe mit df !)

    
sup 27.07.2014 14:43

Tags und Links