侧边栏壁纸
博主头像
惬意小蜗牛博主等级

海内存知己,天涯若比邻!

  • 累计撰写 54 篇文章
  • 累计创建 143 个标签
  • 累计收到 57 条评论

目 录CONTENT

文章目录

黑群晖 DS918+ 7.0.1 开启 NVME 2 缓存

惬意小蜗牛
2022-01-12 / 4 评论 / 20 点赞 / 14,954 阅读 / 1,169 字 / 正在检测是否收录...

黑群晖 DS918+ 7.0.1 开启 NVME 2 缓存

前言

黑群晖 DS918+ 7.0.1 版本中 NVME 2 硬盘 在存储管理器中无法识别,是因为群晖提前设定了各个机型的NVME 所在的 PCI 位置,这些信息保存在 /lib64/libsynonvme.so.1 这个文件中,而我们需要将这个文件中,关于 DS918+ 机型的 NVME 所在的 PCI 位置改为自己机器实际所在的位置,这样在存储管理器中就可以识别到了

准备工作

  • windows 10 系统电脑
  • 安装 WinHex 软件,下载地址见文末
  • 群晖开启 SSH 功能 (此文不做阐述)
  • 电脑安装 SSH 客户端工具 (此文不做阐述)

开始

1. ssh 连接到 群晖,切换到 root 用户,查询自己群晖中的 nvme 2 的信息

# 查看所以 nvme 列表
root@DSM:/lib64# nvme list
Node             SN                   Model                                    Namespace Usage                      
---------------- -------------------- ---------------------------------------- --------- -------------------------- 
/dev/nvme0n1     KBDU03610902181      aigo NVMe SSD P2000 128GB                1         128.04  GB / 128.04  GB    
/dev/nvme1n1     KBDU03610903778      aigo NVMe SSD P2000 128GB                1         128.04  GB / 128.04  GB    

# 根据以上查出的列表获取每个 nvme 2 的所在位置

# 查询第一个 nvme 位置
root@DSM:/lib64# udevadm info /dev/nvme0n1

P: /devices/pci0000:00/0000:00:1b.4/0000:02:00.0/nvme/nvme0/nvme0n1
N: nvme0n1
E: DEVNAME=/dev/nvme0n1
E: DEVPATH=/devices/pci0000:00/0000:00:1b.4/0000:02:00.0/nvme/nvme0/nvme0n1
E: DEVTYPE=disk
E: MAJOR=259
E: MINOR=0
E: PHYSDEVBUS=pci
E: PHYSDEVDRIVER=nvme
E: PHYSDEVPATH=/devices/pci0000:00/0000:00:1b.4/0000:02:00.0
E: SUBSYSTEM=block
E: SYNO_ATTR_SERIAL=KBDU03610902181
E: SYNO_DEV_DISKPORTTYPE=UNKNOWN
E: SYNO_INFO_PLATFORM_NAME=apollolake
E: SYNO_KERNEL_VERSION=4.4
E: SYNO_SUPPORT_XA=no
E: TAGS=:systemd:
E: USEC_INITIALIZED=799421

# 位置为: 0000:00:1b.4

# 查询第二个 nvme 位置
root@DSM:/lib64# udevadm info /dev/nvme1n1

P: /devices/pci0000:00/0000:00:1d.0/0000:08:00.0/nvme/nvme1/nvme1n1
N: nvme1n1
E: DEVNAME=/dev/nvme1n1
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/0000:08:00.0/nvme/nvme1/nvme1n1
E: DEVTYPE=disk
E: MAJOR=259
E: MINOR=1
E: PHYSDEVBUS=pci
E: PHYSDEVDRIVER=nvme
E: PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.0/0000:08:00.0
E: SUBSYSTEM=block
E: SYNO_ATTR_SERIAL=KBDU03610903778
E: SYNO_DEV_DISKPORTTYPE=UNKNOWN
E: SYNO_INFO_PLATFORM_NAME=apollolake
E: SYNO_KERNEL_VERSION=4.4
E: SYNO_SUPPORT_XA=no
E: TAGS=:systemd:
E: USEC_INITIALIZED=805495

# 位置为: 0000:00:1d.0

记录以上查出来的两个 nvme 的位置, 后续需要用到:
nvme0n1 位置为: 0000:00:1b.4
nvme1n1 位置为: 0000:00:1d.0

2. 备份 libsynonvme.so.1

cp /lib64/libsynonvme.so.1 /lib64/libsynonvme.so.1.bak

3. 将libsynonvme.so.1复制到群晖中一个可以供其他电脑下载的共享文件夹中,比如我将其复制到存储空间2 中的 download 这个共享文件夹

cp /lib64/libsynonvme.so.1 /volume2/download/libsynonvme.so.1

4. 通过网页访问群晖,将在 download 共享文件夹中的 libsynonvme.so.1 下载到本地电脑

5. 使用 WinHex 打开 libsynonvme.so.1

5.1 打开文件

file

5.2 搜索 “DS918+” 关键字

file

此处默认为 0000:00:13.1 0000:00:13.2

5.3 修改默认值为我们前面找到的我们自己 nvme 的地址,如果只有一个的话只需要修改第一个的值即可

我们记录的两个 nvme 的位置:
nvme0n1 位置为: 0000:00:1b.4
nvme1n1 位置为: 0000:00:1d.0

操作:

0000:00:13.1 中的 3 替换为b, 1替换为4
0000:00:13.2 中的 3 替换为d, 2替换为0

修改技巧:

比如修改 0000:00:13.1 中的 3 替换为b, 1替换为4

(1) 将之前我们记录的 nvme 的位置,记录在记事本或其他文本编辑器中,如图

file

(2) 由于我们要修改 0000:00:13.1 中的 3 替换为b,先复制“b” 这个字母到剪贴板,鼠标左键点击选择 “3” ,选中后变为蓝色,如下

file

(3) 在选中的蓝色 “3” 上点击鼠标右键

file


file


file


file


点击确定后如下图则修改成功

file


其他修改内容重复 (2)(3) 步骤即可
最终修改后的内容如下

file

5.4 Ctrl + S 保存修改内容

file

6. 将修改后的 libsynonvme.so.1 文件,放回 download 共享文件夹中覆盖原来的 libsynonvme.so.1。通过网页上传到 download 文件夹即可

7. ssh 连接到 群晖,切换到 root 用户,输入如下命令删除原文件 libsynonvme.so.1

rm /lib64/libsynonvme.so.1

8. 将修改后的 libsynonvme.so.1 拷贝到 /lib64/ 目录下

cp /volume2/download/libsynonvme.so.1 /lib64/libsynonvme.so.1

9. 给修改后的文件赋予权限,切记,一定要执行此步骤

chmod 644 /lib64/libsynonvme.so.1

10. 重启群晖,再打开存储管理器,就发现可以正常识别 NVME 啦

file

20

评论区