一、为啥黑白群晖修改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"
这三个值分别代表了ESATA,USB,SATA设备所在的端口号范围,也就是说在指定端口号范围里的设备会被识别成指定类型(ESATA,USB,SATA),我们的解决方案其实就是修改其中usbportcfg,internalportcfg这两个的值,从而达到将USB设备识别为SATA设备。
首先得先理解这3个端口号的范围也就是0xff000,0x300000,0xfff这3个值,因为是十六进制,所以大家可能并不理解,下面我贴出用WINDOWS自带计算器转换过的3个值的贴图,大家可以手工操作下,打开计算器(在查看菜单里改为程序员模式),然后将上面3个值输入到计算器中
大家观察我画红框的位置,先拿esataportcfg的端口范围举例,0xFF000,从图中可以看到从右往左数第13-20位为1,其他都位0,其实就是设备所在位置是第13-20号时识别为ESATA设备,再看usbportcfg的端口范围,0x300000,同理其实就是设备所在位置是第21,22号时识别为USB设备,internalportcfg的0xFFF就是设备所在位置是第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 就连接不上了。