答案1
我找到了另一个适合我的解决方案。事实上,我意识到我并不需要模拟 USB 驱动器,而是任何类型的存储设备(我的应用程序监视 HAL 或 UDisks 的“DeviceAdded”事件)。
所以我做了以下事情:
创建文件系统映像,例如使用“virt-make-fs”命令
sudo virt-make-fs --type=ntfs -- fs.tar.gz fs-test.img
将 img 文件上传到测试机
- 将图像设置为循环设备:
sudo losetup /dev/loop0 fs-test.img
就是这样,UDisks 刚刚触发了“DeviceAdded”DBus 事件!
(但是,在这种情况下,HAL 不会触发任何操作,因此这是一个放弃它的好机会,因为它已被弃用)
如果需要,你可以使用类似以下命令手动挂载图像sudo mount /dev/loop0 /mnt/fs
。
如果需要使用 pmount,请不要忘记添加/dev/loop0
到/etc/pmount.allow
。
要取消设置循环设备,只需使用sudo losetup -d /dev/loop0
。