如何使用 qemu-kvm 从 liveusb 启动?

mik*_*son 30 boot usb-drive qemu

我正在尝试让 qemu-kvm 从我的实时 USB 记忆棒启动。这可能吗?

Ren*_*nan 27

qemu-kvm -hdb <device><device>U 盘在哪里(例如/dev/sdb),应该这样做(在 U 盘上使用 Ubuntu 12.04 进行测试并且可以正常工作)。

您将需要对该设备的写权限(即成为root或更改其权限)。

  • 在这里给自己一个小小的说明 - 使用 `-hdb` 中的磁盘/设备节点(例如 `/dev/sdb`);不是分区(如`/dev/sdb4`) (4认同)
  • 好答案。顺便说一句,如果您需要一个简单的界面来管理您的 VM,请尝试使用 virt-manager。 (2认同)
  • 提示一下:我尝试使用 VirtualBox 而不是 kvm 来测试我的实时 USB 记忆棒,而且速度要快得多。您必须以 root 身份使用此命令来创建要在 VirtualBox 中使用的 vmdk 文件:`VBoxManage internalcommands createrawvmdk -filename .VirtualBox/HardDisks/usbdisk.vmdk -rawdisk /dev/sdb` (2认同)

ivo*_*lch 27

qemu-kvm 已经消失了。使用start qemu 中的提示,给它一个指向 linux 根目录的路径。这意味着

qemu-system-x86_64 -usb -usbdevice disk:/dev/sdb
Run Code Online (Sandbox Code Playgroud)

其中 /dev/sdb 是您要启动的 U 盘的原始设备(不是分区)。

(但是,截至 2014 年 12 月,它对我来说很不稳定。启动 ubuntu-gnome 14.10 最终导致内核崩溃,经验证可以在金属上正常启动。)

/iaw

  • 你能更新你的答案吗?我得到以下信息:`qemu-system-x86_64: -usbdevice disk:/dev/sdb: '-usbdevice' 已弃用,请改用'-device usb-...' (3认同)
  • 而不是 -usbdevice 存储,你现在必须使用类似的东西:`-device usb-storage,drive=xxx -drive file=/dev/sdd,if=none,id=xxx` (2认同)

小智 8

我不知道究竟是为什么,但 Renan 的回答对我来说不太适用。KVM 对我说它找不到可启动驱动器(尽管 USB 分区被标记为这样)。

但是我找到了另一个解决方案。使用 lsusb 获取 USB 设备 VendorID:ProductID。例子:

$ lsusb
...
Bus 002 Device 007: ID 0781:5406 SanDisk Corp. Cruzer Micro U3
Run Code Online (Sandbox Code Playgroud)

将其传递给 KVM,并询问引导菜单:

sudo  kvm -m 512 -smp 1 -drive file=/path/to/hardisk/file.img -usb \ 
-usbdevice host:0781:5406 -boot menu=on
Run Code Online (Sandbox Code Playgroud)

按F12进入菜单,选择usb设备,就可以了。可能有一种方法可以在不需要调用启动菜单的情况下命令 USB 启动,但是我在 man kvm 中没有找到任何方法。