Debian 13 系统升级与内核切换实录
服务器跑的是 Debian 13 (trixie),初始内核 6.12.107。安全更新攒了 73 个包,趁刚上线赶紧升掉。记录一下过程和坑。
无人值守升级
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get -y \
-o Dpkg::Options::="--force-confdef" \
-o Dpkg::Options::="--force-confold" dist-upgrade
关键参数:
DEBIAN_FRONTEND=noninteractive:不弹 debconf 交互界面;--force-confdef --force-confold:配置文件有改动时保留旧配置,避免升级卡在"是否替换配置"提示上。
这次升级涉及 113 个包,包括 libc、openssh-server、python3.13、qemu-utils 和内核 6.12.113。
升级完先检查
apt-get -s upgrade | grep -E '^[0-9]+ upgraded' # 应为 0 upgraded
dpkg --audit # 应无输出
systemctl --failed # 应无失败单元
如果有包处于半配置状态,dpkg --audit 会列出来,先 dpkg --configure -a 处理。
内核切换
新内核装好后,uname -r 仍是旧版本,因为内核要重启才生效:
uname -r # 6.12.107+deb13-amd64
dpkg -l | grep linux-image # 已经装了 6.12.113
reboot
重启后确认:
uname -r
# 6.12.113+deb13-amd64
Debian 不会像 Ubuntu 那样自动生成 /var/run/reboot-required,所以内核升级后要自己记得重启。
重启后的内核告警怎么看
dmesg -l err,warn 里常见两条:
amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled:KVM 虚拟机的 ACPI 信息不全,CPU 调频交给宿主机,无害;systemd-ssh-generator: Failed to query local AF_VSOCK CID:容器/虚机没有 vsock 设备时的提示,无害。
这两条在云服务器上非常常见,不影响使用。真正要关注的是硬件错误(MCE)、磁盘 IO 错误、OOM 记录这类日志。
升级后建议
- 重启后用
systemctl --failed、ss -tulnp确认服务与端口正常; - 保留一个旧内核作为回退(
/boot空间够的话别急着删); - 开启 unattended-upgrades,只自动打安全补丁;
- 检查磁盘:这次升级后根分区从 2.0G 涨到 4.5G,属正常(新内核 + initramfs + 包缓存)。
升级本身不难,难的是升级完知道该检查什么。这份检查清单可以直接照抄。