|
|
@@ -1,16 +1,20 @@
|
|
|
---
|
|
|
-updated: 2026-09-09
|
|
|
+updated: 2026-10-13
|
|
|
tags: [PVE, 排错, 排障, iGPU, 蜂鸣, 倍控]
|
|
|
---
|
|
|
# PVE (VUModule / 10.10.10.254) 一长三短报警与核显死机排障记录
|
|
|
|
|
|
> 与 [[PVE-显卡欺骗器与状态检测指令]]、[[PVE]] 相关
|
|
|
+>
|
|
|
+> [!warning] 本页已于 2026-10-13 按实测同步
|
|
|
+> 改掉了两处**错的**:「KSM 已禁用」不成立(从来没锁住)、「往 `/etc/default/grub` 里 sed 重加」是已废弃的做法。
|
|
|
+> 现行参数与操作口径以《家庭网络部署与运维手册》(工作目录 `CLAUDE.md` §3.3)为准。
|
|
|
|
|
|
## 设备档案
|
|
|
- 主机:VUModule = 10.10.10.254(root 免密 SSH)
|
|
|
- **品牌:倍控(深圳市倍控工控 / BKIPC,官网 https://www.bkipc.com)**——与 CWWK/Topton/HUNSN 同源的白牌 ODM
|
|
|
- 硬件:Intel Core 3 N355(FCBGA-1264 N 系列)迷你主机(AMI BIOS 5.27 / 2025-03-20,UEFI);单条 Samsung DDR5-4800 16GB;Kingston SNV2S500G;HDMI 欺骗器常插(HDMI-A-1)
|
|
|
-- 系统:pve-manager 9.2.11(Debian 13),厂商 VUM 系统(/usr/.vum、vum-claw、AIfix)
|
|
|
+- 系统:**pve-manager 9.2.21(Debian 13),内核 7.0.14-20-pve**(2026-10-06 升级;旧记录里的 9.2.11 / 9.2.20 已过时),厂商 VUM 系统(/usr/.vum、vum-claw、AIfix)
|
|
|
- VM:100 iKuai(主路由,直通4网卡)/ 101 OpenWrt / 102 WireGuard(1G) / 103 Lucky / 104 Centos10(6G) / 105 HAOS;每日 01:00 vzdump 到 local
|
|
|
- 备注:**6 台 VM 均不使用核显**(无直通/无 VF,i915.max_vfs 运行时=0),核显仅服务宿主机显示输出
|
|
|
|
|
|
@@ -21,6 +25,11 @@ tags: [PVE, 排错, 排障, iGPU, 蜂鸣, 倍控]
|
|
|
4. **必须拔市电**(彻底放电)才能正常启动;欺骗器在位时频率从"约每天一次"降到"数月一次"
|
|
|
5. 发生日期:2026-07-12(Hermes 处理)、2026-09-09(本次)
|
|
|
|
|
|
+## ✅ 蜂鸣会不会响:2026-10-06 有实测口径了
|
|
|
+**正常重启不会响。** 2026-10-06 内核升级后走的是 `systemd-reboot`(软重启,待机电路不断电),日志干净收尾(`Finished systemd-reboot.service` → `Reached target reboot.target`,无 panic / watchdog / Oops),全程无蜂鸣、无硬盘灯异常。
|
|
|
+
|
|
|
+⇒ **蜂鸣只跟着「运行期瞬死之后的冷启动」出现**,普通 `reboot` / 计划内重启不触发。所以升级、改配置这类主动重启不用怕响,怕的是它自己先死。
|
|
|
+
|
|
|
## 确认的故障模型(为什么换内存/加风扇/换 6A 电源都没用)
|
|
|
```
|
|
|
运行期硬件挂起(整机瞬死,网络全断)
|
|
|
@@ -29,6 +38,7 @@ tags: [PVE, 排错, 排障, iGPU, 蜂鸣, 倍控]
|
|
|
→ 一长三短 + 硬盘灯不亮 + 必须拔电才能恢复
|
|
|
```
|
|
|
- **头号嫌疑 = 核显/显示子系统电源状态 bug(DC 省电睡死)**:Hermes 2026-07-12 诊断"Intel iGPU 电源管理";欺骗器(改变显示子系统状态)把频率从每天压到数月;`i915.enable_dc=0` 生效后自 9/9 01:26 稳定运行
|
|
|
+- ⚠️ **第二嫌疑(2026-10-06 新增,未证实)= KSM**:`ksmtuned` 一直在跑,随时能把 KSM 打开(详见下方专节)。KSM 合并页面正是能瞬间搞坏 VM 内存的那类操作。**验证办法 = 彻底关掉 ksmtuned 后观察瞬死是否消失。**
|
|
|
- 已排除:内存条(换过无效)、散热(40℃级+自加2风扇)、电源(4A→6A 最好电源无效)、负载(凌晨低负载照样犯)
|
|
|
- 结论:**板级/固件缺陷,属倍控等白牌 N 系列软路由通病**,非个例非操作问题
|
|
|
|
|
|
@@ -40,43 +50,83 @@ tags: [PVE, 排错, 排障, iGPU, 蜂鸣, 倍控]
|
|
|
## 关键结论:不是只有这台会这样(通病)
|
|
|
白牌 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/
|
|
|
|
|
|
-## Hermes 三项改动核实(2026-09-09)
|
|
|
+## Hermes 三项改动核实(2026-09-09 记录,2026-10-13 复核修正)
|
|
|
| 改动 | 现状 |
|
|
|
|---|---|
|
|
|
-| ① i915.enable_dc=0(iGPU 修复,7/12 08:59 加,备份 grub.bak-20260712) | 8/5 内核升级后从 grub 丢失(7/19 曾 toggle);**2026-09-09 01:26 已重加并重启生效:运行时 enable_dc=0 ✅,机器稳定运行中** |
|
|
|
-| ② KSM 禁用(该内核写 KSM sysfs 会宕机) | 仍在(/sys/kernel/mm/ksm/run = 0)✅ |
|
|
|
+| ① i915.enable_dc=0(iGPU 修复,7/12 08:59 加,备份 grub.bak-20260712) | **✅ 2026-10-06 内核升级后仍在**(三条复查全绿)。注意:现在参数是放在 `/etc/default/grub.d/99-i915-enable-dc.cfg`,**不是**主文件 |
|
|
|
+| ② ~~KSM 禁用(该内核写 KSM sysfs 会宕机)~~ | ❌ **原记录「仍在 ✅」是错的** —— 当时只是把 `run` 置成 0,**没有任何持久化**,`ksmtuned` 每次开机自启、随时能把它打开。**2026-10-06 才真正用 `systemctl mask ksmtuned` 锁死** |
|
|
|
| ③ VM 内存:Centos10 8G→6G、WireGuard 2G→1G | 仍在(104=6144MB、102=1024MB)✅ |
|
|
|
|
|
|
+## 🔧 2026-10-06 复核实测(本轮升级后逐条查实)
|
|
|
+**升级内容**:`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 重启,6 台 VM 全部 onboot 自启恢复。
|
|
|
+
|
|
|
+**三条复查全绿**:`/proc/cmdline` 含 `i915.enable_dc=0` ✅ | `/sys/module/i915/parameters/enable_dc` = `0` ✅ | `/sys/kernel/mm/ksm/run` = `0` ✅
|
|
|
+
|
|
|
+### 为什么固化文件以后不会再丢(证据,不再靠猜)
|
|
|
+1. **`grub-mkconfig` 确实会读它**:`/usr/sbin/grub-mkconfig` 第 **163 行**就是 `for x in ${sysconfdir}/default/grub.d/*.cfg ; do` —— 任何一次 `update-grub`(内核 postinst 会触发)都会把 `.cfg` 里的参数重新拼进 `GRUB_CMDLINE_LINUX_DEFAULT`。
|
|
|
+2. **`.cfg` 不属于任何 deb 包,升级不碰它**:同目录里的 `proxmox-ve.cfg`(2023-05-03)是 **Proxmox 自己**放的 —— 这是厂商也在用的正规位置,不是野路子。本次升级后 `.cfg` 的 mtime 仍是 `2026-09-22 14:45:10`,**一动没动**。
|
|
|
+3. **会被重写的恰恰是主文件**:`/etc/default/grub` 的 mtime 是 `2026-10-06 09:44:48`(正是升级那一分钟,且**目录与文件 mtime 相同到纳秒** = 文件被**替换**过,不只是被读)。
|
|
|
+
|
|
|
+### ⚠️ 更正旧口径:「升级重生成 /etc/default/grub 把参数删了」
|
|
|
+**不准确。** 实测该文件现存 5 份副本(`/etc/default/grub.bak-20260712 / -20260719 / -20260909 / -20260922` + 当前)**md5 完全一致**(`ff62eb423b734b0e14ee5c191e3cc4b0`),里面**从来就没有** `enable_dc`;且 `dpkg -S /etc/default/grub` 显示它**不属于任何包**。
|
|
|
+⇒ 当年丢的更可能是**直接写进 `/boot/grub/grub.cfg` 的临时改动**,被 `update-grub` 重新生成时冲掉。**结论不变**(固化路径对「主文件被替换」和「grub.cfg 被重生成」两种机制都免疫),但原因要按这条记。
|
|
|
+
|
|
|
+### ✅ KSM:原来那句「已禁用」是假的,现已真正锁死
|
|
|
+**原状**:`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 备份、VM 迁移这类时段轻松吃掉这个余量。
|
|
|
+
|
|
|
+**修复动作(2026-10-06 11:13 执行并核验)**:
|
|
|
+```bash
|
|
|
+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`,连手动启动都拒绝,包升级也扛得住。
|
|
|
+- 代价:不再做 KSM 内存去重(当前 swap 20GB 占用 0,可接受);将来若加 VM / 内存吃紧需重新评估。
|
|
|
+
|
|
|
## 厂商(倍控)官方 BIOS 更新渠道
|
|
|
- 官网刷写教程:https://www.bkipc.com/cn/new/BIOS-Update.html
|
|
|
- **固件需向厂商索取**(官网不直接挂 BIOS 文件):淘宝店铺客服 / 邮箱 info@bkipc.com / 电话 13636923655(陈女士 18659912363)
|
|
|
- **索取话术**:报"N355 多网口小主机,BIOS 5.27(2025-03-20)。无显示器/只用欺骗器时:运行中会整机瞬死、重启卡一长三短、必须拔电源。有没有新版 BIOS 修复显示/电源状态问题?请发 bin 固件+UEFI 引导文件。"
|
|
|
- 刷写要点(官网流程):FAT32 空 U 盘(DISKGenius 格式化)→ 放 UEFI 引导文件 + XXXX.bin → **移除机器上所有硬盘只插 U 盘** → 开机 Del 进 BIOS 选 U 盘启动 → `fs0:` → `dir` → **`fpt -X XXXX.bin`** → 等待自动重启;⚠️ 刷机过程严禁断电
|
|
|
|
|
|
-## 排查/验证命令
|
|
|
+## 排查/验证命令(升级后必查三条)
|
|
|
```bash
|
|
|
-cat /proc/cmdline # 当前生效内核参数(应含 i915.enable_dc=0)
|
|
|
-cat /sys/module/i915/parameters/enable_dc # 0=修复生效;-1=默认省电开(未生效)
|
|
|
-journalctl -b -2 -k | grep -m1 "Command line" # 看上次启动的参数(找参数何时丢)
|
|
|
-qm list # VM 状态
|
|
|
+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(均为无参原始版)
|
|
|
+备份文件:`/etc/default/grub.bak-20260712`、`grub.bak-20260719`、`grub.bak-20260909`、`grub.bak-20260922`(均为无参原始版)
|
|
|
+
|
|
|
+## ✅ 重加/回滚方法(2026-10-13 换成正确做法)
|
|
|
+> ⚠️ 旧版这里的 `sed -i` 直接改 `/etc/default/grub` **已废弃** —— 那是会被升级替换掉的文件,参数放进去迟早丢。
|
|
|
|
|
|
-## 重加/回滚方法
|
|
|
```bash
|
|
|
-# 重加(幂等)
|
|
|
-cp /etc/default/grub /etc/default/grub.bak-$(date +%Y%m%d)
|
|
|
-sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="\(.*\)"$/GRUB_CMDLINE_LINUX_DEFAULT="\1 i915.enable_dc=0"/' /etc/default/grub
|
|
|
-update-grub # 重启后 enable_dc 应=0
|
|
|
+# 正确做法:写进 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
|
|
|
|
|
|
-# 回滚
|
|
|
-cp /etc/default/grub.bak-20260909 /etc/default/grub && update-grub
|
|
|
+# 回滚(去掉这个参数)
|
|
|
+rm /etc/default/grub.d/99-i915-enable-dc.cfg && update-grub
|
|
|
```
|
|
|
|
|
|
-## ⚠️ 待办(2026-09-09 更新)
|
|
|
+## ⚠️ 待办(2026-10-13 更新)
|
|
|
- [ ] **对照实验(区分核显 bug vs 板级死锁)**:进 BIOS 找"Internal Graphics/禁用核显 → Disabled",关掉跑 2–4 周 → 从此不死=实锤核显 bug 一劳永逸;无该选项或照死=板级问题 → 走倍控售后换机(6 台 VM 都不用核显,可放心关)
|
|
|
- [ ] **兜底(主路由刚需,9/9 已确认网全断)**:BIOS 设 Restore on AC Power Loss = Always On + 智能插座 → 远程断电送电 = 远程拔电,半夜犯病不用爬过去
|
|
|
- [ ] 找倍控要新版 BIOS / 谈售后(渠道与话术见上)
|
|
|
-- [ ] PVE 内核升级后复查 `enable_dc`(8/5 丢过一次)→ 若再丢,固化到 /etc/default/grub.d/ 独立文件
|
|
|
+- [x] ~~PVE 内核升级后复查 `enable_dc`~~ → **已固化到 `/etc/default/grub.d/`,2026-10-06 内核升级实测扛住**;仍建议每次升级后跑一遍「必查三条」
|
|
|
- [x] 2026-09-09 01:26 enable_dc=0 重加重启生效;9/9 10:00 复查:运行时=0,机器稳定
|
|
|
+- [x] 2026-10-06 复核:三条全绿、KSM 已 mask(见上)
|
|
|
+- [ ] **观察 KSM 假设**:mask 掉 ksmtuned 之后,"运行期整机瞬死"是否还犯 —— 若几个月不再犯,KSM 就是共犯甚至主犯
|
|
|
- [ ] memtest86+:优先级低(症状=运行期挂起而非内存内容错误),想彻底排除可跑
|