linux 如何在qemu虚拟机中创建**可移动**U盘?

h5qlskok  于 2023-05-06  发布在  Linux
关注(0)|答案(1)|浏览(191)

我正在写一个程序,需要检查是否有可移动驱动器。它使用/sys/class/block通过检查特殊文件removable是否存在并且包含非零的数字来识别这些设备。例如,在我的系统上,/sys/class/block/sdc/removable包含0,因为它是SATA硬盘驱动器,而/sys/class/block/sdd/removable中的USB棒包含1。
我正在使用qemu在虚拟机上测试我的程序。通过在内核配置(kernel 6.1.14)中禁用CONFIG_SYSFS_DEPRECATED并添加一个USB驱动器,我已经在/sys/class/block中有了条目,如下所示:

kvm -bios /usr/share/qemu/OVMF.fd \
    -net none \
    -drive file=root.img,format=raw \
    -m 1G -cpu host -smp 2 \
    -drive if=none,id=stick,format=raw,file=usb.img \
    -device nec-usb-xhci,id=xhci \
    -device usb-storage,bus=xhci.0,drive=stick

摘自QEmu文档here。U盘工作正常,可以挂载/卸载,但sys文件系统中没有removable条目。我错过了什么?

ojsjcaue

ojsjcaue1#

USB存储设备的默认行为类似于USB硬盘,通常不会在向客户报告的信息中设置RMB(可移动媒体位)。但是,您可以将其配置为设置人民币,使其表现得像一个典型的USB拇指驱动器。
您可以通过将removable=on添加到您的usb-storage设备子选项来实现此操作,因此在您的示例中:

-device usb-storage,bus=xhci.0,drive=stick,removable=on

相关问题