释放小七猫的分享欲

PVE 下 Debian 虚拟机内核锁定与升级

categories: 技术 tags: NAS, PVE
@ 08/05/2026

PVE 下 Debian 虚拟机内核锁定与升级

内核锁定

可以防止 apt full-upgrade 自动升级内核,在以前,可能导致掉 SR-IOV 驱动,需要重新安装。

对于不重要的内核更新,直接锁定版本不升级,避免麻烦。

Debian 起不来一般都是内核问题,锁定内核可以减少很多麻烦。

# 锁定内核元包(防止系统自动安装新内核)
sudo apt-mark hold linux-image-amd64
sudo apt-mark hold linux-headers-amd64
sudo apt-mark hold linux-base-amd64
# 锁定当前正在运行的具体内核镜像包
sudo apt-mark hold linux-image-$(uname -r)
# 锁定对应的内核头文件包(DKMS编译依赖)
sudo apt-mark hold linux-headers-$(uname -r)
# 锁定对应的内核 base 包(DKMS编译依赖)
sudo apt-mark hold linux-base-$(uname -r)

内核升级

不建议有事没事升级,过几个大版本升一下级就行了

升级前先检查 SR-IOV 核显 strongtz/i915-sriov-dkms 对内核版本的兼容性

由于可能要重启多次,因此先做以下准备

  1. 暂时禁用 qbittorrent、transmission,Emby 媒体服务器等软件的自启动,启动时会大量扫描做种文件
  2. (可选)临时禁用各个机械盘的挂载,注释 /etc/fstab 中的挂载选项,仅保留系统盘,加快启动时间。
  3. unhold 所有的内核包
# 锁定内核元包(防止系统自动安装新内核)
sudo apt-mark unhold linux-image-amd64
sudo apt-mark unhold linux-headers-amd64
sudo apt-mark unhold linux-base-amd64
# 锁定当前正在运行的具体内核镜像包
sudo apt-mark unhold linux-image-$(uname -r)
# 锁定对应的内核头文件包(DKMS编译依赖)
sudo apt-mark unhold linux-headers-$(uname -r)
# 锁定对应的内核 base 包(DKMS编译依赖)
sudo apt-mark unhold linux-base-$(uname -r)
  1. 全面更新系统 apt update; apt full-upgrade -y,注意观察是否有在自动走 i915-sriov-dkms 编译流程

  2. 重启切换到新内核 apt install build-essential dkms linux-headers-$(uname -r) 安装新内核 配套 headers

  3. (重要)apt list --installed | grep {旧内核版本},删除所有旧内核包及 headers

  4. (看情况)去掉 /etc/default/grub 中的无用内核启动项,更新 grub,重启

  5. 如果如果前面走了编译流程,则看看 /dev/dri/ 下面的驱动是否正常,如果正常就不管了。如果 /dev/dri/ 下面没有驱动,或者前面安装内核的时候没有走编译流程,则 apt purge i915-sriov-dkms 卸载驱动,按 strongtz/i915-sriov-dkms 再走一遍安装流程。

  6. 根据前文内容,使用 apt-mark 禁用内核更新