我想使用 GRUB2 创建多重可启动 USB。但我不想使用物理 USB 记忆棒进行实验。
我怎样才能创建虚拟USB来玩它,因为它是使用qemu的真实设备?我想从它启动来宾机器,从来宾操作系统设置 GRUB 等等。
后来,我希望能够获取虚拟映像并将其复制到我真正的 USB 记忆棒上。我怎么能这么做呢?也许与if=usb_image.vmdk of=/dev/sdx
?
答案1
您是否使用抽象层,例如libvirt
?如果是这样,只需将磁盘映像文件添加为 USB 磁盘即可。
如果您直接运行kvm
/ qemu
,则手册页(man kvm
或man qemu
)会提供答案:
USB 选项:
-usb 启用 → USB 驱动程序(很快将成为默认值)
-usbdevice devname → 添加USB 设备devname。
disk:[format=format]:file → 基于文件的大容量存储设备。将使用可选的格式参数而不是检测格式。可用于指定“format=raw”以避免解释不受信任的格式标头。
所以,这样的事情应该有效
dd if=/dev/zero bs=1M count=8000 of=usb.img # Create the usb disk image
kvm ... -usb -usbdevice disk:raw:usb.img # Start kvm/qemu
稍后就可以运行了dd if=usb.img bs=1M of=/dev/sdX
,但是要确保你的/dev/sdX
确实是USB设备!您还需要使虚拟图像与棒的大小相同(或更小)。请记住,1GB 棒只有 10^9 字节,而不是 2^31 字节。