Wie erstelle ich ein bootfähiges UEFI-USB-Live-Medium?


107

Live-Medien, die in beide Richtungen booten können, können ein Problem sein, wenn Ubuntu auf derzeit verfügbaren Windows 8-Computern installiert wird.

Mit anderen Worten, der Hauptvorteil bei der Erstellung von bootfähigen UEFI- USB-Live-Medien ist: Sie wissen, dass sie definitiv über UEFI gebootet und installiert wurden.

Da Valve bereits UEFI- basierte USB-Installer mit Steam OS und UNetbootin bootet - die am häufigsten gewählte Alternative zu Ubuntus Startup Disk Creator -, ist UEFI-kompatibel und daher irreführend. Ich denke, wir sollten ein separates Thema für haben Erstellen von bootfähigen UEFI-Live-USB-Medien.

Antworten:


133

Überblick

Das Erstellen von USB-Live-Medien, die nur über UEFI gebootet werden können, ist ganz einfach. Kopieren Sie einfach die Dateien auf Ihr FAT32-formatiertes USB-Laufwerk. Das ist es!

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

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. Konfigurationsdatei erstellen
    3. Persistenz hinzufügen
    4. Überprüfung der Integrität
    5. UEFI Secure Boot

1. Kopieren Sie die Dateien von der ISO-Methode

Diese Methode funktioniert auch für andere Installationsmedien, die EFI-Loader enthalten, z. B. Windows.

1.1. Beispiel über Terminal

Sie können Folgendes tun, wenn 604A-00EAIhr USB-Laufwerk bereits p7zipinstalliert ist:

$ 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 bootfähig kennzeichnen, z. B . parted:

# parted /dev/sdX set 1 boot on

Wo /dev/sdXwäre Ihr USB-Laufwerk und 1die Partitionsnummer, die zum Booten verwendet werden sollte.

1.2. Beispiel über GUI

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

    nautilus zeigt Disk Image Mounter im Kontextmenü an, wenn .iso-file ausgewählt ist

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

    GParted zeigt, wie Partitionsflags verwaltet werden

1.3. Beispiel unter Windows

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

2. Die ISO-Loopback-Methode (erweitert)

Anstatt Inhalte aus einem ISO-Image zu extrahieren, konnten GRUB und GRUB2 von ISO-Images direkt ü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 das USB-Laufwerk durcheinander gebracht wird.

Wenn Sie auch Windows booten möchten, sollten Sie sich SARDU ansehen . Ich erinnere mich, dass ich es mit Windows PE um 2005 verwendet habe, und es scheint aktualisiert worden zu sein, um USB-Laufwerke und UEFI zu unterstützen, aber ich erinnere mich, dass dieses Tool auch das Booten älterer Versionen unterstützt.

Was brauchen wir?

  • Grundkenntnisse der GRUB-Konfigurationsdateien.
  • Sehr grundlegende Kenntnisse über UEFI-Boot und GRUB, da wir ein eigenes GRUB-Bootloader-Image mit einer Vielzahl von Modulen erstellen werden.
  • Ein bootfähiges UEFI-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ühnchen-und-Ei-Situation sein kann). Eine traditionelle Linux-VM wie in VirtualBox ist in Ordnung.

2.1. Erstellen der Binärdatei

Stellen Sie auf Ihrem Ubuntu-Computer oder Ihrer VM sicher, dass das Paket grub-efi-amd64-bin installiert ist (grub-efi-ia32-bin ist auch für 32-Bit-Intel-Architekturen in neueren Versionen 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 in Ihrer 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 nach \EFI\BOOT\einer Datei mit dem Namen suchen. boot{arch}.efiErstellen Sie daher die Ordner auf dem USB-Laufwerk und kopieren Sie das soeben erstellte Image an diesen Speicherort. Andere Architekturen anstelle von x64 sind möglich, aber lassen Sie es uns mit x64 / amd64 einfach halten.

2.2. Konfigurationsdatei erstellen

Ein sehr einfaches Beispiel für eine grub.cfgKonfigurationsdatei, die im selben Verzeichnis abgelegt werden soll, das wie bootx64.efifolgt aussehen würde:

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 habe gewählt, black/light-magentada es immer noch ein bisschen Ubuntu-artig aussieht, aber beim Laden anderer Konfigurationen leicht zu unterscheiden ist. Weitere Beispiele für andere Distributionen finden Sie im Arch-Wiki, und das Lesen des GRUB-Handbuchs ist wirklich Ihre Zeit wert, wenn Sie darüber hinaus gehen möchten.

Wenn Sie zum Konfigurationsblock zurückkehren, sollte es offensichtlich sein, dass die ISO als referenziert /efi/boot/ubuntu-14.04.2-desktop-amd64.isowird. Kopieren Sie also Ihre ISO in die Konfiguration \EFI\BOOT\und ersetzen Sie sie ubuntu-14.04.2-desktop-amd64.isodurch den tatsächlichen Dateinamen Ihrer ISO.

loopback loop $isofileist die Zeile, die unsere ISO-Datei auf ein Loopback-Gerät lädt, von dem aus wir den Linux-Kernel direkt booten können. Dies ist möglich, weil unser EFI GRUB-Image das Loopback-Modul enthält. (Mit ein wenig Versuch und Irrtum musste herausgefunden werden, welche Module zumutbar sind. Es sollten keine Fehlermeldungen angezeigt werden, es ist jedoch immer noch nicht perfekt.) Apropos Kernel: Sie können Kernelparameter wie toramParameter für verschiedene Sprachen hinzufügen (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-Stick, um eine Partition für die Persistenz zu verwenden? Sie können auch eine casper-rwDatei erstellen und im Stammverzeichnis Ihres USB-Laufwerks ablegen.

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 verwenden möchten. Beachten Sie, dass jede Änderung an (root) eine Änderung am Overlay-Dateisystem ist, auch das Löschen von Dateien.

2.4. Überprüfung der Integrität

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

2.5. UEFI Secure Boot

Auf Windows 10-Computern ist der sichere Start obligatorisch. Ich empfehle, dass Sie sich den PreLoader der Linux Foundation ansehen, um diesem Setup die Funktion für den sicheren Start hinzuzufügen. Hier finden Sie einige ASCII-Grafiken, die die Menüs des zugehörigen HashTools veranschaulichen .


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


1
Lassen Sie mich darauf hinweisen, (a) dass alle PCs, die in den letzten 5 Jahren ausgeliefert wurden, über diese Funktion verfügen; (b) dass der .iso installer root dann den vollen usb stick als gewöhnlichen persistenten speicher verwenden kann. (Verwenden Sie zum Schutz vor versehentlichem Löschen die Optionen "ro mount".) Für moderne PCs und allgemeine Verwendungsmuster scheint dies eine bessere Lösung zu sein als die Standardlösung von "live-usb-creator".
user1539216

3
Bei der Verwendung der GUI-Methode sind einige symbolische Verknüpfungsfehler aufgetreten. Ist das relevant? Können Sie bitte näher darauf eingehen?
VRR

1
Hi, LiveWireBT! Vielen Dank für diese interessante Antwort! Ich folgte 2. Die ISO-Loopback-Methode (erweitert) und schaffte es, UEFI vom USB-Flash-Laufwerk zu booten. Aber am Ende des Bootens bekam ich die Fehlermeldung: Kann / dev / loop2 nicht auf / cow mounten und nach dem Drücken der Eingabetaste sah ich eine (initramfs) Eingabeaufforderung. Kannst du mir dabei helfen?
zuba

Ich möchte mich auch für eine großartige Anleitung bedanken, die klar und prägnant war. Ich hätte nie gedacht, den USB-Stick zu partitionieren und mehrere Betriebssysteme darauf zu haben. Danke noch einmal!
Hatem Jaber

2
Zumindest in 16.04 schlägt das Booten des Befehls "Alle Dateien kopieren" fehl, da das Kernelzeilenargument grub.cfg "file = / cdrom / preseed / ubuntu.seed" lautet. Es gibt keine solche Datei, wahrscheinlich im Zusammenhang mit dem oben erwähnten fehlenden symbolischen Link (Ubuntu zu.). Bearbeiten Sie die Datei grub.cfg, um die Datei zu entfernen = ... und ersetzen Sie sie durch "live-media-path = / casper / ignore_uuid"
ubfan1

3

Auszug aus der ISO-Datei nach FAT32

Das Extrahieren des Inhalts einer Ubuntu 64-Bit-Desktop-ISO-Datei in eine Partition mit einem FAT32-Dateisystem und einem Startflag erledigt die Aufgabe: Erstellen eines Live-Laufwerks, das nur im UEFI-Modus gestartet wird. Hier (in der akzeptierten Antwort) heißt es "Dateien von der ISO-Methode kopieren".

Testen Sie, ob Sie im UEFI- oder BIOS-Modus ausgeführt werden

Es ist jedoch einfach, in einem laufenden Ubuntu-System (sowohl live als auch installiert) zu testen, ob 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 Startmodi verwendet werden können, was ebenfalls von Vorteil sein kann.

Siehe auch die folgenden Links für eine detailliertere Erklärung und Beschreibung der Methode.

help.ubuntu.com/community/Installation/iso2usb

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


2

Die Verwendung ddhat bei mir aus irgendeinem Grund funktioniert, die GUI-Version hat nicht funktioniert. Zunächst möchten Sie möglicherweise den Fortschritt von dd überwachen. Eine weitere Option ist die Verwendung der Option SIGUSR1 , um den Statusdd regelmäßig zu melden. Dies ist jedoch 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_usewird in der Regel sein /dev/sdb, aber überprüfen Sie mit df!)


8
Medien auf diese Weise anlegen führt nicht in UEFI- nur das Boot - Medium. Der letzte Absatz der Frage lautet : "Es gibt auch einen Vorteil beim Erstellen eines UEFI-reinen Boot-USB-Live-Mediums: Sie wissen, dass es definitiv über UEFI gebootet wurde." Wenn Sie versuchen, eine UEFI-bootfähige Ubuntu-Installation zu verstehen und einzurichten, ist es ein Problem, wenn Medien vorhanden sind, die in beide Richtungen booten können.
LiveWireBT

1
Aha. Das Seltsame ist, dass ich auf diese Weise ein Image erstellen konnte, das im UEFI-Modus gebootet wurde (ich weiß das, da der Laptop so eingestellt war, dass nur ein UEFI-Boot möglich ist und auch wegen des Startbildschirms). Die bevorzugte Antwort hat bei mir nicht funktioniert, der Computer bootete einfach nicht mit einem Image, das durch einfaches Kopieren der Dateien erstellt wurde.
sup

5
@sup diese Methode schafft Medien können UEFI-gebootet werden. Das Problem ist, dass es nicht nur UEFI-bootfähig ist, wie in der Frage gefordert: Es kann auch im BIOS-Modus gebootet werden.
Darael
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.