将群晖usb存储设备挂载为本地硬盘

将usb存储设备正常接入群晖,优势是可以识别NTFS格式进行读写.但如果你想作为docker或者vmm等虚拟硬盘的储存对象就无法胜任了.这时候如果将其变成本地设备那么使用性将大大增加.

在网上找了一些教程基本都是千篇一律.方法是修改/etc.defaults/synoinfo.conf 文件.修改其中的usbportcfg和internalportcfg参数.(如果设备没有esata接口则可以忽略esataportcfg):
esataportcfg=”0x0″
usbportcfg=”0x30000″
internalportcfg=”0xffff”

第一步先备份配置文件再折腾:

cp  /etc.defaults/synoinfo.conf  /etc.defaults/synoinfo.conf .bak

修改方法是通过转换usbportcfg的16进制为二进制.之后从右向左看有1的为usb设备的可用位置.internalportcfg参数则为sata设备的可用设备位置,同样也是1为可用0为不可用.

接着取usb设备的最大可用位置转换成16进制. .internalportcfg参数则转换成设备需要出现的位置.

看起来可能会很迷糊.这没沙太大问题.因为这些教程.通过实践是完全错的.如果你按照他的来群晖肯定无法启动.这时候拔掉所有usb设备后(黑群晖的引导盘不用拔)才能正常运行.

这里建议大家优先备份/etc.defaults/synoinfo.conf 这个文件.以防万一.

最后找到了可以用的方法:

想让usb设备识别成内置硬盘,就需要usb的配置值和内置硬盘的值相加(二进制位与运算) 把计算的结果值替换到internalportcfg参数里,usb的和esata的值都改成0x0.

esataportcfg=”0x0″
usbportcfg=”0x0″
internalportcfg=”0x3ffff”

如果需要把 esata usb 都识别成内置硬盘
以 我用的3617版本为例.
esataportcfg=”0xff000″
usbportcfg=”0x300000″
internalportcfg=”0xfff”
可以用python来转换,进入python后输入: print(hex( 0xff000+0x300000+0xfff)) 结果为0x3fffff 就把配置改成
esataportcfg=”0x0″
usbportcfg=”0x0″
internalportcfg=”0x3fffff”
***ps:经过几番折腾发现.如果esataportcfg默认不是0x0.那么就必须usb和sata还有esata的三个值全部相加.缺一个都不好使.修改完毕后重启即可.有时间再补个图文版的.太懒了就这样吧…..

文章相关参考于:https://weibo.com/ttarticle/p/show?id=2309404771236311073183

 

知识真的可以改变命运!----YloboIT技术日志
吖萝卜 » 将群晖usb存储设备挂载为本地硬盘