Linux 有问必答:如何删除 Ubuntu 上不再使用的旧内核

提问:过去我已经在我的Ubuntu上升级了几次内核。现在我想要删除这些旧的内核镜像来节省我的磁盘空间。如何用最简单的方法删除Ubuntu上先前版本的内核?

在Ubuntu上,有几个方法来升级内核。在Ubuntu桌面中,软件更新允许你每天检查并更新到最新的内核上。在Ubuntu服务器上,最为重要的安全更新项目之一就是 unattended-upgrades 软件包会自动更新内核。然而,你也可以手动用apt-get或者aptitude命令来更新。

随着时间的流逝,持续的内核更新会在系统中积聚大量的不再使用的内核,浪费你的磁盘空间。每个内核镜像和其相关联的模块/头文件会占用200-400MB的磁盘空间,因此由不再使用的内核而浪费的磁盘空间会快速地增加。

GRUB管理器为每个旧内核都维护了一个GRUB入口,以备你想要使用它们。

作为磁盘清理的一部分,如果你不再使用这些,你可以考虑清理掉这些镜像。

如何清理旧内核镜像

在删除旧内核之前,记住最好留有2个最近的内核(最新的和上一个版本),以防主要的版本出错。现在就让我们看看如何在Ubuntu上清理旧内核。

在Ubuntu内核镜像包含了以下的包。

  • linux-image-: 内核镜像
  • linux-image-extra-: 额外的内核模块
  • linux-headers-: 内核头文件

首先检查系统中安装的内核镜像。


  1. $ dpkg --list | grep linux-image
  2. $ dpkg --list | grep linux-headers

在列出的内核镜像中,你可以移除一个特定的版本(比如3.19.0-15)。


  1. $ sudo apt-get purge linux-image-3.19.0-15
  2. $ sudo apt-get purge linux-headers-3.19.0-15

上面的命令会删除内核镜像和它相关联的内核模块和头文件。

注意如果你还没有升级内核那么删除旧内核会自动触发安装新内核。这样在删除旧内核之后,GRUB配置会自动升级来移除GRUB菜单中相关GRUB入口。

如果你有很多没用的内核,你可以用shell表达式来一次性地删除多个内核。注意这个括号表达式只在bash或者兼容的shell中才有效。


  1. $ sudo apt-get purge linux-image-3.19.0-{18,20,21,25}
  2. $ sudo apt-get purge linux-headers-3.19.0-{18,20,21,25}

上面的命令会删除4个内核镜像:3.19.0-18、3.19.0-20、3.19.0-21 和 3.19.0-25。

如果GRUB配置由于任何原因在删除旧内核后没有正确升级,你可以尝试手动用update-grub2命令来更新配置。


  1. $ sudo update-grub2

现在就重启来验证GRUB菜单是否已经正确清理了。

本文来自合作伙伴“Linux中国”,原文发布日期:2015-09-18 

时间: 2024-08-03 04:21:05

Linux 有问必答:如何删除 Ubuntu 上不再使用的旧内核的相关文章

Linux 有问必答:如何知道进程运行在哪个 CPU 内核上?

问题:我有个 Linux 进程运行在多核处理器系统上.怎样才能找出哪个 CPU 内核正在运行该进程? 当你在 多核 NUMA 处理器上运行需要较高性能的 HPC(高性能计算)程序或非常消耗网络资源的程序时,CPU/memory 的亲和力是限度其发挥最大性能的重要因素之一.在同一 NUMA 节点上调度最相关的进程可以减少缓慢的远程内存访问.像英特尔 Sandy Bridge 处理器,该处理器有一个集成的 PCIe 控制器,你可以在同一 NUMA 节点上调度网络 I/O 负载(如网卡)来突破 PCI

在Ubuntu上编译 emulat Android avd内核源代码(Linux Kernel)

因为我没有真机的环境  所以需要在模拟器中进行模拟进行,所以要下载支持模拟器的源代码版本,而goldfish这个源代码版本就是专门为模拟器环境而提供的. The goldfish project contains the kernel sources for the emulated platforms. 一.首先,到 git clone https://android.googlesource.com/kernel/goldfish.git下载Linux Kernel for Android

如何在Ubuntu上修复“Not Enough Free Disk Space On /boot”

如何在Ubuntu上修复"Not Enough Free Disk Space On /boot" 提问:如何在Ubuntu上修复"Not Enough Free Disk Space On /boot"错误? 今天,当我在升级Lubuntu 14.04的时候遇到了下面这个错误,但是很简单. "Not Enough Free Disk Space On /boot" 这是因为我的 /boot 分区被不再需要的旧内核与包塞满了. 回答: 我听说Ub

Linux 有问必答:如何在 Ubuntu 上配置网桥

Linux 有问必答:如何在 Ubuntu 上配置网桥 Question: 我需要在我的Ubuntu主机上建立一个Linux网桥,共享一个网卡给其他一些虚拟主机或在主机上创建的容器.我目前正在Ubuntu上使用网络管理器(Network Manager),所以最好>能使用网络管理器来配置一个网桥.我该怎么做? 网桥是一个硬件装备,用来将两个或多个数据链路层(OSI七层模型中第二层)互联,以使得不同网段上的网络设备可以互相访问.当你想要互联一个主机里的多个虚拟机器或者以太接口时,就需要在Linux

Linux有问必答——如何查找并移除Ubuntu上陈旧的PPA仓库

Linux有问必答--如何查找并移除Ubuntu上陈旧的PPA仓库 问题:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了"404 无法找到"的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引.我怎样才能清除这些破损而且陈旧的PPA仓库呢? Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not Found Err http://ppa.launchpad.net

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢? 在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做.如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树.你只需要安装一些与内核对应的头文件,这样就足够了. 只有在你需要生成一个定制的内核,而且内核源码中的

我是如何在Linux(Ubuntu)上工作的?

这篇文章是我一直想要写的,因为其他事情的优先级高于本文所以只能一拖再拖,最终我安静的坐下来完成了它. 我为什么选择使用Linux呢,我又是怎么使用Linux的呢?本文将一一道来. 有从Windows迁移到Linux的同学最好的一个办法:删除Windows,安装Linux. 1.选择Linux 从Windows环境迁移到Linux已经一年多了,早已适应Linux,作为一个Linuxer我想说说我的迁移过程以及平常怎么用Linux工作(主要是Java开发). Linux环境的确让我眼前一亮,原来系统

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行

Linux 有问必答:如何在Ubuntu或者Debian中启动后进入命令行 提问:我运行的是Ubuntu桌面,但是我希望启动后临时进入命令行.有什么简便的方法可以启动进入终端? Linux桌面自带了一个显示管理器(比如:GDM.KDM.LightDM),它们可以让计算机启动自动进入一个基于GUI的登录环境.然而,如果你要直接启动进入终端怎么办? 比如,你在排查桌面相关的问题或者想要运行一个不需要GUI的应用程序. 注意虽然你可以通过按下Ctrl+Alt+F1到F6临时从桌面GUI切换到虚拟终端.

Linux有问必答:如何在CentOS上安装phpMyAdmin

Linux有问必答:如何在CentOS上安装phpMyAdmin 问题:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库.在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具.虽然已经存在着一些诸如Adminer的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaD