Ü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
- Beispiel über Terminal
- Beispiel über GUI
- Beispiel unter Windows
- Die ISO-Loopback-Methode (erweitert)
- Erstellen der Binärdatei
- Konfigurationsdatei erstellen
- Persistenz hinzufügen
- Überprüfung der Integrität
- 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-00EA
Ihr USB-Laufwerk bereits p7zip
installiert 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/sdX
wäre Ihr USB-Laufwerk und 1
die Partitionsnummer, die zum Booten verwendet werden sollte.
1.2. Beispiel über GUI
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.
Fügen Sie das Boot-Flag über GParted hinzu .
1.3. Beispiel unter Windows
- Wie oben, einfach Dateien kopieren.
- 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}.efi
Erstellen 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.cfg
Konfigurationsdatei, die im selben Verzeichnis abgelegt werden soll, das wie bootx64.efi
folgt 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-magenta
da 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.iso
wird. Kopieren Sie also Ihre ISO in die Konfiguration \EFI\BOOT\
und ersetzen Sie sie ubuntu-14.04.2-desktop-amd64.iso
durch den tatsächlichen Dateinamen Ihrer ISO.
loopback loop $isofile
ist 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 toram
Parameter 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-rw
Datei 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.