前言:群晖升级7.01之后很多之前不支持nvme的机器开始支持nvme了,具体您的黑群晖支持不支持可以查看点这里。不过现在没有无脑补丁只能手动修改比以前的那种无脑替换麻烦多了,不建议小白,需要一点动手能力,普通人难度等级一般(稍微懂点的电脑知识的难度等于零),只要按着教程步骤来一定都能替换成功。
先解释一下原理,修改 /lib64/libsynonvme.so.1 文件中 关于群晖机型 NVME默认的PCIE 序号ID
首先下载所需要工具:https://tank.lanzouo.com/b0aghtwlg
DS918开启方法
3617/3622请拉到最下边,方法略有不同
先创建一个临时共享文件夹
你可以按着图片操作即可
名称一定要是tmp 如果不愿意用这个名称,一会的命令你要改成自己的名称。存储空间也一定要设置在 存储空间1 要不然同上,后面的对话框直接全部下一步即可
开启群晖的SSH功能,首先打开控制面板
进入 终端机和SNMP 这个图标
勾选 SSH功能,注意用完之后记得回来关掉,如果不打算关建议设置成一个非22的端口,这个端口很容易攻击
打开SSH工具,我用putty你随意 小白你不要问跟着我操作即可
使用SSH工具连接你的群晖
输入你群晖的ip,注意刚刚打开ssh时旁边的22端口要一样 下边选SSH,然后点 打开
输入群晖管理员的账号
输入你的密码,注意输入密码的时候窗口是不会有任何反馈的,打完直接按回车就行
进去之后是这样的
获取ROOT权限先用sudo -i获取root权限,注意会提示输入密码,但是密码不会有任何字符提示
sudo -i
复制一个到前面建立的tmp文件夹 命令 cp /lib64/libsynonvme.so.1 /volume1/tmp/libsynonvme.so.1
cp /lib64/libsynonvme.so.1 /volume1/tmp/libsynonvme.so.1
原地备份一个文件,就是原地复制一个加了bak的后缀防止改错了可以恢复 后面如果改出问题来,只要SSH还能用使用 cp /lib64/libsynonvme.so.1.bak /lib64/libsynonvme.so.1 还原回去然后reboot 重启一下就可以满血复活
cp /lib64/libsynonvme.so.1.bak /lib64/libsynonvme.so.1
查询NVME ID
ls /dev/nvme*
如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0 /dev/nvme1 /dev/nvme2之类的
如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。
3、输入命令,查看nvme硬盘的ID 有多个就分别多查几次:
udevadm info /dev/nvme0
找到这个nvme硬盘的ID,比如我的就是0000:00:17.0,注意是最中间的这节,这个串字符一定要记下来;
再回到File Station
找到tmp文件夹,进去之后把里面的文件下载下来
打开WinHex
打开刚刚下载的libsynonvme.so.1
参考一下红色框左边Offset和右边的滑块拉到差不多的位置,注意Offset是可以显示切换的也如果你点过那么大致会在00028864。注意找一下蓝色框中的内容,接下来修改一下就行了。
参考我这个把原来的0000:00:13.1改成前面记下来参数(我的是0000:00:01.1),顺便把后边的哪个也给改一下
改完点一下保存
把刚刚保存好的文件拖回去tmp文件夹里面去
覆盖文件
使用SSH工具文件复制回去 cp /volume1/tmp/libsynonvme.so.1 /lib64/libsynonvme.so.1
回车
输入命令 chmod 644 /lib64/libsynonvme.so.1
回车
此为给修改后的文件赋予权限,切记,一定要执行此步骤。
使用reboot回车重启群晖 等个几分钟,很大可能性重启完成之后搜索不到机器。这个是正常的。多等等十分钟。直接强制断电重启即可
再重新到存储管理器里面就可以看到NVME缓存盘了。
DS3615xs/DS3617xs/DS3622xs+ 的DSM7.X版本,那么就不能用上面的方法,需要按照以下流程操作:(转至https://wp.gxnas.com/10930.html)
1、群晖在控制面板-终端机与SMNP,启用SSH功能;
2、在电脑的SSH工具,以root登录群晖,输入命令查看nvme的名字:
先用sudo -i获取root权限,注意会提示输入密码,但是密码不会有任何字符提示
sudo -i
ls /dev/nvme*
如果只有一个nvme硬盘并且硬盘为空,一般会显示/dev/nvme0 /dev/nvme1 /dev/nvme2之类的
如果nvme有分区了,还会显示如/dev/nvme0n1、/dev/nvme0n1p1、/dev/nvme0n1p2等,这些分区名字不用理会。
3、输入命令,查看nvme硬盘的ID 有多个就分别多查几次:
udevadm info /dev/nvme0
找到这个nvme硬盘的ID,比如我的就是0000:00:17.0,注意是最中间的这节,这个串字符一定要记下来;
4、输入命令,修改文件:
vi /etc.defaults/extensionPorts
使文件里面的ID与实际nvme硬盘的相匹配,比如我这个要改成(以你实际的ID为准):
[PCI]
pci1="0000:00:17.0"
如果有两个nvme硬盘,则改成(以你实际的ID为准):
[PCI]
pci1="0000:00:17.0"
pci2="0000:00:18.0"
5、保存退出,重启群晖生效。
感谢大佬!