随机
Enter 搜索 ↑↓ 切换 Esc 清空

pve-all-in-one

命令

PVE 虚拟化平台 All-in-One 搭建教程

补充说明

本文提供了一套完整的 Proxmox VE (PVE) 虚拟化平台搭建教程,旨在打造一个集软路由、NAS、Windows系统于一体的"All in One"家庭服务器。教程涵盖从PVE安装、核显SR-IOV虚拟化,到iKuai、iStoreOS、飞牛FNOS、黑群晖、TrueNAS、Windows 10等多个虚拟系统的部署。

参考视频地址:

✨ 方案特点与功能

本教程构建的 PVE All in One 方案具有以下亮点:


⚙️ 一、PVE 系统安装

1、下载 PVE 系统及写盘软件

2、WinPE 格式硬盘(按需要)

💡 此步骤用于清除硬盘原有数据,避免未知问题。若为新硬盘或已做好备份,可按需操作。

3、PVE 系统写盘

推荐使用 Ventoy,无需反复格式化 U 盘,只需将 ISO 文件拷贝进去即可启动。

4、BIOS 设置

开机进入 BIOS,进行以下关键设置:

5、安装 PVE 系统

  1. 从 U 盘启动,选择 "Install Proxmox VE"。
  2. 关键配置项:
    • 目标硬盘:选择要被格式化的硬盘。
    • 地区与时区:选择 China 和 Shanghai。
    • 管理员密码:为 root 用户设置强密码。
    • 网络配置:
      • 主机名:可随意设置。
      • IP 地址:强烈建议设置静态 IP(例如:10.0.0.254)
      • 子网掩码:255.255.255.0
      • 网关:10.10.10.253
      • DNS:10.10.10.253
  3. 完成安装后重启,记住管理地址(如 https://10.0.0.254:8006)。

6、给 PVE 的扩容(可选项)

⚠️ 移除 local-lvm 会合并存储空间,但可能影响快照功能。如果安装盘够大(如 >128GB),可以不操作此步。

lvremove pve/data
# 输入 y 确认
lvextend -l +100%FREE -r pve/root

然后进入 PVE 网页端:数据中心 -> 存储 -> 移除 local-lvm -> 编辑 local,勾选所有内容类型。

7、去除 PVE 无有效订阅提示

根据你的 PVE 版本执行对应命令:

PVE 9.x:

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy.service

8、开启 PVE 直通功能

  1. 修改 GRUB 引导参数:

    • Intel CPU:
      sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init"' /etc/default/grub
      
    • AMD CPU:
      sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction initcall_blacklist=sysfb_init"' /etc/default/grub
      

      📌 参数释义:

      • iommu=pt:启用 IOMMU 直通支持,提高性能(建议添加)。
      • initcall_blacklist=sysfb_init:屏蔽高版本 PVE 的核显驱动 Bug,便于直通。
      • pcie_acs_override=downstream,multifunction:强制设备独立分组,避免直通导致宿主机卡死。
      • i915.enable_gvt=1:如需开启 Intel GVT-g 虚拟 GPU(共享核显),可添加此项。与直通冲突,二选一。
  2. 添加所需内核模块:

    echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" | tee -a /etc/modules
    
  3. 更新配置并重启:

    update-grub
    update-initramfs -u -k all
    reboot
    
  4. 验证直通是否开启:

    dmesg | grep iommu
    # 应看到 "DMAR: IOMMU enabled" 或 "AMD-Vi: IOMMU enabled" 类似信息。
    lspci -D -nnk
    # 查看设备列表及分组情况。
    

🌐 二、虚拟路由安装

🚨 如果你的 PVE 主机将连接到一个独立的路由器(已有网络),可以直接跳过此步,进入 换源 步骤。

1、安装 iKuai(主路由,若需要)

  1. 下载镜像:iKuai 官方下载
  2. 创建虚拟机:上传镜像,创建虚拟机。关键步骤是添加并直通多个网卡,并在系统中正确设置 WAN 口和 LAN 口。
  3. 配置路由:
    • 网关设为 10.0.0.1
    • DNS 可设置为 223.5.5.5 和 119.29.29.29
    • 默认账号/密码:admin / admin
  4. 测试网络:进入 iKuai 的 Shell 或控制台,执行 ping baidu.com 测试网络是否正常。

2、安装 iStoreOS 或 OpenWrt(旁路由,若需要)

iStoreOS 对新手更友好,这里以其为例。

  1. 下载镜像:iStoreOS 官方下载
  2. 导入镜像到 PVE:
    # 将 `101` 替换为你的虚拟机ID,路径替换为你的img文件实际路径
    qm importdisk 101 /var/lib/vz/template/iso/istoreos.img local
    

    如果之前没有合并 local-lvm,则命令末尾需改为 local-lvm。

  3. 启动虚拟机并快速设置:在虚拟机控制台输入 quickstart,按照向导设置旁路由 IP(例如 10.0.0.2),网关指向主路由 (10.0.0.1)。
  4. 默认登录:用户名 root,密码 password。
  5. 插件下载:可访问 AUK9527 的插件仓库。

📦 三、给 PVE 换源(建议)

⚠️ 重要提示:目前使用 Intel DG1 等独显进行直通硬解的,不要进行换源和系统更新,否则可能导致驱动失效! 换源前请确保 PVE 可以联网 (ping baidu.com)。若不通,请检查 PVE 网络设置中的网关和 DNS。

📌 PVE 9.x 换源步骤

国内推荐使用 清华源 或 中科大源。

  1. 更换 Debian 系统源(必须):

    # 备份原文件
    cp /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak
    

    🔧 二选一执行(以下命令会直接覆盖源文件):

    • 清华源:

      cat > /etc/apt/sources.list.d/debian.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.tuna.tsinghua.edu.cn/debian/
      Suites: trixie trixie-updates trixie-backports
      Components: main contrib non-free non-free-firmware
      Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
      
      Types: deb
      URIs: https://security.debian.org/debian-security/
      Suites: trixie-security
      Components: main contrib non-free non-free-firmware
      Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
      EOF
      
    • 中科大源:

      cat > /etc/apt/sources.list.d/debian.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.ustc.edu.cn/debian/
      Suites: trixie trixie-updates trixie-backports
      Components: main contrib non-free non-free-firmware
      Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
      
      Types: deb
      URIs: https://security.debian.org/debian-security/
      Suites: trixie-security
      Components: main contrib non-free non-free-firmware
      Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
      EOF
      
  2. 禁用 PVE 企业源:

    # 编辑企业源文件,在每一行开头添加 # 注释掉
    nano /etc/apt/sources.list.d/pve-enterprise.sources
    # 按 Ctrl+X, 输入 Y, 回车保存退出。
    
  3. 添加 PVE 免费更新源(无订阅源): 🔧 二选一执行:

    • 清华源:
      cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve
      Suites: trixie
      Components: pve-no-subscription
      Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
      EOF
      
    • 中科大源:
      cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve
      Suites: trixie
      Components: pve-no-subscription
      Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
      EOF
      
  4. 更换 Ceph 源(如果用 Ceph 才换):

    cp /etc/apt/sources.list.d/ceph.sources /etc/apt/sources.list.d/ceph.sources.bak
    

    🔧 二选一执行:

    • 清华源:
      cat > /etc/apt/sources.list.d/ceph.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-squid
      Suites: trixie
      Components: no-subscription
      Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
      EOF
      
    • 中科大源:
      cat > /etc/apt/sources.list.d/ceph.sources << 'EOF'
      Types: deb
      URIs: https://mirrors.ustc.edu.cn/proxmox/debian/ceph-squid/
      Suites: trixie
      Components: no-subscription
      Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
      EOF
      
  5. 更换 CT(LXC容器)模板源(可选,加速模板下载):

    cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
    

    🔧 二选一执行:

    • 清华源:
      sed -i -e 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' \
             -e 's|https://appcenter.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' \
             /usr/share/perl5/PVE/APLInfo.pm
      
    • 中科大源:
      sed -i -e 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' \
             -e 's|https://appcenter.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' \
             /usr/share/perl5/PVE/APLInfo.pm
      

🔄 让更新源生效

# 更新软件列表并升级系统
apt update && apt dist-upgrade -y
# 重启相关服务
systemctl restart pvedaemon.service
# 建议重启PVE
reboot

📝 PVE 8.x 及更早版本的换源命令有所不同,主要为sources.list文件格式和发行版代号(如bookworm, bullseye)。请参考原文中折叠的代码块或根据对应版本的官方文档调整。


🎮 四、开启核显 SR-IOV(若需要)

🚨 操作前必读:请务必确认你的核显支持 SR-IOV! 支持列表摘要:

  • Intel:主要支持第 12-14 代酷睿及部分新款酷睿 Ultra 处理器的核显。消费级 Arc 独显不支持。
  • AMD:消费级核显/独显通常不支持。仅特定 Radeon PRO V 系列专业卡支持。
  • NVIDIA:消费级和企业级 GPU 均不支持,其虚拟化方案为需要许可的 vGPU。

项目地址:strongtz/i915-sriov-dkms

  1. 安装依赖:

    apt install build-essential dkms git sysfsutils -y
    apt install proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r)
    
  2. 克隆代码库:

    cd ~
    git clone https://github.com/strongtz/i915-sriov-dkms.git
    

    如果 GitHub 连接不畅,可尝试使用国内镜像:git clone https://gitee.com/ifwwww/i915-sriov-dkms

  3. 安装 DKMS 模块:

    cd ~/i915-sriov-dkms
    dkms add .
    # 查看生成的版本号,例如 "2025.02.03"
    dkms status
    # 安装模块,将下方命令中的"版本号"替换为上一步查看到的实际版本号
    dkms install -m i915-sriov-dkms -v 版本号 --force
    
  4. 配置 GRUB 以启用 SR-IOV:

    nano /etc/default/grub
    

    在 GRUB_CMDLINE_LINUX_DEFAULT 一行 quiet 后面添加参数:

    i915.enable_guc=3 i915.max_vfs=7
    ```

    > `max_vfs=7` 表示最多创建 7 个虚拟核显(VFs),可按需减少。

5.  **更新配置并获取核显 ID**:

    ```bash
    update-grub
    update-initramfs -u
    # 查看核显设备 ID,记录下第一行开头的地址,如 `0000:00:02.0`
    lspci -D -nnk | grep VGA
    ```

6.  **配置并启用 VFs**:

    ```bash
    # 将下方 `0000:00:02.0` 替换为你的核显 ID,`7` 替换为你想要的 VF 数量
    echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
    reboot
    ```

7.  **验证是否成功**:
    重启后,在 PVE Shell 中执行:
    ```bash
    lspci | grep VGA
    ```
    如果成功,你会看到 1 个物理核显(PF)和多个虚拟核显(VF),例如:
```text
    0000:00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
    0000:00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
    ... (共8个,包括1个PF和7个VF)
    ```

> 🔧 **卸载 SR-IOV 驱动**:如果需要卸载,请参照原文末尾的卸载步骤。

---


## 🖥️ 五、虚拟机安装(按需选择)

### 1、安装飞牛 fnOS 🐂

1.  **官网下载**:[飞牛私有云 fnOS](https://fnnas.com/)
2.  创建虚拟机,先**不添加**虚拟核显,安装好基础系统。
3.  进入飞牛系统,在**应用中心**搜索并安装 `i915-sriov-dkms` 驱动。
4.  如果应用中心驱动无效,可尝试通过 SSH 手动安装驱动(参考皮蛋熊大佬的教程):
    ```bash
    sudo -i
    wget https://blog.kkk.rs/upload/intel-i915.deb
    dpkg -i intel-i915.deb
    ```
5.  关机,添加 SR-IOV 虚拟出来的核显设备(⚠️ 切勿直通第一个 `00:02.0` 主设备或勾选"所有功能")。
6.  开机,测试视频转码,观察 CPU 占用是否正常。
    - **在 PVE 查看核显使用率 (Intel)**:`intel_gpu_top -d sriov`
    - **在 PVE 查看显存占用 (AMD)**:`radeontop` (需先安装 `apt install radeontop`)

### 2、安装黑群晖 🖧

1.  使用 **RR(Redpill Recovery)引导**,可从其 [GitHub 仓库](https://github.com/fbelavenuto/arpl) 下载。
2.  创建虚拟机,加载 RR 引导镜像,按照引导网页配置生成群晖引导。
3.  安装群晖系统后,检查核显驱动:
    ```bash
    sudo -i
    ls /dev/dri  # 检查是否存在显卡设备节点
    lsmod | grep i915  # 检查i915驱动模块是否加载
    ```
4.  如需使用核显硬解,可考虑使用集成驱动的 Docker 版 Jellyfin。

### 3、安装 TrueNAS 💽

1.  从 [TrueNAS 官网](https://www.truenas.com/download-truenas-scale/) 下载 SCALE 或 CORE 版本。
2.  创建虚拟机,加载 ISO 安装。建议直通 HBA 卡或整个硬盘控制器给 TrueNAS 以获得最佳性能和管理体验。

### 4、安装 Windows 10 🪟

1.  准备 Windows 10 镜像(如 LTSC 版本)和 **virtIO 驱动 ISO**([下载地址](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.240-1/))。
2.  创建虚拟机,系统类型选择 `Windows 10/11`。在 `硬件` -> `CD/DVD 驱动器` 中加载 virtIO 驱动 ISO。
3.  安装系统时,需要手动加载 virtIO 驱动才能识别到虚拟硬盘和网卡。
4.  系统安装完成后,再添加虚拟核显设备,并安装对应的 Intel/AMD 显卡驱动。
5.  ⚠️ 如果希望将核显直通给 Windows 并输出画面到显示器,需定制 VBIOS,操作较为复杂,请参考相关专题教程。
6.  **[英特尔® Arc™ 和锐炬® Xe 显卡 (intel.cn)](https://www.intel.cn/content/www/cn/zh/download/785597/intel-arc-iris-xe-graphics-windows.html)**

### 5、安装 LXC 容器(如 Jellyfin) 🐳

从 PVE 9.1 开始,可直接从 OCI 仓库(如 Docker Hub)拉取镜像创建 LXC 容器,性能更优。

1.  **拉取 OCI 镜像**:在 PVE 网页端,进入 `local` 存储 -> `CT模板` -> `从OCI注册表拉取`,输入镜像名(如 `nyanmisaka/jellyfin:latest`,或使用国内镜像加速地址)。
2.  **创建无特权容器**:使用拉取的镜像创建 LXC 容器,务必勾选"无特权的容器"和"嵌套"。
3.  **直通核显设备**:编辑容器配置,在 `资源` -> `设备直通` 中添加宿主机核显设备:
    ```bash
    /dev/dri/card0
    /dev/dri/renderD128
    ```
    权限设置为 `0777`。
4.  **挂载媒体目录**:
    ```bash
    # 将PVE上已挂载的NFS/SMB路径挂载到容器内
    pct set <容器ID> -mp0 /mnt/pve/your_nfs_share,mp=/media
    ```
5.  **访问与配置**:通过 `http://<容器IP>:8096` 访问 Jellyfin,在控制台的"播放"设置中,硬件加速选择:
    - **Intel**:`Intel QuickSync (QSV)`
    - **AMD**:`Video Acceleration API (VAAPI)`

---


## 🔚 六、尾巴

完成所有系统安装后,别忘了进行一些收尾工作:

- **设置虚拟机开机自启**:在 PVE 中为需要长期运行的服务(如路由、NAS)设置开机自动启动。
- **做好备份**:定期备份 PVE 宿主机的配置和关键虚拟机的磁盘。
- **IP 标记**:在路由器中将各个服务的 IP 地址与 MAC 地址绑定,防止 IP 变动。
- **监控与维护**:可以安装 `netdata`、`cockpit` 等工具监控主机状态。

恭喜你!🎉 一台功能强大的 All in One 家庭服务器已经搭建完成。