news 2026/10/13 3:14:19

PVE 装飞牛 fnOS 1.2:从虚拟机创建到数据盘配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PVE 装飞牛 fnOS 1.2:从虚拟机创建到数据盘配置

前面我已经在这台 ThinkPad T480 的 PVE 上陆续安装过 Debian、Arch Linux、Windows 11、FreeBSD,甚至 Windows XP。

这次继续折腾一个更适合长期放在 PVE 里的系统:飞牛 fnOS。

和前面那些桌面操作系统不同,fnOS 的定位是一套 NAS 系统。安装完成以后,日常使用基本都在浏览器和手机 App 里完成,因此它其实非常适合运行在 PVE 虚拟机中。

这次我的目标也很简单:

先不做物理硬盘直通,只用 PVE 虚拟磁盘搭一套完整的 fnOS 环境。

最终配置如下:

项目配置
fnOSfnOS 1.2 Standard
PVE VMVM 120
VM 名称pve-fnOS
CPU2 Core,Type = host
内存4GB
系统盘64GB
数据盘200GB
系统盘接口SCSI
数据盘接口SCSI
网卡VirtIO
fnOS IP192.168.100.20

这套配置并不追求“正式 NAS”的最终形态,而是优先满足:

  • 安装简单;

  • 不影响 PVE 现有存储;

  • 可以体验 fnOS 的存储、相册、影音、Docker 等功能;

  • 后续如果觉得确实好用,再考虑物理硬盘直通。


一、先说一下我的 PVE 环境

我的 PVE 装在一台 ThinkPad T480 上:

  • 16GB 内存;

  • 256GB NVMe;

  • 1TB 机械硬盘;

  • PVE 系统和部分 VM 放在 NVMe;

  • 机械盘作为hdd-data,主要存放 ISO、虚拟机磁盘等大容量数据。

网络则稍微特殊一点。

PVE 本身通过 Wi-Fi 接入家里的局域网,而虚拟机使用一个独立的:

192.168.100.0/24

内部网络,通过 PVE NAT 上网。

因此这次安装完成以后,fnOS 最终拿到的地址是:

192.168.100.20

我的主力电脑已经配置了到这个网段的静态路由,所以可以直接通过浏览器访问它。

如果是普通的有线 PVE 环境,直接让 VM 桥接到家庭局域网即可,网络反而会更简单。


二、下载并上传 fnOS ISO

首先到飞牛官网下载 x86 版本的 fnOS 安装 ISO。

下载完成以后进入 PVE Web:

Datacenter ↓ 对应存储 ↓ ISO Images ↓ Upload

我这里的 ISO 统一放在机械硬盘对应的hdd-data中。

上传完成以后,就可以创建虚拟机了。


三、创建 fnOS 虚拟机

点击 PVE 右上角:

Create VM

我这次创建的是:

VM ID:120 Name:pve-fnOS

VM ID 本身没有特别要求,使用 PVE 自动分配的号码即可。


1. OS

选择刚才上传的 fnOS ISO。

Guest OS 选择:

Type:Linux Version:Linux 7.x - 2.6 Kernel

这里的Linux 7.x - 2.6 Kernel只是 PVE 对 Guest OS 类型的一种分类,并不是说 fnOS 使用什么“Linux 7.x”。

保持默认即可。


2. System

System 页面我没有进行特殊修改。

大体保持:

Graphic card:Default Machine:Default BIOS:SeaBIOS SCSI Controller:VirtIO SCSI single

fnOS 是 NAS 系统,安装完成以后主要通过 Web 管理,因此这里完全没有必要像 Windows 11 那样折腾 TPM、UEFI 等配置。

显卡也保持默认即可。


四、创建 64GB 系统盘

系统盘我分配了:

Bus/Device:SCSI Disk size:64 GiB Cache:Default Discard:开启 IO thread:开启

如果虚拟盘底层位于 SSD/NVMe 上,也可以开启:

SSD emulation

这里的64GB 是整块虚拟硬盘容量。

安装 fnOS 时还会继续在这块硬盘里面创建系统分区、Swap 等,因此不要把“64GB 虚拟磁盘”和“64GB 系统分区”混为一谈。

另外,我这里一开始只添加系统盘,不添加 200GB 数据盘。

原因非常简单:

安装系统时只有一块盘,就完全不存在选错安装磁盘的问题。

等 fnOS 安装完成以后,再把数据盘挂进去即可。


五、CPU 和内存

CPU 我设置为:

Sockets:1 Cores:2 Type:host

这里我比较建议把 CPU Type 改成:

host

这样 Guest 可以直接使用宿主机 CPU 的大部分特性,也比较适合这种长期运行的 Linux VM。

内存设置:

4096 MiB

也就是4GB。

我没有开启 Ballooning,直接给 fnOS 固定 4GB 内存。

对于目前以体验 NAS、相册、影音和一些应用为主的环境,这个配置已经足够起步。

以后如果 Docker 服务越来越多,再增加 CPU 和内存也非常方便。


六、配置网络

网络设置:

Bridge:vmbr0 Model:VirtIO Firewall:关闭

VirtIO 是 Linux VM 下非常成熟的半虚拟化网卡方案,没有必要使用模拟的 Intel E1000 等网卡。

因为我的vmbr0是:

192.168.100.0/24

所以 fnOS 安装完成以后也会工作在这个网段。

如果你的 PVE 直接通过有线网卡桥接到家庭 LAN,那么 fnOS 通常会直接从家里的路由器获得一个局域网 IP,使用起来会更加自然。


七、启动 fnOS 安装

虚拟机创建完成以后:

VM 120 ↓ Console ↓ Start Now

随后进入 fnOS 安装界面。

安装流程本身并不复杂。

选择刚才创建的64GB 虚拟磁盘作为系统盘,然后按照安装程序提示继续。

因为当前 VM 只有这一块虚拟磁盘,所以基本没有选错硬盘的可能。


系统分区和 Swap

安装过程中需要配置系统分区和 Swap。

需要注意的是:

64GB

是整个虚拟磁盘的容量,并不是一定要创建一个 64GB 的系统分区。

还需要给:

  • 引导相关分区;

  • Swap;

  • 其他系统空间

留出余量。

因此直接使用安装程序给出的合理默认值即可,没有必要刻意把系统分区拉满。

安装完成以后,fnOS 会重启。

这时可以在 PVE 中把安装 ISO 卸载掉:

VM ↓ Hardware ↓ CD/DVD Drive

选择不再挂载 ISO。

同时确认启动顺序中系统盘优先于 CD-ROM。


八、初始化 fnOS

fnOS 正常启动以后,Console 会显示当前网络地址。

我的环境中最终使用:

192.168.100.20

在电脑浏览器中访问这个地址,就可以进入 fnOS 的初始化界面。

按照提示配置:

设备名称 超级管理员账号 密码

我的设备名称设置为:

pve-fnOS

密码这里一定建议设置一个真正的强密码,尤其是以后如果准备开放远程访问。

初始化完成以后,就可以进入 fnOS 桌面了。

到这里,fnOS 系统本身已经安装完成。


九、再添加一块 200GB 数据盘

NAS 最重要的当然不是系统盘,而是数据盘。

关机以后回到 PVE:

fnOS VM ↓ Hardware ↓ Add ↓ Hard Disk

添加:

Bus/Device:SCSI Storage:hdd-data Disk size:200 GiB Cache:Default Discard:开启 IO thread:开启 SSD emulation:关闭

为什么这里关闭 SSD emulation?

因为我的:

hdd-data

底层本身就是一块1TB Hitachi 机械硬盘。

所以没有必要把这块虚拟磁盘伪装成 SSD。

最终虚拟机的磁盘结构就很清楚:

PVE │ ├── 64GB System Disk │ └── fnOS │ └── 200GB Data Disk └── NAS Data

这也是我这次没有直接把整块物理 HDD 直通给 fnOS 的原因。

目前只是体验和实验阶段,使用一个 200GB 虚拟盘:

  • 不破坏 PVE 原有存储;

  • 不影响其他 VM;

  • 删除、迁移、备份都很方便;

  • 已经足够体验 fnOS 的主要功能。

如果以后真的把这套 fnOS 长期作为家庭 NAS 使用,再考虑整块 HDD 或 SATA Controller 直通更加合理。


十、在 fnOS 中创建存储空间

重新启动 fnOS。

进入:

系统设置 ↓ 存储空间管理

此时应该可以看到刚刚添加的约 200GB 新硬盘。

接下来按照 fnOS 的提示创建存储空间即可。

我的这套环境只有一块虚拟数据盘,而且底层本身已经建立在 PVE 的存储系统之上,因此没有打算在这里研究复杂 RAID。

它的目标首先是:

给 fnOS 一个真正独立于系统盘的数据空间。

这样以后安装相册、影音、Docker 等应用时,就已经具备一套比较完整的 NAS 环境了。


十一、开启 SSH

安装完成以后,我还做了一个服务器系统几乎必做的配置:

打开 SSH。

fnOS 中进入:

系统设置 ↓ SSH ↓ 开启 SSH

随后就可以从其他电脑:

ssh 用户名@192.168.100.20

登录 fnOS。

有了 SSH,以后检查系统状态、网络、磁盘、服务会方便很多。

当然,对于正常的 NAS 日常使用,并不需要频繁 SSH 登录,大部分操作仍然应该在 fnOS 的 Web UI 中完成。


十二、更新软件

打开 SSH 以后,我对系统的软件包进行了检查和更新:

sudo apt update sudo apt upgrade

fnOS 底层是 Linux 系统,因此我们仍然可以看到熟悉的 APT 软件包管理方式。

不过这里需要强调一下:

fnOS 并不是一套普通的 Debian Desktop,而是一套经过大量定制的 NAS 系统。

因此我这次执行apt upgrade更多是实验环境下的实际测试。

如果以后长期运行 fnOS,我会优先使用fnOS 自己提供的系统更新机制,而不是把它当普通 Debian 一样频繁手工做大规模软件包升级。


十三、QEMU Guest Agent 要不要装?

既然运行在 PVE 上,我还检查了一下:

sudo apt install qemu-guest-agent

结果发现:

当前这套 fnOS 1.2 环境中已经安装了 QEMU Guest Agent。

也就是说,这一步实际上不需要额外安装。

可以检查:

systemctl status qemu-guest-agent

然后在 PVE 中进入:

VM ↓ Options ↓ QEMU Guest Agent

将它开启。

之后也可以在 PVE Host 上测试:

qm agent 120 ping

如果能够正常返回,就说明 PVE 和 fnOS 之间的 Guest Agent 通道已经工作。

这对 NAS VM 还是比较有价值的。

PVE 可以通过它更好地获取:

  • Guest OS 信息;

  • IP 地址;

  • 正常关机状态;

  • 一些虚拟机内部信息。

所以QEMU Guest Agent 建议开启。


十四、SPICE 就没必要折腾了

之前在 PVE 上安装 Debian、Arch Linux、Windows 11 时,我还专门研究过 SPICE。

原因是这些系统都有真正的桌面环境,SPICE 能带来:

  • 动态分辨率;

  • 剪贴板;

  • 音频;

  • remote-viewer;

  • 更好的桌面操作体验。

fnOS 就完全不是这种使用方式。

它真正的管理路径是:

PVE Console ↓ 只负责安装和应急维护 SSH ↓ 命令行维护 Web / App ↓ 真正的日常使用

所以这一次我完全没有折腾 SPICE。

PVE 自带的 noVNC Console 留着应急已经足够。

对于 NAS 系统来说,这反而更加干净。


十五、网络还有一点特殊之处

我的 PVE 并不是直接通过有线 Bridge 接入家庭局域网,而是:

家庭 LAN 192.168.31.0/24 │ Wi-Fi │ PVE │ NAT │ vmbr0 192.168.100.0/24 │ fnOS 192.168.100.20

因此我的主力电脑配置一条静态路由以后,可以直接访问:

192.168.100.20

但是家里的手机、电视、其他电脑默认并不知道:

192.168.100.0/24

在哪里。

这个问题暂时不影响我安装和体验 fnOS。

后面如果开始真正研究:

  • 飞牛相册;

  • 手机 App;

  • 影音;

  • SMB;

  • Docker 应用;

我准备直接利用PVE 的三层转发能力,按需做端口映射。

例如:

家庭设备 │ │ PVE_IP:某个端口 ▼ PVE │ │ DNAT ▼ 192.168.100.20:某个端口 │ ▼ fnOS

这样没有必要一下子把 fnOS 的所有服务全部暴露到家庭网络。

需要哪个服务,就开放哪个端口。

这部分等真正用到时再折腾,也可以单独再写。


十六、最终效果

到这里,我的 fnOS VM 已经形成了一套比较完整的基础环境:

ThinkPad T480 │ ├── PVE │ ├── fnOS 1.2 │ │ │ ├── 2 Core CPU │ ├── 4GB RAM │ ├── 64GB System Disk │ ├── 200GB Data Disk │ ├── VirtIO Network │ ├── SSH │ └── QEMU Guest Agent │ └── Web 管理 └── 192.168.100.20

相比前面在 PVE 上折腾 FreeBSD 图形桌面、QXL、Xorg 之类的问题,fnOS 的安装其实轻松得多。

原因也很简单:

NAS 天生就很适合虚拟化。

它并不需要复杂的虚拟显卡、桌面环境和远程桌面。

PVE 负责:

  • CPU;

  • 内存;

  • 网络;

  • 虚拟磁盘;

  • 虚拟机生命周期。

fnOS 则负责:

  • 存储;

  • 文件;

  • 相册;

  • 影音;

  • NAS 应用。

两者的边界非常清晰。


十七、以后完全可以把真实硬盘交给 fnOS

这次为了安装简单,我给 fnOS 添加的是一块:

200GB PVE 虚拟磁盘

这很适合学习和体验:

  • 存储空间;

  • 文件共享;

  • 相册;

  • 影音;

  • 下载;

  • Docker;

  • 各种 fnOS 应用。

但如果以后真的打算长期使用 fnOS,这套架构完全可以进一步升级。

例如直接把一块真实机械硬盘交给 fnOS:

Physical HDD ↓ PVE ↓ 硬盘 / 控制器直通 ↓ fnOS ↓ 真实 NAS 数据盘

这其实并不是什么奇怪的玩法。

恰恰相反,PVE 跑 NAS VM,再把真实数据盘直通给 NAS,是家庭 All-in-One 主机里非常常见的一种架构。

PVE 负责虚拟化层:

CPU Memory PCIe Network VM 生命周期

而 fnOS 负责:

硬盘 存储池 共享目录 相册 影音 备份 下载 NAS 应用

两边职责非常清楚。

这样一来,PVE 就不只是一个“装几个系统玩的虚拟机平台”,而逐渐变成整个家庭服务器的底座。


十八、fnOS 也不只是一个“文件服务器”

NAS 这个词很容易让人想到:

放几个硬盘,然后 SMB 存文件。

但现在的 NAS 实际上已经远远不止这些东西了。

最直接的一个用途就是:

下载机

家庭服务器一天 24 小时开着,本身就非常适合处理:

  • BT;

  • PT;

  • HTTP 下载;

  • 离线下载;

  • 自动追剧;

  • 下载后的媒体整理。

电脑没必要一直开着。

手机上丢一个任务,NAS 自己慢慢下载即可。

而且下载完成以后,文件本身就在 NAS 上:

下载 ↓ NAS 存储 ↓ 影视库 ↓ 电视 / 手机 / 平板播放

完全不需要再从 PC 往 NAS 搬一次。

这可能才是很多家庭 NAS 真正高频的用途之一。


相册与手机照片备份

另外一个很实际的用途就是照片。

现在手机照片、视频越来越多,如果完全依赖手机本地存储,很快就会遇到容量问题。

NAS 可以变成自己的家庭照片库:

手机 ↓ 自动备份 ↓ fnOS ↓ 家庭照片库

以后换手机,照片依然在自己的硬盘上。

如果飞牛相册实际体验足够好,这很可能会成为我使用 fnOS 最重要的理由之一。


家庭影音中心

再往前一步就是影音。

下载机和 NAS 其实天然适合组合:

下载 ↓ 整理 ↓ 刮削 ↓ 媒体库 ↓ 电视 / 手机 / 平板

一台机器可以同时承担:

  • 数据存储;

  • 下载;

  • 影视库;

  • 家庭媒体服务器。

这比“NAS 就是个共享文件夹”有意思得多。


十九、再往前一步:NAS 甚至可以和 AI 放在一起

现在还有一种越来越有意思的玩法:

给家庭服务器加 GPU。

以前 NAS 对 GPU 的需求并不大。

但现在情况开始变化。

GPU 可以用于:

  • 视频硬件转码;

  • 图片处理;

  • AI 相册;

  • 本地 OCR;

  • 语音识别;

  • Embedding;

  • RAG;

  • 本地大模型推理。

甚至真的有人把:

NAS + GPU + LLM

塞进同一台家庭服务器。

例如:

PVE │ ├── fnOS │ └── HDD / SSD │ └── AI Linux VM └── GPU Passthrough ↓ Ollama vLLM Stable Diffusion Whisper Embedding

这时候甚至没必要要求 fnOS 自己承担所有 AI 工作。

PVE 的好处恰恰就是可以拆开。

fnOS 专心负责数据:

照片 电影 文档 模型 数据集

另一台 Linux VM 专门负责 GPU:

CUDA Docker vLLM PyTorch AI 服务

它们通过虚拟网络共享数据即可。

这其实和我前面搭 AI Infra 实验环境的思路已经开始连起来了。

一台服务器既可以是 NAS,也可以同时是一台本地 AI Server。


二十、PVE + fnOS 真正有意思的地方:All-in-One

如果继续发散,其实最终可以形成一台很典型的家庭 All-in-One 主机:

PVE │ ┌───────────────┼───────────────┐ │ │ │ fnOS OpenWrt Linux VM │ │ │ NAS 软路由 Docker 相册 DNS AI 影音 VPN 开发环境 下载 DHCP │ │ HDD / SSD

甚至还可以再加:

Windows VM Home Assistant 测试 K8S 各种 Linux

这就非常符合 PVE 的定位。

如果直接裸机装 fnOS:

Hardware ↓ fnOS

整台机器基本就成为 NAS。

但如果:

Hardware ↓ PVE ↓ ┌──────────────┬──────────────┐ fnOS OpenWrt Linux

那么同样一套硬件就可以承担很多完全不同的工作。

这也是为什么很多家庭服务器最后会走向:

PVE / ESXi / Unraid 之类的虚拟化底座 + NAS VM + 其他服务。

当然,All-in-One 也不是完全没有代价。

一台机器承担的工作越多:

  • 配置越复杂;

  • 故障影响范围越大;

  • 网络设计越重要;

  • 硬盘直通、GPU 直通也会增加维护成本。

尤其如果把软路由也放进去:

PVE 一旦重启,家里的网络可能也跟着断。

所以这是一种“资源利用率和可玩性很高”的方案,而不是唯一正确的方案。

但作为实验环境,它实在太适合折腾了。


写在最后

这次在 PVE 上安装 fnOS 1.2,真正让我感兴趣的其实并不只是:

“终于又装好了一个新系统。”

而是它让我这台 PVE T480 又多了一种完全不同的可能。

之前我在 PVE 上装:

Debian Arch Linux Windows 11 FreeBSD Windows XP

更多是在体验不同操作系统。

而 fnOS 不太一样。

它开始让这台 PVE 从:

虚拟机实验平台

慢慢有了一点:

家庭服务器

的味道。

目前它只是:

2 Core 4GB RAM 64GB System Disk 200GB Virtual Data Disk

但以后完全可以进一步演化:

真实 HDD ↓ fnOS NAS ↓ 相册 / 影音 / 下载 / 文件 GPU ↓ Linux VM ↓ AI / LLM / CUDA 虚拟网卡 ↓ OpenWrt ↓ 家庭网络 其它 VM ↓ Linux / Windows / K8S

最后可能变成一台真正的:

NAS + 下载机 + 影音服务器 + AI Server + 软路由 + 实验室

All-in-One 主机。

当然,我现在还不会马上把这台 T480 改造成这么复杂。

这次先把 fnOS 最基础的环境搭起来。

下一步我更想实际体验一下:

  • 飞牛相册到底怎么样;

  • 手机照片自动备份是否好用;

  • 下载机怎么搭;

  • 飞牛影视体验如何;

  • SMB 文件共享;

  • Docker 应用生态;

  • PVE NAT 环境下手机和电视如何访问;

  • 如果给 fnOS 一块真实 HDD,会有什么变化。

如果这些东西确实好用,那么到时候就不仅仅是在 PVE 上:

“装过一次飞牛。”

而是真的可以考虑:

让飞牛长期住下来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 3:14:10

Python大模型API工程化实战:流式输出、结构化输出与上下文管理

1. 从“能跑通”到“敢上生产”:为什么第二篇要聊这些很多人第一次用 Python 调大模型接口,跑通一个client.chat.completions.create就觉得自己会了。我当初也这么想,直到把一个内部问答工具交给同事用,才发现问题全在后面&#x…

作者头像 李华
网站建设 2026/10/13 3:13:52

数字智慧校园建设整体解决方案

适应人群为学校管理人员、教师、学生、家长及校园运维人员。主要内容围绕数字智慧校园建设,先分析政策背景(如《教育信息化 2.0 行动计划》等)与学校需求(破解信息孤岛、提升教学手段等);提出建设目标&…

作者头像 李华
网站建设 2026/10/13 3:13:33

SAP ABAP CDS Aspect 深度解析,从 define aspect 到跨数据模型复用

在一个规模稍大的 SAP S/4HANA 项目里,CDS 数据模型很快就会遇到一种特别熟悉的现象。销售订单有金额、币种、创建信息和一些派生字段,采购订单也有类似结构,交货单、发票、库存对象甚至主数据对象里,又会出现一批语义相同或者计算方式相同的元素。 如果只是两个 CDS View…

作者头像 李华
网站建设 2026/10/13 3:13:33

ComfyUI国漫LoRA效果对比:同提示词加不加LoRA差距有多大,日漫改国风实测

你是不是已经把 LoRA 加载进去了,也知道权重怎么调,但心里还是有个疑问——加了这个 LoRA,画面到底变了多少?值不值得折腾? 别慌,我当初也这么想过,直到我把“不加 LoRA”“加一个 LoRA”“加两个 LoRA”三组图放在一起对比,才真正看懂 LoRA 在做什么。 这篇不讲新操作…

作者头像 李华
网站建设 2026/10/13 3:12:34

AI芯片软硬件协同设计:从架构到软件栈的工程实践与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/13 3:11:43

第六篇:KVM性能优化与调优指南

KVM 性能优化指南:让虚拟机跑出物理机的性能这是 KVM 虚拟化从入门到实战 系列的第 6 篇。虚拟机"能用"只是第一步,生产环境要求"好用、够快"。这篇从 CPU、内存、磁盘、网络四个维度教你调优。一、CPU 优化1. 使用 virtio CPU 模型…

作者头像 李华