Proxmox VE(PVE)直通硬盘教程:整盘直通给虚拟机
Proxmox VE(PVE)直通硬盘教程:整盘直通给虚拟机
适用场景:把 一整块物理硬盘(HDD/SSD/NVMe)直接交给某台虚拟机使用(例如 TrueNAS / OpenMediaVault / 黑群晖 / Windows 盘等)。
核心原则:优先用
/dev/disk/by-id/这种“稳定设备标识”来直通,避免因为/dev/sdX变动导致直通错盘。
0. 重要提醒(务必先看)
- 整盘直通后,PVE 宿主机不要再对这块盘做任何分区/挂载/ZFS/LVM 操作。
- 不要直通系统盘(安装 PVE 的那块盘),否则高风险翻车。
- 直通前建议你在 PVE WebUI 里确认磁盘序列号/容量,避免选错盘。
- 如果你是存储系统(TrueNAS/群晖)用途:更推荐“直通整块盘”或“直通 HBA 控制器”,不要直通分区。
1. 找到要直通的硬盘(强烈建议用 by-id)
1.1 查看系统识别到的磁盘
在 PVE Shell 执行:
1 | lsblk -o NAME,SIZE,MODEL,SERIAL,TYPE,MOUNTPOINT |
你会看到类似:
sda/sdb/...(SATA/SAS 硬盘)nvme0n1/nvme1n1/...(NVMe)
1.2 获取稳定的磁盘路径(by-id)
1 | ls -la /dev/disk/by-id/ | sed -n '1,200p' |
你要找的是指向整盘的那个链接,例如:
ata-WDC_WD80EFAX-... -> ../../sdbnvme-SAMSUNG_MZVL... -> ../../nvme1n1
小技巧:如果列表太多,可以按厂商/容量/序列号关键字过滤:
1 | grep -i "WDC\|Seagate\|Samsung\|TOSHIBA" -n <(ls -la /dev/disk/by-id/) |
2. 把整块硬盘直通给指定虚拟机
你需要知道虚拟机的 VMID,比如 101/102。
2.1 查询虚拟机 VMID
1 | qm list |
2.2 直通整块盘(推荐命令)
假设:
- VMID 是
101 - 磁盘 by-id 是:
/dev/disk/by-id/ata-WDC_WD80EFAX-68LHPN0_WD-XXXXXXX
执行:
1 | qm set 101 --scsi1 /dev/disk/by-id/ata-WDC_WD80EFAX-68LHPN0_WD-XXXXXXX |
说明:
--scsi1表示挂到该虚拟机的第 2 块 SCSI 盘(编号你可改scsi0/scsi2/...,不要和现有磁盘冲突)。- 直通盘常用挂载口有
scsiX或sataX。
2.3(推荐)给直通盘配上 VirtIO SCSI 控制器
如果你的虚拟机还没启用 VirtIO SCSI 控制器,建议在 WebUI:
- VM → Hardware → SCSI Controller
- 选择:VirtIO SCSI single(常用推荐)
然后再添加直通盘。
3. 在 PVE 配置里确认直通是否生效
查看该 VM 配置:
1 | qm config 101 |
你应该能看到类似:
1 | scsi1: /dev/disk/by-id/xxx |
4. 在虚拟机系统里确认硬盘已识别
启动虚拟机,在虚拟机内部执行:
1 | lsblk |
你会看到新增一块磁盘(例如 sdb / vdb / sdX 取决于虚拟机控制器)。
注意:虚拟机里看到的盘符可能和 PVE 宿主机不同,这是正常的。
5. 常见问题与排错
5.1 重启后直通盘“换盘”了
原因:使用了 /dev/sdX 这种不稳定路径。
解决:必须改成 /dev/disk/by-id/...。
5.2 直通盘在虚拟机里读写异常 / 性能差
建议检查:
- 虚拟机磁盘控制器是否为 VirtIO SCSI single
- 是否启用了 I/O 线程(iothread)(看你的业务类型决定)
- 宿主机和盘的连接方式(SATA/USB 转接不稳定)
5.3 直通盘是 NVMe,by-id 看不懂
NVMe 的 by-id 一般长这样:
nvme-<厂商>_<型号>_<序列号>
同样原则:直通 by-id 指向整盘的那个链接。
6. 其他直通方式(简单带过)
6.1 直通“硬盘分区”
不推荐。因为分区层面的变动、宿主机误挂载、以及某些存储系统(TrueNAS/群晖)对裸盘的需求,会让风险变大。
6.2 直通 PCIe 控制器(HBA/整卡直通)
对 TrueNAS 等存储虚拟机来说这是“最干净”的方式:把整张 SATA/HBA 卡直通给虚拟机,让虚拟机直接管理其下所有硬盘。
缺点:需要硬件支持 IOMMU 分组良好,并且宿主机会失去对这张卡下磁盘的控制。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Papierkran's website!
评论


