ous50 发表于 2025-8-6 00:46:21

在 Proxmox VE (PVE) 上安装 FnOS

> 注:本文首发于[我的blog](/),转载请注明来源(https://blog.ous50.moe/p/在-proxmox-ve-pve-上安装-fnos/)。

**最后更新**: 2025 年 8 月 3 日
**介绍**: 本指南详细介绍了如何在 Proxmox VE(在 Debian 12 上测试)上安装 FnOS,并提供了关键的安装后配置,以确保功能和性能。

## 简介

本文档解决了在 PVE 环境中安装 FnOS 后遇到的常见问题,例如系统被锁定和 PVE Web 控制台无响应。通过遵循这些步骤,您将获得一个完全可访问、安全且优化的 FnOS 虚拟机。

## 安装准备

FnOS ISO:访问 https://www.fnnas.com 并通过“直接下载”获取。

建议 PVE 至少具有 3GB RAM 和 2 核。

按照[官方指南](https://help.fnnas.com/articles/fnosV1/start/install-os.md)安装系统。

---

## 安装后配置

首次启动时,有两个主要问题会阻止访问新的 FnOS 实例:

1.**登录禁用**:在完成基于 Web 的初始设置之前,系统控制台不接受任何凭据(包括 `root`)。这对于可能只有 IPv6 访问权限的远程机器来说是个问题。
2.**PVE 控制台无响应**:PVE Web UI 中的 `Xterm.js` 串行控制台默认情况下无法工作。

以下部分提供了这些问题的解决方案。

### 1. 获取初始 root 访问权限

首先,我们必须绕过标准启动序列来设置 root 密码。

1.在 PVE 控制台中,重启虚拟机。在 GRUB 启动菜单中,按 `e` 编辑启动参数。
2.找到以 `linux` 开头的行。它将类似于以下内容:
    ```
    linux /boot/vmlinuz-6.12.18-trim root=UUID=... ro quiet
    ```
3.在此行末尾添加 `single init=/bin/bash`。此参数将系统直接引导到 root shell。
4.按 `Ctrl+X` 或 `F10` 启动。
5.在 root shell 中,执行 `passwd` 命令为 `root` 用户设置新密码。
6.完成后,重启虚拟机。引导参数更改是临时的,不会持久化。

### 2. 启用永久控制台访问和功能

建立 root 访问权限后,永久修改 GRUB 配置以启用 PVE 串行控制台和其他功能。

1.使用新设置的密码以 `root` 身份登录。
2.编辑 GRUB 配置文件:`nano /etc/default/grub`。
3.修改 `GRUB_CMDLINE_LINUX_DEFAULT` 行,以包含串行控制台和可选的嵌套虚拟化 IOMMU 支持。

    **对于 Intel CPU:**
    ```diff
    - GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    + GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty0 console=ttyS0,115200 intel_iommu=on iommu=pt"
    ```
    **对于 AMD CPU:**
    ```diff
    - GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    + GRUB_CMDLINE_LINUX_DEFAULT="quiet console=tty0 console=ttyS0,115200 amd_iommu=on iommu=pt"
    ```
    > **注意:** `console=ttyS0,115200` 是 PVE `Xterm.js` 功能的关键参数。

4.保存更改并退出编辑器。
5.通过执行以下命令应用新配置:
    ```shell
    update-grub
    ```
6.重启虚拟机。PVE Web 控制台现在应该完全正常工作。

### 3. 安装 QEMU 客户机代理

为了更好地与 PVE 集成,例如在虚拟机摘要中显示网络信息,我们需要安装`qemu-guest-agent`。

```shell
apt update && apt -y install qemu-guest-agent
systemctl enable --now qemu-guest-agent
```

### 4. 网络优化

以下可选步骤可提高网络吞吐量和隐私。

1.执行此脚本以启用 BBR 拥塞控制算法和现代 IPv6 隐私地址标准(RFC 7217 和 RFC 4941)。

    ```shell
    # 确保 BBR 模块在启动时加载
    echo "tcp_bbr" > /etc/modules-load.d/modules.conf

    # 为自定义网络设置创建新的 sysctl 配置文件
    cat > /etc/sysctl.d/99-custom-network.conf <<EOF
    fs.fanotify.max_queued_events=65536
    fs.inotify.max_user_watches=216508
    net.core.default_qdisc=fq
    net.ipv4.tcp_congestion_control=bbr
    net.ipv6.conf.all.use_tempaddr = 2
    net.ipv6.conf.default.use_tempaddr = 2
    net.ipv6.conf.all.addr_gen_mode=1
    net.ipv6.conf.default.addr_gen_mode=1
    EOF
    ```

2.无需重启即可应用新的内核参数:
    ```shell
    sysctl -p /etc/sysctl.d/99-custom-network.conf
    ```
    > 🚨 **警告**:请不要在 FnOS Web 界面中使用“EUI-64”选项。这样做会通过在其 IPv6 地址中**暴露设备的 MAC 地址使这些隐私增强功能失效**。

3.**无需重启即可应用网络更改**

    要激活新的 IPv6 地址设置,必须重置网络接口。这可以通过 `nmcli` 完成,而无需完全系统重启。

    > **🚨 重要提示**:从 PVE Web 控制台 (`Xterm.js`) 执行这些命令,因为通过 SSH 运行它们**会导致临时断开连接**,可能无法恢复。

    **步骤 1:识别连接名称**
    列出所有活动连接以找到主接口的名称。
    ```shell
    nmcli connection show
    ```
    输出将列出可用的连接。记下您的以太网连接的名称,通常是 `Wired connection 1`。

    **步骤 2:重置连接**
    使用识别出的名称重新启动网络接口:
    ```shell
    nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1"
    ```
    网络接口将重新启动。您可以使用 `ip a` 或者在 PVE Web 控制台中虚拟机的 `Summary` 页面中确认新的 IPv6 地址配置。

## 结语

您已成功在 Proxmox VE 上配置了 FnOS 实例。系统现在完全可访问,与 PVE 主机正确集成,并针对网络性能和用户隐私进行了优化。

AceCat_ 发表于 2025-8-6 00:46:22

哇 PVE上装FnOS的教程!刚好最近想搞个NAS,收藏了先

ous50 发表于 2025-8-6 00:46:23

AceCat_ 发表于 2025-8-6 00:36
哇 PVE上装FnOS的教程!刚好最近想搞个NAS,收藏了先

?我明明发的草稿,怎么发出去了OAO

usaukurl 发表于 2025-8-6 15:25:21

PVE不是才更新到9么?哪来的PVE 12?

nyarime 发表于 2025-8-6 20:13:06

usaukurl 发表于 2025-8-6 15:25
PVE不是才更新到9么?哪来的PVE 12?

Debian 12 吧?

ous50 发表于 2025-8-7 21:50:10

usaukurl 发表于 2025-8-6 15:25
PVE不是才更新到9么?哪来的PVE 12?

我指明了是 Debian 12 的 PVE 啊,那不就是 PVE 8 了

usaukurl 发表于 2025-8-12 11:21:31

ous50 发表于 2025-8-7 21:50
我指明了是 Debian 12 的 PVE 啊,那不就是 PVE 8 了

你刚发出来的时候内容有误,写了PVE12,blog的目前都还是错的
页: [1]
查看完整版本: 在 Proxmox VE (PVE) 上安装 FnOS