楔子
最近折腾百里下载机,因为百里没有USB口,一般就是64或者128G的EMMC,读写多了损坏EMMC不说,下载大量文件空间也不够。于是就想着在Docker上安装各种下载软件,并挂载其它设备上的SMB以扩展储存。
之前刷完机时没有适合的设备挂载,也就没有折腾。最近淘了个玩客云,千兆网口,双USB2.0接口的配置,但是CPU是32位的晶辰S805,有迅雷的需要,但Docker迅雷不支持armv7,只能在百里上安装Docker迅雷了。而且玩客云配置不高,装的东西多了性能不够。
我的百里是64G版本的,刷完OpenWrt还剩53GB左右的空间,这些空间用来储存镜像和运行容器,所以要把这些分区分配给Docker。
但是将空间分配给Docker并重启OpenWrt后Docker会无法启动,显示“无法连接到docker守护进程(docker deamon),请检查!!”。
故障
然后我将挂载点设置为/opt/docker后却可以启动。
挂载后重启OpenWrt后Docker依然可以正常启动并挂载空间。
但是将系统更换成padavanonly的固件后不管是挂载点设置为/opt
或者/opt/docker
后docker都无法识别到,依然只显示几百M空间。
在安装各个系统后都能识别到/dev/dev/mmcblk0p10
这个分区,文件系统与空间容量也能正确识别。
但是挂载到/opt
或/opt/docker
后docker就是无法识别或者无法启动。
解决
后来经过多次摸索后发找到了原因和解决办法。
就是更换系统后需要将/dev/dev/mmcblk0p10
这个设备重新格式化才可以。
找到分区,点击ext4
。
点击格式化,分区格式依然为ext4即可。
格式化后/dev/dev/mmcblk0p10
的UUID将会变化,然后将格式化的分区挂载在/opt即可。
原因
造成这个问题的原因应该是我在OpenWrt官方固件或ImmortalWrt官方固件系统上安装下载过镜像并部署过容器,因为在OpenWrt官方固件、ImmortalWrt官方固件以及padavanonly的固件来回测试时,只有OpenWrt官方固件和ImmortalWrt官方固件可以通过挂载为/opt/docker挂载。而在padavanonly固件上挂载时无论是/opt或者/opt/docker,docker都无法识别。说明ImmortalWrt官方和OpenWrt官方固核心都是一样的;只是ImmortalWrt相对于OpenWrt官方源码增加了一些额外软件包和一些其它设备的适配。而padavanonly源码虽然是基于ImmortalWrt的源码但已经和ImmortalWrt官方的有很大区别了。而通过格式化,就相当于固件将自己的“基因”传递给了/dev/dev/mmcblk0p10
分区,这个“基因”就是UUID。只有自己分配的UUID才认可。