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 nur UEFI bootfähigen USB-Live-Medien ist: Sie wissen, dass sie definitiv über UEFI gebootet und installiert wurden.
Da Valve bereits UEFI-basierte USB-Installer mit ihrem Debian-basierten Steam-Betriebssystem und UNetbootin bootet - die am häufigsten gewählte Alternative zu Ubuntus Startup Disk Creator - ist nicht UEFI-kompatibel und daher irreführend. Ich denke, wir sollten ein separates Thema für die Erstellung von bootfähigen UEFI-USB-Live-Medien haben.
Das Erstellen von USB-Live-Medien, die nur über UEFI gebootet werden können, ist ziemlich einfach. Kopieren Sie einfach die Dateien auf Ihr FAT32-formatiertes USB-Laufwerk. Das war's!
Denken Sie daran, dass für eine Installation oder das Booten des Mediums:
Diese Methode funktioniert auch für andere Installationsmedien, die EFI-Loader enthalten, wie z. B. Windows.
Sie können Folgendes tun, wenn 604A-00EA
Ihr USB-Laufwerk ist und Sie p7Zip
bereits 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 bootfähig markieren, z. über parted
:
# parted /dev/sdX set 1 boot on
Wobei /dev/sdX
Ihr USB-Laufwerk und 1
die Partitionsnummer ist, die zum Booten verwendet werden soll.
Hängen Sie die .iso-Datei ein und kopieren Sie den Inhalt auf Ihr USB-Laufwerk. Drücken Sie Ctrl+H in Nautilus, um auch versteckte Dateien anzuzeigen und zu kopieren.
Fügen Sie das Boot-Flag über GParted hinzu.
diskmgmt.msc
zu öffnen, wird die Datenträgerverwaltung geöffnet.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.
Was brauchen wir?
Stellen Sie auf Ihrem Ubuntu-Computer oder auf VM sicher, dass das Paket grub-efi-AMD64-bin installiert ist (grub-efi-ia32-bin ist auch für 32-Bit-Intel-Architekturen verfügbar) neuere Versionen). Das Paket kann in einer anderen Distribution einen anderen Namen haben. Sie können das Dateiliste des Pakets vergleichen, um das richtige Paket in Ihrer Distribution zu finden.
Der folgende Befehl generiert das Image GRUB, 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. Erstellen Sie daher die Ordner auf dem USB-Laufwerk und kopieren Sie das soeben erstellte Image dieser Ort. Andere Architekturen anstelle von x64 sind möglich, aber lassen Sie es uns mit x64/AMD64 einfach halten.
Ein sehr einfaches Beispiel für eine grub.cfg
-Konfigurationsdatei, die im selben Verzeichnis wie bootx64.efi
abgelegt werden soll, sieht folgendermaßen aus:
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 black/light-Magenta
gewählt, da es immer noch etwas 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-Handbuch ist wirklich Ihre Zeit wert, wenn Sie darüber hinausgehen möchten.
Wenn Sie zum Konfigurationsblock zurückkehren, sollte es offensichtlich sein, dass die ISO als /efi/boot/ubuntu-14.04.2-desktop-AMD64.iso
bezeichnet wird. Kopieren Sie also Ihre ISO nach \EFI\BOOT\
und ersetzen Sie ubuntu-14.04.2-desktop-AMD64.iso
in der Konfiguration 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
hinzufügen. , Parameter für verschiedene Sprachen (Beispiel locale=de_DE bootkbd=de
) und wie im Beispiel: persistent
Sie können eine Partition wie folgt hinzufügen: Wie verwende ich eine Live-USB-Partition für die Persistenz? Oder Sie erstellen eine casper-rw
-Datei und platzieren sie im Stammverzeichnis Ihrer USB Laufwerk.
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.
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:
Auf Windows 10-Computern ist der sichere Start obligatorisch. Ich schlage vor, Sie werfen einen Blick auf den PreLoader der Linux Foundation, um diesem Setup die Funktion für den sicheren Start hinzuzufügen. Hier sind einige ASCII-Grafiken, 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.
Das Extrahieren des Inhalts einer Ubuntu 64-Bit-Desktop-ISO-Datei auf 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".
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.
Die Verwendung von dd
hat bei mir aus irgendeinem Grund nicht funktioniert. Als erstes möchten Sie vielleicht den Fortschritt von dd überwachen , eine andere Option verwendet die Option SIGUSR1, um dd
auszulösen, um den Fortschritt in regelmäßigen Abständen 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_use
ist normalerweise /dev/sdb
, aber überprüfen Sie mit df
!)