这是最直接的方法,把整个 USB 硬盘当作物理设备挂给虚拟机。
确认 USB 设备信息
lsusb输出类似:
Bus 002 Device 004: ID 1234:5678 SanDisk Corp.记下 Bus 和 Device,或者用 /dev/disk/by-id/ 也可以定位。
编辑虚拟机 XML
virsh edit k10在 <devices> 标签内添加:
<hostdev mode='subsystem' type='usb' managed='yes'>
<source>
<vendor id='0x1234'/>
<product id='0x5678'/>
</source>
</hostdev>
注意:vendor 和 product ID 用 lsusb 查到的实际值替换。
重启虚拟机
virsh shutdown k10 virsh start k10虚拟机中应该能看到这个 USB 硬盘(lsblk 或 fdisk -l)。
如果报权限错误解决
创建 udev 规则文件
sudo vi /etc/udev/rules.d/99-usb-passthrough.rules
添加以下内容(针对你的硬盘)
SUBSYSTEM=="usb", ATTR{idVendor}=="1058", ATTR{idProduct}=="25ed", MODE="0666"
重载 udev 规则并重新插拔 USB
sudo udevadm control --reload sudo udevadm trigger
确认权限
ls -l /dev/bus/usb/002/002
应该显示 crw-rw-rw-,普通用户就可以访问了。
重启虚拟机
virsh start k10
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!
