起始

前几天,遇到了一个新的问题,手机坏掉了,嗯,这边也不知道是怎么回事。

总之,就是更新游戏的时候,scp下载安装包一直没办法正常下载到手机存储卡里,到后来,存储卡的这个文件甚至没办法删除,并且无法卸载存储卡。

然后重启后,就悲剧了……没办法正常重启,折腾了好几天,最终,给手机店那边修没有修好,只能换一个新手机……

丢失了超多的数据,而且,感觉基本上也没恢复可能了。

总之,就趁着这个机会,把以前就很想配的中心的存储系统之类的配一下,类似于nas那样的东西,虽然这边对nas具体是什么也不太清楚就是了。

希望可以通过这样,避免未来的严重数据丢失吧。然后,就这样,买了一个机器,作为nas。(大概)

安装

安装的话,大概倒没太多值得说的,这边有一个装了ventoy的U盘,从omv官网下载iso镜像,然后引导计算机启动,按照常规debian安装过程大概就行了。不过OMV安装引导界面不支持复杂的分区操作,也就是默认安装过程只能占用所有安装盘。

配置openmediavault

开机后,OMV就会自动启动web操作面板于80端口,可以通过 http://[设备物理IP地址] 进入OMV的wen管理面板,默认登陆用户名和密码为admin/openmediavauit,登陆后请尽快更改。

配置SSH

在OMV的管理面板,点进 [服务]/[ssh],勾选已启动,保存。

配置固定地址

既然是中心存储,那么,为了便于方便使用,最好应该有一个固定的网络上的地址能够访问到这一设备。要是每次都开路由器管理页面去查NAS的IP,未免也太麻烦了点。

不过,虽说如此,这个设置,记得当时折腾了好半天呢……?由于这边网络拓扑稍微有点奇怪,非常规,在路由器端配置MAC绑定IP地址老是会遇到各种各样的问题,研究了好久,然后发现可以在客户端直接解决这个问题……只要配置设备的静态连接就好。

打开OMV的设置面板,进入网络/接口,然后选择NAS用来联网的主要网络接口设备

如上图,选择好后,再点击编辑按键(笔的样式,最上面第二个),进入编辑页面。

将连接方式改成[静态],地址填写你想要在局域网内分配的IP(IP的前三位,最好和局域网内其他设备相同,第四个则不要和其他设备和路由器分配IP的dhcp池冲突)

子网掩码,这边是C类网所以是 255.255.255.0,网关则是 192.168.10.1 。这两个可以直接查看同局域网内其他设备的内容抄上去。然后保存。

现在,插拔网线,或者重启下路由器或者该设备,应该就可以在局域网内使用静态配置的IP访问NAS了。不过如果有其他设备使用了这个设置IP的话,可能会因为IP冲突导致设置失效。

podman配置容器镜像站与在命令行安装OMV插件。

OMV支持插件安装,只要在OMV管理面板切到系统/插件,然后就可以方便的下载插件。

不过有一些插件的安装方式,稍微有点奇怪,并不是本体安装上去就行,而是在安装过程中还要同时拉取一个容器(嗯,插件就是一个容器自动拉取脚本……)

比如说wetty,还有filebrowser……在安装这些涉及额外服务的插件时,会调用podman pull从预定位置拉取容器……比如说docker.io,或者k8s.gcr.io,这些容器存放的站点位于国外,国内访问速度很慢,所以需要配置从镜像下载或者代理。不解决这些问题,插件就没办法正常安装。

podman配置镜像

omv原版插件使用的是podman来拉取和启动插件,在一切开始前建议先在ssh终端把podman这个软件包先装上(毕竟podman并不在预装列表里,装了需要的插件后才会作为依赖安装上来,还没装软件包就开始改配置可能会出问题)

podman的配置位于 /etc/containers/registries.conf 文件中,要改镜像站也是在这里。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
unqualified-search-registries = ["docker.io"]

[[registry]]
prefix = "docker.io"
location = "docker.io"

[[registry.mirror]]
location = "registry.docker-cn.com"


[[registry.mirror]]
location = "docker.io"

参考上面的例子,podman会在访问docker.io时,先转到registry.docker-cn.com这一镜像站尝试拉取文件,如果失败则转到第二个镜像站(这里是源站)docker.io拉取容器

不过,如果从其中一个容器拉取到一部分容器后,有一部分容器没拉取到似乎会直接算拉取失败,而不会转到下一个镜像。

在命令行安装插件并使用代理

不过,虽然说折腾了镜像站,不过依旧没办法正常拉取就是了,毕竟容器一般挺大的,一般镜像站没办法全保存,就是只挑一部分副本拉取,这种情况下也拉取不下来。只能去源站下载,重新更改镜像站的顺序。

这种情况,大概就只能使用代理了,命令行下有一个proxychains命令,能够很方便的临时在代理环境调用命令。

使用 apt install proxychains 安装该命令,然后编辑 /etc/proxychains.conf

1
2
3
[协议] [域] [端口]
http 127.0.0.1 8888
socks4 127.0.0.1 9050

然后配置完成后,可以执行 proxychains curl google.com 测试一下配置是否可用。

不过,docker.io是有访问限额的,其中,在一定时间内,匿名用户(按IP限制)最多是100个,注册用户是200个,如果是公共代理的话,可能已经超限额了,所以需要登录docker.io以应用用户限额,才能正常拉取下来。

在podman,登录的话,可以执行 podman login 然后输入账号密码,登录到docker.io即可。如果没有账户,可以访问https://hub.docker.com进行注册。

然后,OMV的插件其实是以软件包的形式被安装的,因此可以使用apt命令来在终端上安装OMV插件,具体软件包名可以直接在OMV的插件一览上看到。

一个能够在浏览器提供终端环境的插件,被选中的部分就是软件包名openmediavault-wetty

如上图,这个插件的包名就叫做 openmediavault-wetty ,可以直接用apt卸载和重新安装它。

proxychains sudo apt install openmediavault-wetty

一切顺利的话,现在应该就能一切顺畅的拉取对应的容器并完成正常的插件安装了

涉及容器插件的一些特殊的小技巧……?

嗯,除了上面的以外,还有一些东西需要补充。或者说,有不全面的无法解决的东西。

openmediavault-filebrowser这个插件,安装时似乎一切正常(似乎没报错),但是无法正常启动.

这时可以尝试执行 ps -Af|grep podman 寻找涉及刚刚安装的插件的指令,然后kill掉,在命令行手动把ps命令输出的命令在命令行执行一遍看报错信息,也可以考虑在最后加上 --log-level=debug 获取更多的输出信息以协助调试。

然后这边的话,发现这个插件需要一个k8s.gcr.io的东西,但是这边访问不了,在网上查了一下,在https://zhuanlan.zhihu.com/p/357190661这里的评论区里找到了lank8s.cn的镜像站,然后在配置文件里加上这个镜像站,重新执行安装操作,姑且弄正常了。

不过这边没有找到k8s.gcr.io的登陆/注册方法,没办法从源站获取资源就是了,大概超限额了,返回提示无权访问的json……能找到一个能用的镜像站,应该也挺幸运的吧。

总之,插件的话,大概就是这样子。

配置OMV扩展插件omv-extras

下载这个omv-extras安装脚本,然后使用bash执行这个脚本。

或者也可以下载完成后直接管道给bash

1
2
3
4
5
6
wget -O https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install|bash
#或者
curl https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install|bash
#或者
wget https://github.com/OpenMediaVault-Plugin-Developers/packages/raw/master/install
bash install

其中,第一条命令是OMV-extras官网的推荐命令。然后,在执行过程中需要访问外网,为了避免下载,也最好使用代理。

执行这条命令会增加一个apt软件包仓库,并安装这个仓库的公钥,用于验证来自该软件包的签名是否有效。

完成后就可以在OMV管理面板看到更多兼容的插件了。

配置存储器与网络连接

其实在配置ssh之后,大体上就可以直接用sftp来访问这个nas的设备文件夹了,不过,直接从根目录开始明显很难对文件进行管理吧,所以需要配置其他共享文件服务。

不过这边暂时没额外的硬盘,干脆就插了一个U盘进去作为存储器。

将存储设备格式化并挂载文件系统

怎么说呢,忘记了,同时这个博客是配置完成后才开始写的,由于OMV的安全限制,为了避免意外的错误操作,OMV不允许在已经配置挂载完成后进行这种文件系统操作。这边只是按照记忆进行文字描述,可能有错误,仅供参考。

首先,进入管理界面,存储器,设备界面,选择新插入的存储设备,然后点击[擦除]符号,将设备原有文件系统擦除。

然后转到[文件系统]界面,点击[+]符号,然后选择添加文件系统。在添加文件系统页面选择刚刚擦除的设备,以及要格式化为的目标文件系统类型。默认为ext4,然后点击保存。

现在,格式化好后就回到了上一页,继续点[+]号,选择挂载文件系统,并选择刚刚格式化好的文件系统,保存就可以了。

如果不想格式化的话也可以直接挂载,如果原来的存储设备已经预格式化了一个OMV能够支持挂载的文件系统。只要进行“现在”后面的操作就好。

启动和设置SMB服务

进入服务/[SMB/CIFS]/设置页,然后勾选[已启动]选项框。保存

然后切到[SMB/CIFS]/共享,添加共享文件夹。共享文件夹需要在存储器/共享文件夹进行添加。

需要注意的是,如果你想要卸载一个文件系统,那么你需要删除指向该文件系统的所有共享文件夹,而删除共享文件夹则需要在所有用到这个共享文件夹的服务中删除该共享文件夹使用。这是OMV的一个防呆涉及,以避免误操作。

结尾

大体上就这样,结束。质量相对于以往估计下滑了好多……嘛,就这样吧。