我正在写一个程序,需要检查是否有可移动驱动器。它使用/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
条目。我错过了什么?
1条答案
按热度按时间ojsjcaue1#
USB存储设备的默认行为类似于USB硬盘,通常不会在向客户报告的信息中设置RMB(可移动媒体位)。但是,您可以将其配置为设置人民币,使其表现得像一个典型的USB拇指驱动器。
您可以通过将
removable=on
添加到您的usb-storage
设备子选项来实现此操作,因此在您的示例中: