相关文章:
前言
近期又买了一台主机,部署了 ESXi6.7 并在平台中搭建了黑群晖(Synology)和家庭共用的远程桌面,踩了很多坑但最终搞清了各种存在的问题。由于 ESXi 的问题主要是兼容性问题,每个人的问题都是五花八门,所以网上的教程大多数存在于论坛和讨论帖,完整的教程文章较少,故写此篇作为记录。
撰写本篇时我已完成且将会在此记录的内容包括:
- ESXi 的部署
- 黑群晖的部署(Synology DS3617xs)
- 白群晖中的数据盘以直通(Passthrough)的形式接入黑群晖虚拟机,开启 SMART 等硬盘信息
黑群晖光纤卡直通
由于篇幅问题,我会再写一篇记录:5. Windows10 的部署与显卡直通设置太简单了,不单独写了。创建一个虚拟机,安装 Windows,直通 PCI 设备中选择 N 卡,虚拟机高级设置中添加一条Hypervisor.CPUID.v0 = “FALSE”
。开机后直接去装 N 卡驱动即可,之后接上 N 卡上的 HDMI 接口和显示设备,下一次重启后即可直接使用显示器来看这个 Windows 虚拟机了。不能用 Intel 的核显,因为 ESXi 的问题,核显虽然能用到,但不能 HDMI 输出。教程提示
本篇教程为幼儿园级,照着做绝对没问题,但也因此看上去很啰嗦。如果你是有经验的人,只是想在这篇文章中找到一些关键点的信息可以直接按标题往下跳跃阅读。若发现任何错误或没有说清楚的地方,可以在下方留言,我会及时更新修改。配置环境
- CPU: I5-7600
- 主板:华擎 B250 Pro4 (不推荐此型号)
- 内存:32G (DDR4 2400 8Gx4)
- 显卡:GTX 1650 (不推荐此型号)
- 主板网卡:Intel I219-LM
- 光纤卡:Intel 82599EB
- ESXi 6.7
- Synology DSM 6.2
ESXi 的部署
其实这部分没有什么特别需要讲的,在 VMWare 官网的 ESXi 下载中心选择你需要的版本下载后使用类似于 UltrISO 这样的软件将镜像写入 U 盘后,在物理机上以 U 盘位启动项进入安装程序。在安装时建议只装上一个硬盘,可以方便确定安装盘。安装步骤中没有其它需要注意的内容,按照安装程序的步骤提示即可完成。安装完后在主机上打开 ESXi 的 SSH 调试功能。
部署黑群晖的准备工作
无论是在怎样的平台中部署黑群晖,主要步骤都可以分为 “镜像准备” 和 “设备准备”。本步骤中需要使用两个软件:OSFMount 用于编辑引导盘中的配置文件;StarWind 用于将引导盘转化为 ESXi 虚拟盘文件。你可以在公网中寻找这两个软件的安装包,也可以在下方直接下载。
OSFMount x64
StarWind Converter
镜像下载
黑群晖的安装文件分为两个,第一部分为引导项,第二部分为系统镜像。每个版本的引导项支持的群晖系统版本有限,较低版本的引导项可能无法引导较新的系统镜像,导致无法进入系统,所以在选择引导盘时需要注意其是否支持你准备安装的群晖版本。你可以在 Jun 大的帖子中获取到所有的引导项下载链接。
在我的部署过程中,我选择了 DS3617xs,引导版本为 v1.03b,群晖系统版本为 DSM6.2 23739,如果你并不追求绝对最新可用的版本的话可以考虑我使用的这个组合。群晖系统的安装镜像可以直接从群晖的官方下载中心获取到,比如说这里的 23739 版本就可以访问 https://archive.synology.com/download/DSM/release/6.2/23739/ 获取到各个型号的 23739 版本安装镜像。
挂载引导项
打开 OSFMount,点击左下角的 “Mount New”,在新窗口中选择刚刚下载的引导项文件,在新弹出的窗口中选择 15MB 大小的分区 0 并确定,之后将 Mount Options 区域中的只读设置 “Read-only drive” 取消勾选,最后点击确定按钮即可将这个引导项挂载为一个系统分区盘,盘符为 Mount Options 中的 Driver Letter 设置项。在点击确定前,你的挂载设置应和下图类似:


编辑引导项
在被挂载的引导项分区中,进入 grub 目录,以 Notepad++ 之类的工具编辑 grub.cfg 文件,主要需要编辑的是以下这一片区域
- set vid=0x058f
- set pid=0x6387
- set sn=A8ORT0596Z
- set mac1=0019422CA803
- set rootdev=/dev/md0
- set netif_num=1
- #set extra_args_3617='earlycon=uart8250,io,0x3f8,115200n8 earlyprintk loglevel=15'
- set extra_args_3617=''
在这一部分中,你可能需要修改以下:
- vid, pid:群晖引导盘的识别号,用于 U 盘引导黑群晖。我们是虚拟机安装黑群晖,不需要修改
- sn:群晖的 Serial Number,如果你不需要洗白则可以不修改
- mac1:引导盘的 MAC 地址,如果引导盘的 MAC 和此处不吻合则无法开机,如果需要洗白则也必须是特定的 MAC 地址。此处写下的 MAC 地址需要在其它地方记录一次,因为在创建黑群晖虚拟机时仍需使用
- mac2, mac3, mac4...:如果你需要更多的网络适配器,无论是物理卡直通还是虚拟卡,都需要在这里提前写好 MAC 地址,否则群晖不会识别那些网络适配器,MAC 地址顺序没有影响。
- set extra_args_3617='':这一行请复制下面一行的内容并覆盖,这是用于隐藏引导分区和启用群晖对直通硬盘 S.M.A.R.T 信息的读取的。
- set extra_args_3617='DiskIdxMap=100400 SataPortMap=148'
SataPortMap 是表示群晖 SATA 控制器设置,28 表示第一个 SATA 控制器有 2 个接口(引导盘和那个 16G 盘所在的控制器),第二个 SATA 控制器有 8 个接口(直通的主板集成 SATA 控制器,有 8 个 SATA 接口)
DiskIdxMap:是表示 SATA 控制器接口的起始位置,1000 中前二位是表示第一个 SATA 控制器的起始位置,十六进制 10 转成十进制就是 16,表示从第 16 个接口开始,3617 只有能显示 12 个接口,所以可以达到隐藏引导盘与 16G 盘的目的。后二位 00 表示第二个 SATA 控制器接口的起始位置,这里是 0,表示从 0 开始。
最终你的配置文件应该和下图类似(仅供参考,切勿直抄)


关闭你的编辑器,回到 OSFMount,点击下方的 Dismount all & Exit 即可保存你的修改到引导文件中。
转换引导文件格式
接下来我们需要将这个 img 格式的引导文件转化为 VMWare 虚拟硬盘文件,使其成为引导盘。
- 打开 StarWind,选择文件来源为本地文件(local file)
- 选中你的引导文件
- 选择 VMWare pre-allocated image
- 保持 IDE 格式的选中
- 确定,转化格式
- 你将会得到两个 vmdk 文件,这就是我们所需要的
上传引导盘
- 进入 ESXi 网页后台
- 点击左侧你一个可用的储存空间(默认名为 datastore1,也就是你 ESXi 系统被安装的那个硬盘)
- 点击主界面上方的 “数据储存浏览器”,你将可以看到这个硬盘下的目录
- 创建一个用于储存系统镜像的目录,然后点击 “上载”
- 上传刚刚生成的两个 VMDK 格式的文件,将他们放在同一个目录
注意:文件名包含 flat 的那个 vmdk 文件不会在这里被显示,但你需要关注上传进度条以确保它已经被上传。如果不放心,这里的上传步骤可以使用 SSH 进行。
创建虚拟机
- 进入 ESXi 虚拟机板块,点击创建虚拟机
- 选择创建新的虚拟机
- 名称自行决定,兼容性选择默认的 “ESXi 6.7 虚拟机”,操作系统系列选择 “Linux”,操作系统版本选择 “Debian GNU/Linux 9 (64 位)”
- 保持默认的储存空间,继续下一步
- 进入 “自定义设置” 页面,直接删除默认产生的硬盘,SCSI 控制器,CD 驱动器
- CPU 设置按你想法,更多 CPU 的核心代表更多性能,这一项修改没有风险,任何设置都是可行的
- 内存设置也按照各自决定,对于这里的 DS3617xs,4G~8G 内存较为适宜,具体可根据个人用途来决定
- 如果你需要连接任何 PCI 直通设备,需要将内存设置中的 “预留所有客户机内存(全部锁定)” 这一项选中
- 点击下方默认产生的 “网络适配器 1” 的详细设置
- 将 “适配器类型” 修改为 E1000e
- 将 “MAC 地址” 的自动改为手动,在后面一格中输入我们刚刚在编辑引导文件时输入的 MAC1,但注意这里需要以冒号进行间隔
- 点击 “添加硬盘”,具体选择为 “现有硬盘”
- 在你的储存空间中找到你刚刚上传的 vmdk 文件,选中并确定,这使我们成功添加了黑群晖的引导盘
- 注意确保这一个硬盘的 “控制器位置” 为 “SATA 控制器 0” 和 “SATA (0:0)”
- 选择 “添加其它设备” 中的 “SATA 控制器”,
- 再次选择添加 “添加硬盘” 中的 “新标准硬盘”,这是用于储存群晖安装系统的默认硬盘,空间保持为默认的 16G 即可
- 打开这个新添加的硬盘的详细设置,将 “控制器位置” 选择为 “SATA 控制器 1” 和 “SATA (1:0)” (这一步格外需要确认,和其它所有教程都不一样)
- 如果你需要添加诸如网络适配器之类的 PCI 物理硬件直通,在这一页面选择 “添加其他设备” 中的 “PCI 设备” 并做选择即可
- 我在这里选择了光纤卡,因为有两个网口,所以有两个网络适配器,均添加至群晖(注意群晖只认 Intel 的光纤卡)
点击下一步,完成虚拟机配置
安装黑群晖
- 启动虚拟机,打开预览,可以看到已经进入群晖的引导系统
- 访问 http://find.synology.com,这会自动帮你寻找局域网下的群晖。若没找到则多刷新几次
- 注意:如果像我一样提前在此时就连接了额外的网络适配器,则一个群晖设备会显示成多个,每个显示不同的 IP 地址,所以需要注意分辨选择合适的 IP 网关下的群晖
- 选择开始部署群晖
- 选择 “Manual Install”,人工安装,避免引导盘自动下载安装最新版 DSM 导致无法引导
- 选择你电脑上提前下载好的群晖系统镜像(.pat 文件)
- 选择开始安装,同意清除数据(此时我们没有连接数据盘,所以没有数据丢失问题)
等待安装完成即可,会有系统自动提醒的提示
群晖系统设置
- 重新访问黑群晖后台地址,稍等片刻等待部署完成
- 为你的群晖系统设置相关信息
- 选择不自动安装更新,防止群晖自动更新后无法被引导
- 如果没有洗白,选择跳过 quickconnect 设置;已经洗白的按照要求填写设置即可
- 最终确定,进入群晖系统后台
如果你像我一样添加了额外的网络适配器,且在引导文件中正确输入了 MAC 地址,并在虚拟机中启用了被直通的 PCI 接口网卡,此时你可以在网络设置中看到你的网卡。如下图,我的 10G 光纤卡已经被识别。
硬盘直通设置
关于 RDM 和 Passthrough 的区别
如果你提前搜过资料可能会发现很多 ESXi 上安装黑群晖的教程中会提到以 “RDM 来把硬盘直通给群晖”,这实际上很扯淡的,因为 RDM 和设备直通是完全两个独立的概念。
一些有玩虚拟机经验的人简单看一下那些 RDM 硬盘直通教程就能发现问题,RDM 是将物理硬件虚拟化后再传递给虚拟机,也就是由 ESXi 读取设备后生成一个新的虚拟设备再传递给虚拟机。而硬件直通(Passthrough)是将物理主机上的设备直接规划给虚拟机独立使用,ESXi 系统不会再利用这个物理硬件。
这也就是为什么使用 RDM 虽然可以让群晖读到那么一整个硬盘,但硬盘名称总是 “VMWare 虚拟硬盘”,而使用 Passthrough 的硬盘永远都可以显示出正确的硬盘信息。在黑群晖中,使用 Passthrough 直通硬盘允许群晖系统对硬盘直接进行管理,包括但不限于硬盘休眠和硬盘健康度监测,这些功能使用 RDM 是不可能做到了,RDM 也仅仅做到了让虚拟机读到一个完整的硬盘。- PCI 直通可以首先参考我的文章:ESXi 6.7 下开启硬件直通的方法和常见问题,硬盘直通的核心方法就是将 SATA 控制器直通给虚拟机
- 首先你需要一个物理 SATA 控制器,以 Marvell 88SE9215 为核心的 SATA 卡是被广泛兼容的且价格不高,一般几十块钱就可以买到
- 在你的引导文件中将 grub.cfg 中写入以下句段(如果你按照我上面所说的方式创建了引导盘,则可以无视这次)
- set extra_args_3617='DiskIdxMap=1000 SataPortMap=28'
- 将物理硬盘接到 SATA 控制器中,在 ESXi 后台将 SATA 控制器直通给黑群晖虚拟机
- 将黑群晖开机,进入后台主界面,你会看到有一个 “无法访问分区系统” 的错误提示,说明你的硬盘已经加载成功
- 进入储存空间管理员,看到具体错误,但实际上你也能看到了你的硬盘容量之类的信息
- 点击上方的 “修复” 并确认,瞬间这个错误就会消失,且系统显示分区正常
- 此时,你已经能完整地查看硬盘信息,说明硬盘直通成功
引用
PVE 5.4 的安装与设置
黑群晖常见问题
VMware.ESXI.6.7 - 安裝
PVE 直通主板 SATA 给黑群晖的问题
转载请标注来源
把 16G 硬盘 sata 控制器 改成 1:0 会导致硬盘无法格式话,换成 0:1 才正常安装

按照我这个步骤走的话,理论上 0:1 会读不到盘
== 把 16G 硬盘 sata 控制器 改成 1:0 会导致硬盘无法格式话,换成 0:1 才正常安装 ==对,博主能说明一下为什么设置成 1:0 吗,
挺好的。科普帖子。小白看完廓然开朗。。
为什么新添加的 16g 硬盘选择 sats 控制器 1?如果我想 esxi 和群晖安装在 sata 扩展卡的硬盘上,主板的 sata 口用于直通,引导盘位置是否选择 sata1?
在虚拟机中设置 pci 直通,还需要在 esxi 的管理中将硬件设置为切换直通吗?
按照你这个教程,一次成功,非常感谢!!!
一次成功 感谢分享!
全部按照内容走,然后 OSFMount 无法挂载分区修改,并且 OSFMount 都不显示 img 大小。
OSFMount 好像是需要管理员权限的 1. 确定镜像完整性
SATA HDD 直通成功,但是创建存储池有点奇怪,如图:https://i.loli.net/2020/08/31/G3mKFQJviN4rwxy.jpg
有硬盘没有读出来?注意一下 SATA 控制器上硬盘接上的位置,可以参考首页最新的文章自定义修改一下 cfg
已搞定,感谢教程。
以 Marvell 88SE9215 为核心的 SATA 卡
能给个链接吗?
我用的是这个: https://www.amazon.com/gp/product/B07KNXZFRH/
淘宝上我之前搜过,还是很容易找到的
问一个问题啊,如果没有物理 SATA 控制器,如何将之前的群晖数据盘直通给 esxi 里的群晖使用?
创建虚拟硬盘,分配给群晖,迁移数据。如果原本就是 VMWare Workstation 的虚拟机可以直接连接到 ESXi 服务器后导入原有虚拟机数据
想问下黑群 4g 内存够吗?只是当个 storage+aria2+homebridge
够用
谢想问下有没有搞过 esxi 虚拟 ssd?看其他文章说可以一块 ssd 在 esxi 里虚拟成 2 块然后给群晖做 r/w cache
我没有试过,虚拟化后的硬盘无论原本是不是 SSD,都只能被识别为 VMWare Virtual Disk,判断为 HDD,不可以添加到群晖的 SSD Cache 中
你好,我的物理设备是 Gen 10 Plus,直通了主板的 STA 控制器,在群晖里面只能看到两块硬盘会是什么问题呢?
先查连接和通电有没有问题吧,印象中 Gen10 Plus 电源有点小的
通电没问题,在群晖里面用 fdisk 都能看到所有盘。但是在存储管理员里面看到有两个盘被排到了最后的两个位置,还有两个没有被现实出来。
你是几个硬盘?
不好意思忘了说,一共是 4 个硬盘。fdisk 了都看得到,存储管理员里面只看得到两个。

能看到盘那应该是 grub.cfg 中 set extra_args_3617 = 设置有问题,不过四个硬盘的话按本文这种设置应该是没问题的能显示出来的两个盘被放到了群晖显示的最后两个槽位,感觉另外两个被挤出去了。可能是 SATA 参数有问题。一直不太明白的是,算上引导盘,系统盘,直通盘,应该是 3 个 SATA 控制器。但是你教程里面只有 2 个的参数。
当时我做的时候思路应该是把引导盘给隐藏掉,今晚我再实验下看是啥情况。如果设置为三个 SATA 控制器的话可以试下 DiskIdxMap=100400 SataPortMap=148
好的,感谢。我稍后也试试。
按照你这个配置可以了,4 个盘都显示出来了。
16G 和引导盘是隐藏的还是显示的?
引导盘隐藏了,16G 的系统盘还显示着,不过不影响使用
行,有时间我再改改
关于隐藏那个系统盘,还有个办法。实际上安装完成之后,群晖会在每个硬盘上都冗余一份系统,所以只需要直接把那个承载系统的虚拟磁盘去掉就可以了。VM 开机后可以从别的物理硬盘上冗余的那份系统来启动。
请教下,插件是放在哪里的呢?
你说的是 grub.cfg 么?这个是引导盘里面的文件,你需要自己把他挂载出来修改。
用群晖的时候需要安装一些插件,例如 DS photo 这种,直接安装在 hdd 硬盘里吗?
另外想顺带问个问题:群晖已经把 DDSM 从 Docker 移动到了 VMM 里面,后者似乎也是 VM 而无法在 ESXi 的 VM 中再启动,导致无法半洗白(激活解码器)。不知道博主是否有什么的办法?
实在是太赞了,找资料正愁找不到就看到了这么详细的帖子
博主, 问个问题。
我用了一个虚拟 SATA 控制器 + 直通 SAS 控制器(HBA 卡),虚拟控制器只有引导盘,没有数据盘,直通控制器带了 8 盘, 使用下面参数,
DiskIdxMap=0000 SataPortMap=18
但是在群晖了只能识别到引导盘 + 直通的 7 盘
跟控制器是 SAS 而不是 SATA 有没有关系呢?
你是将系统盘放在了 SATA 控制器 1 里?试下 SataPortMap=28
引导盘是 SATA1, 没有其他,SataPortMap=28 和 18 都试过, 结果一样
抱歉打错了,可以试试把引导盘和系统盘都改到 SATA0,然后 SataPortMap=28。这样子应该是不隐藏引导盘和系统盘,但 8 个盘都能显示出来
应该说是放在 SATA0, 引导盘在 0:0,VM 里只有一个 SATA 控制器, 另一个是直通的 PCI-SAS 控制器
我的系统盘就是 SAS 带的 8 个盘, 整个系统盘就是这 8 个盘加 50M 的引导盘, 没有单独的系统盘
好像还是没说清楚, 虚机配置看这个图https://s3.ax1x.com/2021/02/24/yX9fHI.png

我按照你这个配置做了下是没问题的我再看下有没有其他可能的原因, 感谢回复
我找了另一台类似配置能正常识别的机器看了下, set extra_args 是默认的空白, set sata_args = 只有 1 个变量 'SataPortMap=4',就是说其实直通过去的其实可以不管。不过这台是 918 + 的,晚点试试 3617 的这样配是否正常。
试了失败, 能识别的更少了,哈哈看来还是只能 SataPortMap=28 或者 18 了
想请教一下,我现在系统是 esxi,机器加了一个 nvme 盘(PCI 转接卡的),设备应该是选择直通给了黑群,但是怎么也认不出来,除了用 RDM 的话,有没有其他的方法让黑群认出来,谢谢
快要疯了,6 代 i5,华硕 b150m 主板,板载 6sata 口,自己夹了一块 2 口 sata 卡。板载 sata 控制器直通。
不管 ext_args 怎么设置,直通的 6 个 sata 口都只能被识别两块硬盘,有时候 13,有时是 24,有时是 23……
装了 M.2 硬盘?B150M 印象中 M.2 和 SATA 是共享带宽的,装上后应该会有 SATA 盘识别不到
最后找到病根了。1,拔掉那个 2 口 sata 卡;2,插拔硬盘后重启一下