适用范围:普通 Debian 主机的官方内核与 backports。升级时保留可用的回退内核;PVE 使用自己的内核与仓库,不按本文替换。
一、先确认是否需要换内核
新内核可能提供新硬件驱动或修复,但“版本越高越好”并不成立。先查系统版本、架构、当前内核及仓库候选版本:
cat /etc/os-release
dpkg --print-architecture
uname -r
apt-cache policy linux-image-amd64 linux-headers-amd64
linux-image-amd64 的例子只适用于 amd64。ARM、云平台和其他架构要选择对应 flavour。云内核并非普遍缺少 SSH 所需能力,是否适合取决于虚拟硬件与驱动,不能一概要求换成“完整版”。
内核头文件主要用于编译外部模块等用途,普通运行不一定需要。使用 DKMS、第三方网卡/存储驱动或 Secure Boot 时,先确认新内核的模块兼容、签名及引导恢复方案。
二、正确添加与系统匹配的 backports
先保证发行版的普通更新源和安全源正常。backports 必须与自己的 Debian 代号一致,不能继续使用旧 buster-backports,也不把 experimental 作为日常服务器默认来源。Debian Backports 官方说明
每次使用 > /etc/apt/sources.list 都会覆盖整个文件,可能丢失主源与安全源。新增 backports 时使用独立配置文件,并保留现有软件源。不要在已存在同类条目时重复添加。
以 Debian 13 Trixie 为例,创建 /etc/apt/sources.list.d/trixie-backports.sources:
Types: deb
URIs: https://deb.debian.org/debian
Suites: trixie-backports
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
需要其他组件时按实际包需求增加。deb-src 只有下载源码时才需要;不是安装二进制内核的替代条目。旧 Debian 版本的 backports 生命周期应先核对,不能只把示例代号替换后假定仓库仍受支持。
三、安装并验证
先更新索引,确认没有下载、签名或版本混用错误,再审查安装计划:
sudo apt update
apt-cache policy linux-image-amd64 linux-headers-amd64
sudo apt -t trixie-backports install linux-image-amd64 linux-headers-amd64
-t 只针对本次明确选择的 backports 包,不需要给所有 backports 设置高优先级,也不用安装整个 experimental 系统。使用元包有利于跟踪后续内核更新。普通 Debian 内核包会通过安装脚本更新相应引导信息;仍应检查安装日志、initramfs、根文件系统和启动器是否正常。
如果只给现有内核补头文件,查询 linux-headers-$(uname -r) 是否在当前受支持仓库中可用;包找不到不表示可以混入另一发行版源。
安排可恢复的重启窗口,启动后查看 uname -r,验证网络、磁盘、外部模块和业务。安装完成时的包版本不能代替重启后的运行内核。保留原内核到验证完成;回退需能从启动器选择先前可用版本。
四、清理旧内核要指定完整包名
查看已安装包并核对当前运行版本:
uname -r
dpkg -l 'linux-image*' 'linux-headers*'
只删除确认不再需要的完整版本包名,保留当前内核、至少一个已验证的回退内核及跟踪更新的元包。不要对 apt purge 使用宽泛通配符,也不在新内核尚未验收时执行自动清理。
五、内核维护不需要启用 root 密码登录
安装内核可以使用普通账户的 sudo 权限。无需为此启用 root 密码 SSH 登录,也不需要将 PermitRootLogin 和 PasswordAuthentication 都设为 yes。
确需 root SSH 时优先使用密钥,并按实际授权设置 PermitRootLogin prohibit-password。修改前备份 SSH 配置,检查 sshd_config.d 和 Match 条件,不假定只改主文件一行就覆盖所有配置。
sudo sshd -t
sudo sshd -T
sudo systemctl reload ssh
sshd -t 通过后再 reload;有 Match 条件时用实际连接信息配合 sshd -T -C 验证有效配置。保留旧 SSH 会话,在新会话中验证登录成功后再退出,避免将更换内核与失去远程访问同时引入。OpenSSH 配置手册
评论区