黑群晖 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 打开文件
5.2 搜索 “DS918+” 关键字
此处默认为 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 的位置,记录在记事本或其他文本编辑器中,如图
(2) 由于我们要修改 0000:00:13.1 中的 3 替换为b,先复制“b” 这个字母到剪贴板,鼠标左键点击选择 “3” ,选中后变为蓝色,如下
(3) 在选中的蓝色 “3” 上点击鼠标右键
点击确定后如下图则修改成功
其他修改内容重复 (2)(3) 步骤即可
最终修改后的内容如下
5.4 Ctrl + S 保存修改内容
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
评论区