当前位置: 首页>>技术问答>>正文


为什么删除旧内核不安全?

,

问题描述

我的启动驱动器上的空间不足,所以我决定删除旧内核。我找到了这个页面,它描述了我应该做的事情:Lubuntu Documentation: Remove Old Kernels

我手动删除了最老的内核,现在没关系,但我不明白一件事:在文章的最后有一些代码可以删除所有旧的内核版本,但它只标记为高级用户。

我真的不明白这里有什么危险。这听起来很愚蠢,但他们似乎说同时特定机器可能会使用多个内核。

我的Ubuntu机器上的不同应用程序是否可以同时使用不同的内核?为什么删除所有旧内核自动被认为是危险的?

最佳解决方案

删除旧内核本身并不安全,但如果删除所有内核并重新启动,您将被置于愤怒的Grub屏幕上。修复需要significant know-how(就像那样,但最后是apt-get install linux-generic)。

第一次这样做是非常令人兴奋的,但是想要清理他们的Grub菜单或恢复一些磁盘空间的人并不是在寻找刺激。

用户copy-pasting的危险来自于他们不知道并且不承认风险的代码块 – 不适用。有许多检测旧内核的例子,很少是完美的。甚至my latest effort仍有其缺陷。我们正在讨论一个可以修复的问题;如果使用不当,Ask Ubuntu上的许多帖子都可能导致永久性数据丢失。

我们试图通过标记风险来防止损害,以使用户意识到潜在的问题。在最好的情况下,用户将准备和装备以处理问题,并且在最坏的情况下,至少他们不能抱怨他们没有被警告。

次佳解决方案

旧内核是包的一部分。如果您只是删除/boot/vmlinuz-3.13.0-44-generic,您将全部留下包裹碎屑。

首先,找出您正在运行的内核。不要删除任何具有此值的名称:

$ uname -r  
3.13.0-49-generic  

因人而异。然后,问dpkg它知道什么:

$ dpkg -l linux-*

其中一些包可以删除,但还有什么?使用从dpkg -l linux-*输出中提取的一行(在MY系统上):

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

现在我们将看到其他软件包名称中包含-3.13.0-44的内容:

$ dpkg -l *-3.13.0-44*

在进行最终检查以确保当前内核(uname -r)不在包列表中之后,您可以通过所选的包管理系统开始删除它们。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1919.html,未经允许,请勿转载。