Proxmox VE 中 SATA 直通配置指南 🖥️

本指南详细介绍了在 Proxmox VE (PVE) 中实现 SATA 硬盘和控制器直通的完整方法。
📋 目录导航
🔧 1. 准备工作
🖥️ 硬件要求
- Intel CPU:需支持 VT-d 技术(B75 以上芯片组/4 代酷睿以上)
- AMD CPU:需支持 AMD-Vi 技术
- BIOS 设置:需要在 BIOS 中启用 VT-d/AMD-Vi 功能
🔍 检查硬件支持
1 2 3 4 5
| egrep -c '(vmx|svm)' /proc/cpuinfo
dmesg | grep -i iommu
|
📝 识别硬盘信息
1 2 3 4 5
| ls -l /dev/disk/by-id/
|
记录需要直通的硬盘 ID(ata- 开头的标识符)和对应的设备名称(如 sda)。
⚙️ 2. 开启 IOMMU 支持
📝 编辑 GRUB 配置
根据 CPU 类型修改配置:
-
Intel CPU:
1
| GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
|
-
AMD CPU:
1
| GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
|
🔄 更新 GRUB 配置
1 2 3 4 5
| update-grub
proxmox-boot-tool refresh
|
📦 加载必要内核模块
添加以下内容:
1 2 3 4
| vfio vfio_iommu_type1 vfio_pci vfio_virqfd
|
🔄 应用配置并重启
1 2 3 4 5
| update-initramfs -u -k all
reboot
|
✅ 验证 IOMMU 启用
1 2 3 4 5
| dmesg | grep -i iommu
find /sys/kernel/iommu_groups/ -type l
|
🚀 3. 直通方法
💾 方法一:直通单个 SATA 硬盘(推荐)
⌨️ 命令行方式
1 2
| qm set 100 --sata0 /dev/disk/by-id/ata-WDC_WD2500BEVT-22ZCT0_WD-WXHZ08044989
|
参数说明:
<VMID>:虚拟机 ID(如 100)
sataX:控制器位置(sata0, sata1, sata2, sata3)
<硬盘ID>:完整的硬盘 ID
🌐 Web 界面方式
- 选择目标虚拟机
- 进入"硬件"选项卡
- 点击"添加" > “SATA Disk”
- 选择"使用物理磁盘"
- 从下拉菜单中选择对应的硬盘 ID
- 点击"添加"
🎛️ 方法二:直通整个 SATA 控制器
🔍 识别 SATA 控制器
1 2 3 4 5
| lspci | grep -i sata
|
📋 获取设备 ID
1 2 3 4 5
| lspci -nn | grep -i sata
|
记录设备 ID(格式为 [XXXX:XXXX],如 [8086:54d3])
⚙️ 配置直通
1 2
| nano /etc/modprobe.d/vfio.conf
|
添加以下内容:
1
| options vfio-pci ids=8086:54d3
|
🌐 Web 界面添加 PCI 设备
- 选择目标虚拟机
- 进入"硬件"选项卡
- 点击"添加" > “PCI 设备”
- 选择对应的 SATA 控制器
- 勾选"所有功能"和"PCI-Express"
- 点击"添加"
🔍 4. 故障排查
❓ 常见问题及解决方案
🐛 问题 1: IOMMU 未启用
症状:dmesg | grep -i iommu 无输出
解决方案:
🐛 问题 2: PCI 设备无法直通
症状:设备不在 IOMMU 组中或无法绑定
解决方案:
添加参数:
1
| pcie_acs_override=downstream,multifunction
|
更新并重启:
🐛 问题 3: 直通后 PVE 系统无法启动
症状:系统启动失败或进入只读模式
解决方案:
- 进入 PVE 恢复模式
- 注释掉相关的直通配置
- 将 PVE 系统安装在 NVMe 硬盘上
🐛 问题 4: 虚拟机无法识别直通设备
症状:虚拟机中看不到直通硬盘
解决方案:
1 2 3 4 5
| qm config <VMID>
ls -la /dev/disk/by-id/
|
💡 5. 最佳实践
🔒 1. 安全性考虑
⚡ 2. 性能优化
1 2 3 4
|
qm set <VMID> --cpu host
|
📊 3. 监控和维护
1 2 3 4 5 6
| qm monitor <VMID> info block
lspci -k
|
💾 4. 备份策略
1 2 3 4 5
| qm config <VMID> > /backup/vm-<VMID>-config.backup
rsync -av /path/to/data /backup/location/
|
⚠️ 重要注意事项
- 📁 系统安装位置:如果 PVE 系统安装在 SATA 硬盘上,直通整个 SATA 控制器会导致系统无法启动
- 🔒 数据安全:直通操作有风险,务必提前备份重要数据
- 🔄 兼容性:不同硬件平台的 IOMMU 实现可能有差异
- ⚡ 性能影响:直通整个控制器可能影响其他设备的性能
📚 参考资料
通过以上步骤,您应该能够成功在 PVE 中配置 SATA 直通。建议先从单个硬盘直通开始尝试,熟练掌握后再考虑控制器级别的直通。🚀
Proxmox VE 中 SATA 直通配置指南 🖥️