2025-07-28 23:22 Proxmox 0 条评论

Promox VE 直通 SATA 控制器

使用场景

有虚拟机需要使用原始硬盘(例如 TrueNAS 获取 S.M.A.R.T. 信息与硬盘休眠)时,我们不仅可以直通硬盘给虚拟机,还可以尝试直通 SATA 控制器给虚拟机。

警告

[warning]请确保您的 PVE 系统没有被安装在机械硬盘或是 SATA 控制器下的硬盘里,否则操作后可能导致 PVE 无法开机![/warning]

若您确保自己的直通操作不会干扰到宿主机系统,那么请接着往下看。

开启直通

开启 VT-d

Intel 平台需要 b75 以上芯片组(酷睿 4 代以上)

与 VT-X 不同,VT-X 是虚拟化功能,而 VT-d 是 I/O 虚拟化功能。

AMD 平台是 iommu 或者叫 SRIVO(部分 OEM 主板的称法)

开启 iommu

我们编辑 /etc/default/grub 文件。可以使用 vi 或 nano,顺手就好。

找到如下配置项:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Intel 平台请修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

AMD 平台请修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"

如果你需要显卡直通,建议在cmdline再加一句video=vesafb:off video=efifb:off video=simplefb:off,加了之后,pve重启进内核后停留在一个画面,这是正常情况

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt video=vesafb:off video=efifb:off video=simplefb:off"

更新 Grub

使用命令更新:

update-grubupdate-grub

加载相应内核模块

依次执行以下命令:

echo vfio >> /etc/modules echo vfio_iommu_type1 >> /etc/modules echo vfio_pci >> /etc/modules echo vfio_virqfd >> /etc/modulesecho vfio >> /etc/modules echo vfio_iommu_type1 >> /etc/modules echo vfio_pci >> /etc/modules echo vfio_virqfd >> /etc/modules

更新内核参数:

update-initramfs -k all -uupdate-initramfs -k all -u

重启宿主机

rebootreboot

验证

重启后于终端输入:

dmesg | grep iommudmesg | grep iommu

若输出类似内容则成代表成功:

[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0 [ 1.341116] pci 0000:00:01.0: Adding to iommu group 1 [ 1.341126] pci 0000:00:02.0: Adding to iommu group 2 [ 1.341137] pci 0000:00:14.0: Adding to iommu group 3 [ 1.341146] pci 0000:00:17.0: Adding to iommu group 4[ 1.341100] pci 0000:00:00.0: Adding to iommu group 0 [ 1.341116] pci 0000:00:01.0: Adding to iommu group 1 [ 1.341126] pci 0000:00:02.0: Adding to iommu group 2 [ 1.341137] pci 0000:00:14.0: Adding to iommu group 3 [ 1.341146] pci 0000:00:17.0: Adding to iommu group 4

再输入:

find /sys/kernel/iommu_groups/ -type lfind /sys/kernel/iommu_groups/ -type l

若出现很多直通组则代表成功。无内容反之。

最后,选择需要设置的虚拟机,点击 硬件 > 添加 > PCI设备 > 选择 SATA Controller(SATA 控制器),最后点击“添加”把 SATA Controller(SATA 控制器)添加给相应的系统后,完成重启,PVE硬件直通的设置就生效了。

[warning]如果您在添加硬件没有找到 SATA Controller 字样,请接着往下看[/warning]

我们执行:

lspcilspci

会看到一堆输出。里面应当包含了 SATA Controller。例如我的是 11:00.0。输出示例如下:

... 11:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset SATA Controller (rev 01) ...... 11:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] 600 Series Chipset SATA Controller (rev 01) ...

您可以根绝输出内容来判断自己应当如何设置直通。

巨人的肩膀

Proxmox VE 设置硬盘直通_pve硬盘直通-CSDN博客

pve 在amd平台开启sata硬件直通, 且使fnos硬盘自动休眠 - 简书

评论

欢迎留下你的看法

0