Wie boote ich mit qemu-kvm von einem Live-USB?


Antworten:


23

qemu-kvm -hdb <device>, wo <device>ist der USB-Stick (zB /dev/sdb), sollte das tun (getestet mit Ubuntu 12.04 auf einem USB-Stick und es funktioniert).

Sie benötigen eine Schreibberechtigung für das Gerät (dh Sie müssen die Berechtigungen rootändern).


2
Gute Antwort. Übrigens, wenn Sie eine einfache Oberfläche zum Verwalten Ihrer VMs benötigen, probieren Sie virt-manager aus.
Wazoox

2
Nur als Hinweis: Ich habe VirtualBox anstelle von kvm ausprobiert, um meinen Live-USB-Stick zu testen, und es ist VIEL schneller. Sie müssen diesen Befehl als root verwenden, um eine vmdk-Datei zu erstellen, die in VirtualBox verwendet werden soll:VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb
Marc MAURICE

4
Hier nur eine kleine Anmerkung zu sich selbst - verwenden Sie den Platten- / Geräteknoten in -hdb(z. B. /dev/sdb); NICHT die Partition (wie in /dev/sdb4)
sdaau

Um eine Warnmeldung zu vermeiden WARNUNG: Das Bildformat wurde nicht für '/ dev / sdb' und das Prüfen von Rohdaten angegeben. Das automatische Erkennen des Formats ist gefährlich für RAW-Bilder. Schreibvorgänge auf Block 0 werden eingeschränkt. Geben Sie das Rohformat explizit an, um die Einschränkungen zu beseitigen. Sie können Optionen in diesem Format angeben: -drive file=/dev/sdb,format=raw,index=0,media=diskSiehe diese Frage
Ashark

26

qemu-kvm ist verschwunden. Verwenden Sie den Hinweis in start qemu, indem Sie stattdessen einen Pfad zu einem Linux-Stammverzeichnis angeben . das heisst

qemu-system-x86_64 -usb -usbdevice disk:/dev/sdb

Dabei ist / dev / sdb Ihr Raw-Gerät (nicht die Partition) des USB-Sticks, den Sie booten möchten.

(Ab 12/2014 ist es für mich jedoch unangenehm. Das Booten von Ubuntu-Gnome 14.10 führt schließlich zu einer Kernel-Panik auf einem Stick, der überprüft wurde, ob das Booten auf dem Metall in Ordnung ist.)

/ iaw


Danke, brauchte dies, um einen Build bin-x86_64-efi/ipxe.usbfür einen EFI-Boot automatisch zu starten , und es funktionierte bisher ohne Probleme.
NiKiZe

2
Können Sie bitte Ihre Antwort aktualisieren? Ich habe folgendes: qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' is deprecated, please use '-device usb-...' instead
Ashark

8

Ich weiß nicht genau warum, aber Renans Antwort hat bei mir nicht ganz funktioniert. KVM sagte mir, es könne kein bootfähiges Laufwerk finden (obwohl die USB-Partition als solche gekennzeichnet ist).

Ich habe jedoch eine andere Lösung gefunden. Holen Sie sich die VendorID: ProductID des USB-Geräts mit lsusb. Beispiel:

$ lsusb
...
Bus 002 Device 007: ID 0781:5406 SanDisk Corp. Cruzer Micro U3

Übergeben Sie das an KVM und fragen Sie nach dem Startmenü:

sudo  kvm -m 512 -smp 1 -drive file=/path/to/hardisk/file.img -usb \ 
-usbdevice host:0781:5406 -boot menu=on

Drücken Sie F12 für das Menü, wählen Sie das USB-Gerät, es funktioniert. Es gibt wahrscheinlich eine Möglichkeit, den USB-Start zu befehlen, ohne das Startmenü aufrufen zu müssen, aber ich habe in man kvm keine gefunden.


Was mich betrifft, funktioniert das Übergeben eines USB-Sticks als Festplattenlaufwerk für mich korrekt, aber das Übergeben eines USB-Sticks als USB-Gerät mit -boot menu = on 1) im BIOS-Modus, damit ich ihn auswählen kann, zeigt das Syslinux-Menü an (ich habe Archlinux iso geflasht) USB-Stick mit dd) und es startet den Ladevorgang, schlägt jedoch fehl und wartet 30 Sekunden auf Gerät / dev / disk / by-label / ARCH_201903 ... sd 2: 0: 0: 0 [sda] Angenommen, Laufwerk-Cache: Schreiben über print_req_error: E / A-Fehler, dev sda, Sektor 0 Puffer-E / A-Fehler bei dev sda, logischer Block 0, asynchroner Seitenlesefehler: '/ dev / disk / by-label / ARCH_201903' Gerät wurde nach 30 Sekunden nicht angezeigt 2) in uefi scheitert es
Ashark

1

Wenn Sie ein Abbild eines Live-USB-Sticks anstelle eines physischen USB-Sticks verwenden möchten, können Sie dies mit tun

$ kvm -usbdevice disk:/path/to/liveusb.img -boot menu=on ...

Ohne "-boot menu = on" bevorzugt kvm immer die Festplatte, die Sie mit "-drive" oder "-hd [a | b | c | d]" festgelegt haben.

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.