一、在PVE创建群晖虚拟机
点击创建按钮,虚拟机id自己设定一个,后面直通硬盘的时候要用到。名称随便写。

操作系统设置这里选择不适用任何介质。

系统这里选择默认。

磁盘选择默认。

CPU看个人情况进行设置,我的CPU是8700T,这里设置了8核给群晖。

我的主板上插了4条8G的内存条,一共32G,这里给群晖了16G。

网络选择默认。如果你有多个网口,可以在硬件选项卡中进行直通。

选择完成即可。

把刚才默认的那块32G的盘抹掉,选中磁盘,选择分离。

选中未使用的磁盘,选择remove。
二、设置启动盘
关于引导和系统安装包,大家在物理机上安装的,这里都可以用,而仅仅设置一个虚拟盘启动即可。我这里使用的引导是DS3622xs_7.0.1-42218.img,系统是DS3622xs_7.0.1-42218(System Installation Package).pat。
首先上传img文件到local中的ISO镜像中。

上传完成之后,双击复制数据,在弹窗中可以看到刚刚上传的文件在PVE中的路径,记住这个路径,待会要用。

在PVE根节点下,选择shell窗口,输入如下命令,这里的120.conf 即为上面设置的虚拟机id,根据自己的具体id进行相应修改:
nano /etc/pve/qemu-server/120.conf

在打开的文件中,按回车,然后粘贴如下参数:
args: -device 'qemu-xhci,addr=0x18' -drive 'id=synoboot,file=/var/lib/vz/template/iso/DS3622xs_7.0.1-42218.img,if=none,format=raw' -device 'usb-storage,id=synoboot,drive=synoboot,bootindex=5'
其中file=/var/lib/vz/template/iso/DS3622xs_7.0.1-42218.img就是上面上传的群晖引导文件在PVE的具体路径。贴过来之后,按住CTRL + X进行退出,然后按Y进行保存。

添加一块磁盘,在DSM节点下,选择硬件,添加磁盘,设置为SATA接口,大小无所谓,因为这里占用的是PVE宿主机的磁盘。

设置完成之后,点击启动。
三、查看群群晖IP地址
这个时候使用群晖助手查找,有一两分钟的延迟,可以在路由器管理端查看设备的IP,如下:

有点耐心,等一两分钟,也可以用群辉助手查找到设备。
四、安装群晖DSM系统
在浏览器中输入群晖IP地址加5000端口号,进行系统安装。

选择本地硬盘上的群晖系统安装包,进行安装。注意,我们使用的是DS3622xs_7.0.1的引导,所以这里的系统也要选择DS3622xs_7.0.1的系统,二者需要对应起来。

点击继续。

如果你不想创建这个32G的虚拟盘,可以先操作步骤五,把硬盘直通过来,然后再进行DSM的安装,那样的话就会有提示多个盘会被清除数据:

耐心等待系统安装。


安装完成,点击开始。

置群辉设备名称,这里随便写,并设置管理员用户名和密码。

黑群晖最大的缺点是升级不稳定,如果不升级一般不会有什么问题,所以这里强烈建议选择手动更新。

点击跳过,当然你也可以关联到自己的群晖账号下。


进入这个DSM控制台的页面,证明已经完全安装好了。

在群晖的控制面板,就可以查看设备信息了。
五、设置硬盘直通
关闭群晖虚拟机,在DSM这台虚拟机节点下,选择shell命令窗口,查看所有磁盘命令:
ls /dev/disk/by-id
可以看到ata开头的这8块就是我的机械硬盘。我们把这几块盘的id复制出来。
挂载磁盘命令:
qm set 120 --sata1 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZDH9SZY7 qm set 120 --sata2 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY93ET5 qm set 120 --sata3 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY93GK5 qm set 120 --sata4 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY93GXK qm set 120 --sata5 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY94D4N
命令参数解释,例如qm set 120 –sata3 /dev/disk/by-id/ata-ST4000VN008-2DR166_ZGY93GK5,这里的120是这台群晖虚拟机id,–stata3设置当前盘为DSM虚拟机的第3块盘(从0开始的),最后面ata-ST4000VN008-2DR166_ZGY93GK5是上面查出来的硬盘id。
我这里一共添加过来了5块盘。

设置完成之后,在硬件选项卡下就可以看到刚刚直通过来的5块磁盘了。

重启系统进入之后,点击存储管理器,就可以看到我们5块4T的未初始化的硬盘。很遗憾,这个方法在我的硬件设备上行不通。
5.1 设置PVE直通特性功能
Intel CPU
shell里面输入命令:
nano /etc/default/grub
在里面找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
然后修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
在更新一下
update-grub
AMD CPU
shell里面输入命令:
nano /etc/default/grub
在里面找到:
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
然后修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
在更新一下
update-grub
新增所需模块
修改文件/etc/modules,加入如下的行
nano /etc/modules
在里面填入
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
执行命令来更新initramfs
update-initramfs -u -k all
重启PVE虚拟机
5.2硬件SATA控制器直通给群晖虚拟机
如果你的硬盘之前有装过群晖,建议进行硬盘格式化。具体操作如下:


我这里有两个SATA控制器,因为我的主板自带6个sata接口,我自己又插了一个PCIe的扩展卡,扩展卡上插了两块盘。所以上面那个控制器有6块盘,下面那个有两块盘。然后我把上面这个给了群晖虚拟机。当然这个方式有个缺点是,这个SATA Controller所有的硬盘都会直通给群晖,如果只想这个SATA Controller下面一部分硬盘给群晖,其余给PVE的其他虚拟机,那就需要修改DiskIdxMap、SataPortMap、SasIdxMap三个参数了。

添加之后是这样子的:

打开群晖DSM就可以看到硬盘已经过来啦。

下面就可以根据提示创建存储池和共享文件夹,进行使用了。
大功告成,enjoy it。