黑白群晖改USB口为SATA接口或者ESATA口挂载NTFS格式盘

一、为啥黑白群晖修改ESATA/SATA接口

其实大多数情况需要改的是USB–>ESATA接口,这样一来群晖就能挂载外部的移动硬盘当内部存储使用了,白群晖支持扩展也是通过ESATA接口的。接下来我们将讲解如何将USB接口修改为ESATA接口或者SATA接口。

黑群晖

 

二、实战群晖修改USB为SATA接口

原理:通过修改串口号范围来实现。

2.1步骤一

网页登录群辉,控制面板里面开启SSH服务。

2.2步骤二

登录SSH 并找到文件

/etc.defaults/synoinfo.conf ​​​​​​​

文件中查找以下几个配置

esataportcfg=\"0xff000\"
usbportcfg=\"0x300000\"
internalportcfg=\"0xfff\"

这三个值分别代表了ESATAUSBSATA设备所在的端口号范围,也就是说在指定端口号范围里的设备会被识别成指定类型(ESATAUSBSATA),我们的解决方案其实就是修改其中usbportcfginternalportcfg这两个的值,从而达到将USB设备识别为SATA设备。

首先得先理解这3个端口号的范围也就是0xff0000x3000000xfff3个值,因为是十六进制,所以大家可能并不理解,下面我贴出用WINDOWS自带计算器转换过的3个值的贴图,大家可以手工操作下,打开计算器(在查看菜单里改为程序员模式),然后将上面3个值输入到计算器中

计算器程序员模式打开方法
计算器程序员模式打开方法

 

FF000/300000/300FFF
FF000/300000/300FFF

大家观察我画红框的位置,先拿esataportcfg的端口范围举例,0xFF000,从图中可以看到从右往左数第13-20位为1,其他都位0,其实就是设备所在位置是第13-20号时识别为ESATA设备,再看usbportcfg的端口范围,0x300000,同理其实就是设备所在位置是第21,22号时识别为USB设备,internalportcfg0xFFF就是设备所在位置是第1-12号时识别为SATA设备.

下面就简单了,只要把USB设备的端口范围改成SATA设备的,那么系统就会把USB设备识别为SATA设备以达到我们本次操作的目的。下面我们说下修改方法,第一步最简单将usbportcfg改为0,因为我们已经不需要让系统识别USB设备了(能理解的朋友们其实可以每一位修改来测试,我这里USB有两个端口,如果只需要改一个的话,就修改其中一位就可以了),第二步将修改SATA设备的端口范围也就是internalportcfg的值,改成多少呢,其实很简单在第3张图也就是0xFFF那张图上将原先USB设备所占用的21,22两个位置用鼠标左键单击一下就会得到下图的值也就是0x300FFF

因为ESATA的我们没有涉及所以就没有任何修改,所以最终的修改值如下

esataportcfg=\"0xff000\" 
usbportcfg=\"0\" 
internalportcfg=\"0x300fff\"

16盘位,4个USB设置方法

maxdisks=\"16\" 
esataportcfg=\"0x0\" 
usbportcfg=\"0xf0000\" 
internalportcfg=\"0xffff\"

26盘位,0个USB设置方法

maxdisks=\"26\"
esataportcfg=\"0x0\" 
usbportcfg=\"0x0\" 
internalportcfg=\"0x3ffffff\"

修改后保存直接覆盖回原路径然后重启群晖,就可以在存储空间里找到你的USB设备了

三、从6.2.4后开启ESATA失效了,经过我不断测试现已解决。

问题分析:主要是每次启动,新版redpill引导系统会去初始化synoinfo.conf文件,具体文件是:“\\usr\\sbin\\init.post”,这个文件在IMG镜像文件“grub.cfg”同一分区的根目录下的“rd.gz”文件中。(“rd.gz”可以用7z工具解压的)
“\\usr\\sbin\\init.post”内容包含:
_set_conf_kv ‘esataportcfg’ ‘0x0’ ‘/tmpRoot/etc/synoinfo.conf’
_set_conf_kv ‘internalportcfg’ ‘0xffff’ ‘/tmpRoot/etc/synoinfo.conf’
_set_conf_kv ‘maxdisks’ ’16’ ‘/tmpRoot/etc/synoinfo.conf’
_set_conf_kv ‘esataportcfg’ ‘0x0’ ‘/tmpRoot/etc.defaults/synoinfo.conf’
_set_conf_kv ‘internalportcfg’ ‘0xffff’ ‘/tmpRoot/etc.defaults/synoinfo.conf’
_set_conf_kv ‘maxdisks’ ’16’ ‘/tmpRoot/etc.defaults/synoinfo.conf’

解决思路:
把以上命令注释掉就可以了,由于“rd.gz”文件没有压缩,所以可以直接通过修改“rd.gz”文件实现,我是先导出“rd.gz”文件,然后用UE或winhex打开“rd.gz”文件,修改成功后再导入的,918+ 7.0.1已测试ESATA成功了。估计也可以直接修改IMG文件(不知道有没有校验)这样会更简单。

具体操作:
用UE或winhex打开“rd.gz”文件
1、搜索 “_set_conf_kv ‘esataportcfg\'”  替换成  “#set_conf_kv ‘esataportcfg‘” 应该替换两次
2、搜索 “_set_conf_kv ‘internalportcfg\'”  替换成  “#set_conf_kv ‘internalportcfg’” 应该替换两次
3、搜索 “_set_conf_kv ‘maxdisks\'”  替换成  “#set_conf_kv ‘maxdisks’” 应该替换两次
保存导入即可

四、注意事项

操作有风险需谨慎,重要数据先备份。
每块主板的端口都不一样,不能盲目修改成别人的值,否则重启后你的 NAS 就连接不上了。

© 版权声明
THE END
喜欢就支持一下吧
点赞35 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容