我尝试像平常一样更新我的 Debian 系统,其中一个更新是针对内核的,从 6.1.0-17 更新到 6.1.0-18。但是,似乎我的显卡(GTX 1050(移动版),驱动程序版本 535)的最新 nvidia 驱动程序与最新内核存在一些不兼容问题。
所以,我试图做的就是保持更新
sudo apt-mark hold linux-image-6.1.0-18 linux-headers-6.1.0-18
但到那时,它已经完成了一定程度的安装。但是,据我了解,它是通过对 nvidia 驱动程序执行某些操作来使它们停止工作来实现的。我通过写下以下内容来确认这一点:
nvidia-smi
并没有得到任何回报。因此,我进入 Debian 存储库并安装了早期版本的驱动程序:525(这样做会自动删除 535)。正如我所使用的那样,这似乎暂时解决了问题:
sudo apt update
并且没有显示出进一步的问题。直到我尝试安装某些东西,它弹出一个新的错误,名为dracut
.我知道 dracut 是内核的一部分,但我无法弄清楚这个错误。我确实知道它与 nvidia 驱动程序有关,正如错误中所说的那样。我该怎么办,我害怕重新启动计算机?
答案1
原因dracut
是以前的 Linux 内核存在问题6.1.0-17
,因为该内核的残余物仍然留在操作系统中。我认为发生的情况是新内核6.1.0-18
与我安装的 NVIDIA 显卡驱动程序不兼容,导致它抛出错误。我还认为我使用以下命令进行更新:
sudo apt-mark hold linux-image-6.1.0-18 linux-headers-6.1.0-18
实际上阻止了系统删除先前内核的剩余部分。因此,dracut 仍然会检测以前的内核,并且当它找不到其余内核时,它会抛出错误。
用于删除剩余内核的命令是
sudo apt-get remove linux-image-6.1.0-17-amd64
TLDR:Debian 可用的最新内核与 NVIDIA 驱动程序不兼容,导致其抛出错误,并且这些错误留下了旧内核的残余。因此,每当尝试更新系统时,dracut 都会检测到旧内核并抛出错误。解决方案是删除旧内核的残余部分。