PVE安装记录
下载最新固件,使用Rufus烧录至U盘。上电R86S后立即按 F7 进入 BIOS 设置,选中U盘作为引导启动项,后续的按照提示操作即可。
在系统安装引导界面,可以设置磁盘分配空间,我们可以预留一部分空间给Windows使用,如果有多系统需求的话。
如果需要在 eMMC 安装 Windows 系统作为应急备份。可以考虑先安装 Windows,再安装 PVE,否则 Windows 的 UEFI 分区可能会自动识别安装至 NVME 上。
如果此时需要 iKuaiOS 拨号才能上网,可先配置 iKuaiOS 拨号成功后再继续后续PVE配置。
安装完系统之后,需要修改DNS,默认的DNS只有 127.0.0.1。
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 127.0.0.1
参考 USTC 镜像源替换国内镜像源:
# 基础系统(Debian)
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
# Proxmox
source /etc/os-release
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/pve $VERSION_CODENAME pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# ceph 仓库
if [ -f /etc/apt/sources.list.d/ceph.list ]; then CEPH_CODENAME=`ceph -v | grep ceph | awk '{print $(NF-1)}'`; source /etc/os-release; echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-$CEPH_CODENAME $VERSION_CODENAME no-subscription" > /etc/apt/sources.list.d/ceph.list; fi
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak # 不使用enterprise仓库
# CT Templates
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
systemctl restart pvedaemon
apt update && apt upgrade
pveam update
如果在安装完系统后,想要重新修改IP,可以打开/etc/network/interfaces文件,更改 vmbr0 的 address 即可。修改完成后需要重启。
auto lo
iface lo inet loopback
iface enp1s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
bridge-ports enp1s0
bridge-stp off
bridge-fd 0
iface enp2s0 inet manual
# ......
硬件直通
在kernel中启用I/O Memory Management Unit(直通PCI设置之前必须要启用IOMMU):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
加载相应的内核模块:
vfio
vfio_iommu_type1
vfio_pci
确认核显的供应商(Vendor)和设备(Device) ID:
lspci -nn
......
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-N [UHD Graphics] [8086:46d0]
......
在PVE上屏蔽系统中的开源显卡驱动避免开启显卡被系统加载,另外,不建议直通集显。
更新grub及initramfs,然后重启:
update-grub
update-initramfs -u -k all
reboot
重启完成后,验证 IOMMU 是否已启用,运行:
dmesg | grep -e DMAR -e IOMMU
......
[ 0.062560] DMAR: IOMMU enabled
......
应该能在输出中看到上述一行。
验证 IOMMU 中断重映射已启用,运行:
dmesg | grep 'remapping'
[ 0.153403] DMAR-IR: Enabled IRQ remapping in x2apic mode
应该能在输出中看到上述一行。
存储策略和分区调整
默认情况下,pve安装时会在硬盘上自动创建如下两个区域:
- 区域local:类别为Directory,支持文件目录结构,我们可以看到具体的文件夹和文件。
- 区域local-lvm:类别为LVM-Thin,不支持文件目录结构,即我们看不到文件路径。
网络上大多都是建议把 local-lvm 删除合并至 local。这里我也产生了这样的需求,R86s目前只有一个nvme硬盘,后续还需要其作为NAS存储共享文件。
lvremove /dev/pve/data
lvextend -rl +100%FREE /dev/pve/root
然后在 数据中心→存储→删除 local-lvm。双击编辑 local,内容里添加 磁盘映像和容器。这样做了,我们就可以进入目录/var/lib/vz查看所有的内容了。
root@pve:/var/lib/vz# tree /var/lib/vz
/var/lib/vz
├── dump
├── images
├── private
├── snippets
└── template
├── cache
└── iso
8 directories, 0 files
使用df -h查看,根目录已经扩大了。
root@pve:~# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 16G 0 16G 0% /dev
tmpfs tmpfs 3.2G 1.6M 3.2G 1% /run
/dev/mapper/pve-root ext4 908G 3.3G 867G 1% /
tmpfs tmpfs 16G 43M 16G 1% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs efivarfs 192K 86K 102K 46% /sys/firmware/efi/efivars
/dev/nvme0n1p2 vfat 1022M 12M 1011M 2% /boot/efi
/dev/fuse fuse 128M 16K 128M 1% /etc/pve
tmpfs tmpfs 3.2G 0 3.2G 0% /run/user/0
另外,PVE是不支持安装至eMMC的,在其Forum上找到这么一段话:
Proxmox VE is not made for install on USB/eMMC/CFCard or equal.
Proxmox VE have to be installed on a SSD/HDD. The OS will write some GB logs per day.
A USB/eMMC/CFCard or equal will not last long with this many writing.
但是我们可以将R86s的128GB eMMC在装上PVE之后,挂载至系统中,作为存储使用。例如挂载至其默认的ISO存储位置:/var/lib/vz/template/iso/。
查看emmc的设备符:
root@pve:~# fdisk -l
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: HP SSD EX900 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 85BDD2FE-0974-4DAE-AA8D-DA5E7EF96B7A
Device Start End Sectors Size Type
/dev/nvme0n1p1 34 2047 2014 1007K BIOS boot
/dev/nvme0n1p2 2048 2099199 2097152 1G EFI System
/dev/nvme0n1p3 2099200 1953525134 1951425935 930.5G Linux LVM
Disk /dev/mmcblk0: 116.5 GiB, 125090922496 bytes, 244318208 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
......
格式化emmc:
mkfs -t ext4 /dev/mmcblk0
将硬盘分区挂载到/var/lib/vz/template/iso/目录:
mkdir /mnt/emmc
mount -t ext4 /dev/mmcblk0 /mnt/emmc
将目录挂载到系统启动项:
echo /dev/mmcblk0 /mnt/emmc ext4 defaults 1 2 >> /etc/fstab
使用df -h查看,emmc以及挂载到/mnt/emmc了。
root@pve:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 16G 0 16G 0% /dev
tmpfs 3.2G 1.6M 3.2G 1% /run
/dev/mapper/pve-root 908G 3.3G 867G 1% /
tmpfs 16G 43M 16G 1% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 192K 86K 102K 46% /sys/firmware/efi/efivars
/dev/nvme0n1p2 1022M 12M 1011M 2% /boot/efi
/dev/fuse 128M 16K 128M 1% /etc/pve
tmpfs 3.2G 0 3.2G 0% /run/user/0
/dev/mmcblk0 115G 24K 109G 1% /mnt/emmc
Ubuntu Docker
Proxmox Virtual Environment (PVE) 官方不提供 Docker 支持,但我们可以在 PVE 上的虚拟机或 LXC 容器中自行安装和运行 Docker,从而实现应用容器化。
为了 PVE 的安全和稳定性,我们不在 PVE 主机环境下安装 Docker。
创建 Ubuntu24.04 LXC。
创建CT时,取消勾选 无特权的容器。创建完成后(如果不取消勾选 无特权的容器,运行容器时会失败,打开控制台出现假死现象),创建完成后不要立即启动容器,在容器的 选项→功能 页面,勾选 嵌套、NFS、SMB/CIFS、FUSE 选项。
创建CT时,填入的主机名会忽略 . 后的内容,我填的 Ubuntu24.04,启动CT后,主机名显示的是 Ubuntu24,且无法通过 /etc/hostname 修改。
在LXC配置文件加入如下配置以映射 PVE 主机目录至容器内部,用来存储文件:
mp0: /mnt/user,mp=/mnt/user,backup=0
# mp1, ...依次往后递增
# 也支持直接挂载存储设备符,例如:
# mp0: /dev/mmcblk0,mp=/mnt/emmc,backup=0
加入如下配置以支持 Docker 的完整功能:
lxc.apparmor.profile: unconfined
lxc.cgroup.devices.allow: a
lxc.cap.drop:
更换软件源,安装 Docker:
sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
apt-get update && apt upgrade -y
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker 安装完成后,验证是否成功安装:
docker run hello-world
中文
编辑配置文件,增加中文支持:
# 找到这一行,取消注释
zh_CN.UTF-8 UTF-8
export LC_ALL=zh_CN.UTF-8
然后运行命令,生成对应配置,安装中文字体:
locale-gen
apt install fonts-noto-cjk-extra
SSH
修改sshd配置文件,找到PermitRootLogin这一行,修改如下以允许root ssh登录:
PermitRootLogin yes
然后执行:
systemctl restart sshd
SMB
安装 Samba 服务:
apt install -y samba
设置 Samba 用户:
# 如果用户不存在,则需要先创建
adduser amass
smbpasswd -a amass
创建文件夹:
apt install acl # 用于文件夹权限控制
mkdir /mnt/user/Downloads
# 为用户设置 ACL
setfacl -m u:amass:rwx /mnt/user/Downloads
配置 Samba:
[Downloads]
path = /mnt/user/Downloads
available = yes
valid users = amass,other_username ;仅 root 和 other_username 账号能访问
access based share enum = Yes ;仅可访问该目录的账号可见
read only = no
browsable = yes
public = yes
writable = yes
重启 Samba 服务:
systemctl restart smbd
客户端挂载
mount -t cifs //192.168.110.3/Backup /mnt/user/Backup -o username=amass,password='your_password'
Windows11 虚拟机
下载 Windows VirtIO Drivers,在系统选项卡中,勾选 Qemu代理。
在安装系统完成后,还要继续在Windows VirtIO Drivers上安装网卡等驱动。
直通显卡参考文档:https://github.com/gangqizai/igd