帮群友远程unraid虚拟黑群晖,后来群友要求把nvme固态直通到黑裙里当缓存使用,需要修改libsynonvme.so.1这个文件,网上搜索了一下相关教程,在 https://blog.dateno1.com/?p=3890 找到了解决办法,但是要用二进制编辑器修改libsynonvme.so.1,所以此教程诞生了 😛

本文中使用的引导是 RedPill-TTG 代码构建,git地址:https://github.com/RedPill-TTG/redpill-load,https://github.com/RedPill-TTG/redpill-lkm。感谢 RedPill-TTG 团队所做出的贡献。

首先 使用 ls /dev/nvm* 命令查看是否认到nvme固态硬盘

然后使用 udevadm info /dev/nvme0n1 查询 并得到 nvme固态硬盘在群晖中的硬件地址。地址为:0000:00:1c.0

unraid虚拟 黑DSM群晖918+ 7.0.1 42218 直通nvme硬盘做缓存(非原创) 群晖-Synology 第1张

SSH登录群晖 并 输入命令 sudo -i 进入root 模式

备份libsynonvme.so.1文件

cp -f /usr/lib64/libsynonvme.so.1 /volume1/homes/libsynonvme.so.1 (/volume1/homes/路径根据自己的实际情况修改)

登录群晖网页端,打开 文件管理,找到 homes 目录。把刚才复制过来的libsynonvme.so.1文件下载到本机

本人使用的是 C32Asm 编辑文件。其实二进制编辑软件很多,例如  winhex,uedit,Beyond Compare等等。。。软件可自行百度查找下载

打开 C32Asm ,将libsynonvme.so.1 导入,选择 十六进制模式 并确定。

unraid虚拟 黑DSM群晖918+ 7.0.1 42218 直通nvme硬盘做缓存(非原创) 群晖-Synology 第2张

搜索  918 字符串,点击下一个

unraid虚拟 黑DSM群晖918+ 7.0.1 42218 直通nvme硬盘做缓存(非原创) 群晖-Synology 第3张

0000:00:02.3 0000:00:02.4就是我们 要修改的位置。

unraid虚拟 黑DSM群晖918+ 7.0.1 42218 直通nvme硬盘做缓存(非原创) 群晖-Synology 第4张

直接在右侧修改为 刚才查到的地址:0000:00:1c.0

将 0000:00:02.3 0000:00:02.4修改为 0000:00:1c.0 0000:00:1c.1

然后保存,把修改好的文件上传到群晖 homes目录,在ssh终端执行以下命令拷贝过去。

cp -f /volume1/homes/libsynonvme.so.1 /usr/lib64/libsynonvme.so.1

然后执行  reboot 重启群晖。

本人只是把过程 描述一下,方法是网络搜索到的,修改方法写的更直白一些,仅此而已,给小白使用。

 

参与评论

  • Takeshe用户
    蓝冰大佬我是比小白好一点的中白,能否仔细说明下1.“把nvme固态直通到黑裙”在unraid下如何实现呢?我只知道sata硬盘是在虚拟机中设置/mnt/dev/by-id/******,但貌似对nvme无效。2. “首先 使用 ls /dev/nvm* 命令查看是否认到nvme固态硬盘”,这是在unraid下查看还是SSH连到群晖下查看?
    2月前 (07-20)
    2楼
    回复
  • 蓝冰血魄用户
    unraid下nvme硬盘。要直通到群辉虚拟机里才可以
    2月前 (07-20)
    回复
  • Takeshe用户
    我用unraid 下 VFIO-PCI CFG插件屏蔽了两个NVME固态,然后虚拟群晖配置里面勾选了这两个固态;逻辑上已经直通给虚拟群晖了。然后用SSH登录root账号,按您的ls /dev/nvm*命令查看,还是没有识别到这两个固态
    2月前 (07-20)
    回复
  • momo1011用户
    请问大佬现在有解决方案了吗
    2月前 (08-06)
    回复
  • momo1011用户
    同样的问题,请问您解决了吗
    2月前 (08-06)
    回复
  • 蓝冰血魄用户
    换引导。估计没驱动
    2月前 (07-20)
    回复
  • huapi_subtle用户
    正好解决需求
    1年前 (2021-10-04)
    1楼
    回复