updated: 2026-09-09
本文档整合自原
02-家庭实验室/PVE/文件夹内 15 篇笔记(原文件现存于99-归档/PVE原始笔记/,来源映射见文末附录)。 覆盖:环境总览、网络与远程开机、PCIe 直通、存储与磁盘、系统维护、核显死机排障、其他虚拟化平台笔记。
| VM | 用途 | 备注 |
|---|---|---|
| 100 | iKuai | 主路由,直通 4 网卡 |
| 101 | OpenWrt | |
| 102 | WireGuard | 1G 内存 |
| 103 | Lucky | |
| 104 | Centos10 | 6G 内存 |
| 105 | HAOS |
vzdump 备份到 localVirtIO > Intel E1000E > Intel E1000。只要虚拟机系统支持,永远首选 VirtIO。nano /etc/network/interfaces
nano /etc/hosts
ethtool enp3s0 # 查看网卡是否支持远程开机
nano /etc/network/interfaces # 修改配置,增加 post-up 开机唤醒
auto lo
iface lo inet loopback
iface enp3s0 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.10.10.50/24
gateway 10.10.10.253
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
post-up /usr/sbin/ethtool -s enp3s0 wol g # 增加开机
source /etc/network/interfaces.d/*
ifreload -a # 重启网络
ethtool enp3s0 | grep Wake-on # 查看是否已是 g
ip link show enp3s0 # 查看 mac 地址
ip link show 或 ip l —— enp3s0、enp4s0 等是物理网卡,vmbr0 是虚拟网桥。lshw -class network —— 查看网卡型号与系统名称的对应关系。ip link show 列表中消失(已隔离交给虚拟机独占)。en = 以太网;p3s0 = PCI 总线 3、插槽 0;格式 enp[bus]s[slot]。「PVE 就一个网口,直通给虚拟机后还能管理吗?」——不能! 直通唯一网口 = 宿主机「断网」,无法远程管理。方案:
VirtIO 模型网卡桥接到宿主机唯一物理网卡。场景:宿主机 2.5G 网卡,Win11 虚拟机。选择
VirtIO模型并安装驱动以获得最佳性能。
Intel E1000E(Windows 自带驱动,保证初次安装能上网)。NetKVM\w11\amd64 目录 → 完成安装。VirtIO (paravirtualized) → 移除驱动 ISO → 启动。ip link show,记录所有网口名称。/etc/network/interfaces,确保管理网口正确桥接到 vmbr0。ip link show 确认已直通设备消失;虚拟机内确认设备被正确识别。总结:先规划,后查看,再配置。保住管理网,直通才无忧。
| 文件 | 作用 |
|---|---|
xxx.vma.zst |
最重要的文件:虚拟机实际备份数据(zstd 压缩),没有它无法恢复 |
xxx.vma.zst.notes |
备份附带的备注信息(创建备份任务时填写的说明),恢复非必需 |
xxx.vma.zst.protected |
标记文件:该备份「受保护」不会被自动删除,不含数据 |
xxx.log |
备份任务日志(成功/失败/错误),恢复非必需但排错有用 |
lsblk # 查看磁盘(如 sda 3.6T)
fdisk /dev/sda # 交互:g 建 GPT 表 → n 建分区(回车用满) → w 保存
mkfs.ext4 /dev/sda1
mkdir /mnt/data4t
echo "/dev/sda1 /mnt/data4t ext4 defaults 0 2" >> /etc/fstab
mount -a
df -h | grep data4t # 检查
PVE Web 添加目录存储:Datacenter → Storage → Add → Directory
data4t;Directory:/mnt/data4tDisk image、Container、ISO image、VZDump backup filepvcreate /dev/sda
vgcreate vg4t /dev/sda
lvcreate -l 100%FREE -T vg4t/data4t-thin
PVE Web 添加存储:Datacenter → Storage → Add → LVM-Thin
data4t-thin;Volume group:vg4t;Thin pool:data4t-thinLVM-Thin:Web 界面 Storage → 选中 → Remove,然后:
umount /dev/mapper/vg4t-data4t--thin # 若已挂载
lvremove vg4t/data4t-thin
vgremove vg4t
pvremove /dev/sda
硬盘通过 Web 不能添加时,可通过指令查看/直接改配置:
cat /etc/pve/storage.cfg
# 默认 local 存储(PVE 系统自带)
dir: local
path /var/lib/vz
content images,backup,rootdir,vztmpl,snippets,import,iso
shared 0
# 第一块 4T 硬盘挂载
dir: data4t
path /mnt/pve
content images,backup,rootdir,vztmpl,snippets,import,iso
shared 0
适用:磁盘变大但系统只用了很小空间。⚠️ 建议先做快照/备份。 ⚠️ 必须确认与你的一致,否则改名字:磁盘
/dev/sda、分区sda3、VGpve、root LV/dev/pve/root。
# 1️⃣ 查看当前状态
lsblk; df -h /; pvs; vgs; lvs
# 2️⃣ 修复 GPT 让磁盘识别全部容量
parted /dev/sda <<EOF
print
Fix
quit
EOF
# 3️⃣ 扩展 LVM 所在分区(这里是 sda3)
parted /dev/sda <<EOF
resizepart 3 100%
quit
EOF
# 4️⃣ 重新读取分区表(失败就重启)
partprobe || reboot
# 5️⃣ 扩展 LVM 物理卷
pvresize /dev/sda3
# 6️⃣ 扩展 root 逻辑卷到全部剩余空间
lvextend -l +100%FREE /dev/pve/root
# 7️⃣ 扩展文件系统(先判断类型 df -T /)
resize2fs /dev/pve/root # ext4
# xfs_growfs / # 若是 xfs(不要执行上面那条)
# 8️⃣ 最终确认
lsblk; df -h /
目录:/etc/apt/sources.list.d/。⚠️ debian.sources 内容不能用空格。
debian.sources
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
ceph.sources
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-squid
Suites: trixie
Components:main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
pve-enterprise.sources(注释掉)
# Types: deb
# URIs: https://enterprise.proxmox.com/debian/pve
# Suites: trixie
# Components: pve-enterprise
# Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
新增 pve-no-subscription.sources
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
改名(先备份数据):
nano /etc/hostname
nano /etc/hosts
hostnamectl set-hostname pve
systemctl restart pve-cluster pvedaemon pveproxy pvestatd
reboot
删除启用的 node:
cd /etc/pve/nodes/
rm -rf <delete-node-name>
删除某 node(如 ss)在日志文件夹里的任务:
# 找到 ss 节点相关的日志文件
grep -Rl "ss:" /var/log/pve/tasks/ # 列出含 ss: 的文件,如 /var/log/pve/tasks/0/12345
rm /var/log/pve/tasks/0/12345 # 逐个删除
rm /var/log/pve/tasks/1/12346
# 清理 index 文件中的记录
nano /var/log/pve/tasks/index # 搜索 ss: 删除对应行
⚠️ 不要删除其他节点的记录,否则其他节点的任务历史会丢失。 参考:https://forum.proxmox.com/threads/how-to-clear-vm-task-history-log.70615/
参考:https://www.geekxw.top/2794/
宿主机显示温度/频率(PVE-manager-status 增强脚本):
(curl -Lf -o /tmp/temp.sh https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh || curl -Lf -o /tmp/temp.sh https://gh-proxy.com/https://raw.githubusercontent.com/a904055262/PVE-manager-status/main/showtempcpufreq.sh) && chmod +x /tmp/temp.sh && /tmp/temp.sh remod
重装相关组件(还原修改过的面板文件):
apt install --reinstall pve-manager=$(dpkg -l pve-manager | tail -n 1 | awk '{print $3}')
apt install --reinstall proxmox-widget-toolkit=$(dpkg -l proxmox-widget-toolkit | tail -n 1 | awk '{print $3}')
切换 CPU 节能/性能模式:
cpupower frequency-set -g powersave # 节能模式
cpupower frequency-set -g performance # 性能模式
acpi-cpufreq 驱动模式说明: | 模式 | 说明 | |---|---| | performance | 固定工作在高运行频率,不动态调节 | | userspace | 变频策略交给用户态程序,较灵活 | | powersave | 固定工作在最低运行频率 | | ondemand | 按需快速动态调整:无负载低频,有负载高频 | | conservative | 类似 ondemand,频率升降渐变缓和 | | schedutil | 负载变化回调机制(新机制),经 schedutil sugov_update 调频 |
intel_pstate 驱动:
安装/查看:apt install cpufrequtils、cpufreq-info
HY0XH-D508H-081U8-JA2GH-CCUM2
4C4WK-8KH8L-H85J0-UHCNK-8CKQ8
NV09R-2W007-08D38-CA956-33U28
JU400-6EK4L-080V9-QT8EP-2KAQ2
显卡欺骗器常插保持显示输出(与 6.0 死机排障相关,见第七章);以下为状态检测命令汇总。
# 1️⃣ 查看显卡设备(确认型号)
lspci | grep -i vga
# 2️⃣ 查看 DRM(显示管理接口)设备(列出 HDMI/DP 等接口,如 card1-HDMI-A-1、card1-HDMI-A-2)
ls /sys/class/drm/
# 3️⃣ 检查显示接口连接状态
cat /sys/class/drm/card1-HDMI-A-1/status
cat /sys/class/drm/card1-HDMI-A-2/status
# connected = 有设备(显示器或欺骗器)已连接
# disconnected = 无连接
# 4️⃣ 读取连接设备的 EDID 信息
apt install edid-decode -y
edid-decode /sys/class/drm/card1-HDMI-A-2/edid
# 查看连接设备的识别信息(假显示器型号与分辨率)
# 5️⃣ 查看显卡驱动情况
lspci -k | grep -A 3 VGA
# 常见输出 "Kernel driver in use: i915" = Intel 集成显卡已启用驱动
说明
i915 是 Intel 官方 Linux 驱动,支持硬件视频加速(VA-API)。intel-media-driver)。主机 VUModule(10.10.10.254),记录日期 2026-07-12 / 2026-09-09,2026-10-13 按实测同步。与「显卡欺骗器」检测指令关联。
⚠️ 本节已修正两处错误:原 7.5 的「KSM 已禁用 ✅」不成立(从来没锁住过)、原 7.8 的「往
/etc/default/grub里 sed」是已废弃做法。现行参数与操作口径以工作目录CLAUDE.md§3.3 为准。
运行期硬件挂起(整机瞬死,网络全断)
↓ 待机电路留下"脏电源状态"
下次冷启动 → 内存训练从脏状态开始 → 自检早期失败
→ 一长三短 + 硬盘灯不亮 + 必须拔电才能恢复
i915.enable_dc=0 生效后自 9/9 01:26 稳定运行。enable_dc=0 治的是上游「运行期死机」,不是蜂鸣本身。白牌 Intel N 系列软路由(N95/N100/N305/N355,倍控/CWWK/Topton/HUNSN 同源)在 headless + 软路由 + 核显活跃场景下:iGPU DC 省电死机 + 冷启动 1长3短需拔电,均为社区公认问题;个体品控只影响频率。 参考:https://forums.servethehome.com/index.php?threads/cwwk-topton-n95-n100-n200-n305-quad-nic-router-5-bios-error-beeps-and-black-screen-error.40333/
| 改动 | 现状 |
|---|---|
| ① i915.enable_dc=0(iGPU 修复,7/12 08:59 加,备份 grub.bak-20260712) | ✅ 2026-10-06 内核升级后仍在(三条复查全绿)。注意:参数现在放在 /etc/default/grub.d/99-i915-enable-dc.cfg,不是主文件 |
| ② |
❌ 原记录「仍在 ✅」是错的 —— 当时只是把 run 置成 0,没有任何持久化;ksmtuned 每次开机自启、随时能把它打开。2026-10-06 才真正用 systemctl mask ksmtuned 锁死 |
| ③ VM 内存:Centos10 8G→6G、WireGuard 2G→1G | 仍在(104=6144MB、102=1024MB)✅ |
升级内容:apt full-upgrade 09:44:09–09:44:46,pve-manager 9.2.20→9.2.21、内核 7.0.14-19→7.0.14-20;10:53 重启(systemd-reboot 干净收尾,无 panic / watchdog / Oops),6 台 VM 全部 onboot 自启恢复。
三条复查全绿:/proc/cmdline 含 i915.enable_dc=0 ✅ | /sys/module/i915/parameters/enable_dc = 0 ✅ | /sys/kernel/mm/ksm/run = 0 ✅
✅ 「正常重启会不会响」也有口径了:不会。本次全程无蜂鸣、无硬盘灯异常。⇒ 蜂鸣只跟着「运行期瞬死之后的冷启动」出现,普通 reboot / 计划内重启不触发。
grub-mkconfig 确实会读它:/usr/sbin/grub-mkconfig 第 163 行就是 for x in ${sysconfdir}/default/grub.d/*.cfg ; do —— 任何一次 update-grub(内核 postinst 会触发)都会把 .cfg 里的参数重新拼进 GRUB_CMDLINE_LINUX_DEFAULT。.cfg 不属于任何 deb 包,升级不碰它:同目录里的 proxmox-ve.cfg(2023-05-03)是 Proxmox 自己放的 —— 厂商也在用的正规位置。本次升级后 .cfg 的 mtime 仍是 2026-09-22 14:45:10,一动没动。/etc/default/grub 的 mtime 是 2026-10-06 09:44:48(正是升级那一分钟,且目录与文件 mtime 相同到纳秒 = 文件被替换过,不只是被读)。不准确。 实测该文件现存 5 份副本(grub.bak-20260712 / -20260719 / -20260909 / -20260922 + 当前)md5 完全一致(ff62eb423b734b0e14ee5c191e3cc4b0),里面从来就没有 enable_dc;且 dpkg -S /etc/default/grub 显示它不属于任何包。
⇒ 当年丢的更可能是直接写进 /boot/grub/grub.cfg 的临时改动,被 update-grub 重新生成时冲掉。结论不变(固化路径对「主文件被替换」和「grub.cfg 被重生成」两种机制都免疫),但原因按这条记。
原状:ksmtuned.service 是 enabled + active(unit 来自 /usr/lib/systemd/system/ksmtuned.service,preset: enabled)⇒ 每次开机自己起来;/usr/sbin/ksmtuned 第 70 行就是 echo 1 > /sys/kernel/mm/ksm/run(它有权打开 KSM);而 /etc/systemd/system/ksmtuned.service.d/ 不存在、没有 mask、/etc/ksmtuned.conf 全是注释无生效设置。
run=0 仅仅因为它恰好满足自己的「停 KSM」条件:(committed + thres < total) AND (free > thres),其中 thres = total×20%、free = MemFree+Buffers+Cached。
| 量 | 当时实测值 | 触发线 | 余量 |
|---|---|---|---|
free(脚本口径) |
3666 MB | 3152 MB | 只差 513 MB |
committed(各 qemu VmRSS 合计) |
10606 MB | 12610 MB | 只差 2003 MB |
⇒ 宿主内存再紧 513 MB,ksmtuned 就会自己写 1。 6 台 VM 共分配 13 GB、宿主实有 15.7 GB,01:00 备份这类时段轻松吃掉这个余量。
修复(2026-10-06 11:13 执行并核验):
systemctl mask --now ksmtuned
# Created symlink '/etc/systemd/system/ksmtuned.service' → '/dev/null'
核验:is-enabled = masked、is-active = inactive、ksm/run = 0、pages_shared = 0,手动 systemctl start ksmtuned 被拒(Unit ksmtuned.service is masked.)。6 台 VM 全 running、内存无变化。
mask 不用 disable:disable 只摘自启链接,依赖或 preset 可能把它拉回来;mask 指向 /dev/null,连手动启动都拒绝,包升级也扛得住。systemctl unmask ksmtuned && systemctl start ksmtuned(原状 = enabled + active)。⚠️ 新假设(未证实):「运行期整机瞬死」的元凶可能不止 i915 DC,KSM 是共犯甚至主犯 —— KSM 合并页面正是能瞬间搞坏 VM 内存的那类操作。验证办法 = mask 之后观察瞬死是否还犯。
fs0: → dir → fpt -X XXXX.bin → 等待自动重启;⚠️ 刷机过程严禁断电grep enable_dc /proc/cmdline # 应看到 i915.enable_dc=0
cat /sys/module/i915/parameters/enable_dc # 应为 0;若为 -1 说明防护已失效
cat /sys/kernel/mm/ksm/run # 应为 0(ksmtuned 已 mask,正常恒为 0;若变 1 说明有东西绕过 mask)
ip route get 10.10.10.253 # 旁路由侧:应仍为 dev br-lan(查 ZeroTier 有没有抢路由)
备份文件:/etc/default/grub.bak-20260712、grub.bak-20260719、grub.bak-20260909、grub.bak-20260922(均为无参原始版)
⚠️ 旧版这里的
sed -i直接改/etc/default/grub已废弃 —— 那是会被升级替换掉的文件,参数放进去迟早丢。
# 正确做法:写进 grub.d 固化文件(幂等,升级不会碰它)
cat > /etc/default/grub.d/99-i915-enable-dc.cfg <<'EOF'
GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT i915.enable_dc=0"
EOF
update-grub # 必须执行,否则文件写了也进不了 grub.cfg
# 重启宿主后核对:grep enable_dc /proc/cmdline
# 回滚(去掉这个参数)
rm /etc/default/grub.d/99-i915-enable-dc.cfg && update-grub
enable_dc/etc/default/grub.d/,2026-10-06 内核升级实测扛住;仍建议每次升级后跑一遍「必查三条」(见 7.8)准备工作
技巧
参考:https://blog.csdn.net/weixin_63594197/article/details/138069939
192.168.222.2;宿主机 VMnet8 网卡 IP 必须为 192.168.222.1。配置系统代理(CentOS):
export http_proxy="http://192.168.222.1:23457"
export https_proxy="http://192.168.222.1:23457"
# 验证
echo $https_proxy # http://192.168.222.1:23457
echo $http_proxy # http://192.168.222.1:23457
| 章节 | 来源文件(现于 99-归档/PVE原始笔记/) |
|---|---|
| 一、环境总览 | PVE一长三短报警与核显死机排障记录.md |
| 二、网络配置与远程开机 | PVE.md、PVE 网络与直通核心指南.md |
| 三、PCIe 直通与虚拟机网卡 | PVE 网络与直通核心指南.md、PVE直通windows.md |
| 四、存储与磁盘 | PVE备份.md、PVE新增硬盘.md、PVE调整硬盘空间.md |
| 五、系统与维护 | PVE修改镜像源.md、PVE修改node名称.md、PVE降低功耗.md、6.0认证激活码.md |
| 六、显卡欺骗器与核显检测 | PVE-显卡欺骗器与状态检测指令.md |
| 七、排障 | PVE一长三短报警与核显死机排障记录.md |
| 八、其他虚拟化平台 | ESXI.md、Vmware虚拟机使用宿主机代理.md |