最近装了一台 x86 NAS,采用爱普生 ST190E 主机,搭配 4 核 4 线程的 i3-8300T 处理器,16GB DDR4 内存,以及 1TB Nvme M.2 接口固态硬盘和两个 2TB 的 SATA 接口 2.5 寸机械硬盘。这篇文章主要讲我如何在这台主机上安装飞牛 OS,重点是比较物理机安装和虚拟机安装的优劣。
虚拟机安装(一)
我一开始选的是 PVE 9.0 通过虚拟机安装飞牛 OS。
安装教程参考飞牛官网方式,如何在虚拟机安装飞牛 fnOS?。
但是这个教程中,并未提到 GPU 直通的问题。
由于我的 i3-8300T 内置 UHD 630 核显,而我使用飞牛最主要的用途就是相册功能,因此我重点需要解决 UHD 630 核显直通飞牛 OS 问题。
但这个事情并没有那么顺利。
我先后尝试了两种方法:
使用 PVEtools
项目地址:github.com/ivanhak/pvetools
PVEtools 有很多常用 pve 工具,可以快速配置 apt 源,并设置 PCI 硬件直通。其中就有核显直通功能。
但是我在多次尝试后,发现并不如意,飞牛中一直未能显示出来 GPU。
手动添加核显直通
在 AI 帮助下,我直接在 PVE 终端中配置核显直通。
主要就是通过安装 intel 核显驱动,然后配置 /etc/default/grub
文件进行。
通过这种方式,我成功将 UHD 630 核显直通给了飞牛 OS。
但却引发另一个问题 —— PVE 中无法管理飞牛了。在 PVE 面板中,无法连接飞牛虚拟机,一直提示 VM 100 qmp command 'set_password' failed - Could not set password
.
由于一直没能解决这个问题,后来我放弃使用虚拟机,重新在物理机上安装飞牛 OS。
物理机安装飞牛OS
物理机安装飞牛相较虚拟机安装更为容易,只需要参照官方教程一路点“下一步”就完成了。
在打开 WEB 管理界面后,发现 CPU 核显果然自动加载成功。
不过,物理机安装飞牛却不是我的初衷,我原本还想用这台主机安装些其他工具的。
想着既然已经物理机安装了,那就测试下飞牛物理机能否扛起 All in One 的重任吧,结果被现实狠狠打了一巴掌。
应用商店问题
首先出问题的就是 1Panel,我在飞牛应用商店安装 1Panel 后,满怀欣喜打开 1Panel,结果发现 Openresty 死活安装不了。
一开始我还以为是 Docker 镜像问题,反复到处找国内镜像安装,都未能成功。
后来我才发现,原来是安装路径冲突。飞牛的 1Panel 在安装 openresty 时默认设置了一个 www
路径,需要将其修改为实际路径。
解决这个问题后,我成功安装了 openresty,但发现无法添加网站。
我在文件目录中观察发现,在 openresty 的 conf 设置中,原本这些 /usr/local/openresty/nginx/conf/conf.d/*.conf
/usr/local/openresty/nginx/conf/default/*.conf
路径都不存在。进而推测是否这个 1Panel 被飞牛魔改过,一查,果然如此。
由于飞牛默认占用了 80 443 端口,要想实现在 1panel 中添加网站,势必要使用其他端口,而设置端口就要修改 nginx 设置。但飞牛本身也依赖 nginx 提供服务,一旦修改 nginx,可能导致飞牛这边存在不稳定因素。
在查找这个问题过程中,我看到飞牛论坛上官方发的几个帖子,其中就有用户使用 apt upgrade
命令后,会导致飞牛无法更新的情况。这个问题,让我望而却步。
最让我感到无语的是,当我在飞牛 Docker 中暂停 1Panel 想添加几个端口时,发现添加完之后,整个 1Panel 程序被重置了。
由于我在宝塔和 1Panel 之外,没有其他 Docker 使用经历,对这个最基本的“容器持久化”问题毫无经验,懵逼了好一会。
仔细看飞牛应用商店,也没有任何关于这方面的提示。只能说,还好不是生产环境,不然 1Panel 这一崩,整个心态都得崩。
此后我又试了宝塔面板。
宝塔这边情况稍好,nginx 可以正常安装。但与 1Panel 存在同样的问题,就是添加网站后,我需要在飞牛的 Docker 中增加端口,但一添加端口,整个容器就被重置。
过程中,我也尝试过直接在飞牛 Docker 中安装 1panel 和 openresty,但多番尝试,并没有达到预期效果。
在物理机测试过程中,我在飞牛论坛也看了不少帖子,发现大家在使用过程中,形形色色问题真是不少。
当然,飞牛 OS 本身更新也很快,大量功能都在逐步添加中,很多 bug 都能及时修复。只是,这种更新速度无疑会对整个机器运行造成影响,假设我要在飞牛 OS 的虚拟机功能中再安装个软路由,我都不知道到时候更新飞牛 OS 时,网络还能不能通。
无奈之下,我还是继续回到虚拟机安装模式。想着,要不就不使用飞牛相册了,改用 immich,毕竟后者可以远程调用 GPU 参与运算,核显有没有也不要紧。群晖那边没有 GPU 也照样用呢。
虚拟机安装飞牛(二)
重新安装 PVE ,这次我没选 9.0 版本,而是选了 8.4。毕竟,PVE 9.0 真是太新了,发布到现在才 10 天,网上很少有教程介绍,遇到不会用的功能,很头疼。AI 数据库也不可能更新这么快。
在 PVE 8.4 安装飞牛过程中,这次我倒是没有考虑 GPU 直通这些功能了,而是按照默认模式,一路往下点。点完,在 PCI 设备中添加第二个网卡时,看到有 UHD 630 ,就顺手点了下。
没想到,就这么一点,飞牛面板那边就真显示 GPU 了。
回想起之前瞎折腾那么久都没搞定 GPU 直通,没想到居然这么简单。
感情网上各种 PVE 核显直通教程写的天花乱坠,结果 PVE 默认就支持。这可真是意外之喜。
在安装完飞牛后,这次我没有再去飞牛系统中折腾其他 Docker 应用了,直接装个相册就开始扫描照片,启动 AI 识图。
其他功能,我完全可以在另一个 ububtu 虚拟机中实现,彻底避免在飞牛中搞出问题,到时候落得个重装结局就无语了。哪怕是飞牛官方说重装系统也不影响数据盘数据,但其他功能配置也是不小的功夫。总的来说,系统稳定性还是第一位的。
目前,我的飞牛正处于初始化阶段,需要大量算力,所以我暂时分配了 3 个 CPU 核心给飞牛,另 1 个在 ubuntu 那边。等相册识别结束后,我将调整飞牛为 2 个核心,剩下 1 个给 routeros 或者 openwrt,暂时还没想好装哪个,我家目前网络格局,注定只能将软路由当成主路由用,还得继续评估下到底怎么干比较好。
下一篇,我将简单介绍一下如何为 PVE 和飞牛 OS 做好公网防护。我此前只在测试时试用了一下飞牛自带的 FN connect,但总感觉不怎么放心,第三次安装时就没登录飞牛账号、没启用飞牛远程访问了。毕竟,飞牛还只是一家 20 多人的小公司,虽说隐私记录良好,但这种 connect 也不好说有没有后门,重要数据还是尽量做好防护吧。