删除ubuntu旧内核

时间:2023-03-08 19:41:33
删除ubuntu旧内核

  ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理.

  • 先用uname -a 查看当前内核版本:
xzc@xzc-HP-ProBook-4446s:~$ uname -a
Linux xzc-HP-ProBook-4446s 3.13.--generic #-Ubuntu SMP Mon Mar :: UTC x86_64 x86_64 x86_64 GNU/Linux

可见当前版本为3.13.0-46

  • 用dpkg --get-selections|grep linux看一下当前系统安装的内核版本:
xzc@xzc-HP-ProBook-4446s:~$ dpkg --get-selections|grep linux
libselinux1:amd64 install
linux-firmware install
linux-generic install
linux-headers-3.13.- install
linux-headers-3.13.--generic install
linux-headers-generic install
linux-image-3.13.--generic install
linux-image-extra-3.13.--generic deinstall
linux-image-extra-3.13.--generic install
linux-image-generic install
linux-libc-dev:amd64 install
linux-signed-generic install
linux-signed-image-3.13.--generic deinstall
linux-signed-image-3.13.--generic install
linux-signed-image-generic install
linux-sound-base install
pptp-linux install
syslinux install
syslinux-common install
syslinux-legacy install
util-linux install

其中linux-headers、linux-image、linux-signed开头的都是跟内核相关的.带有版本号的(如linux-image-extra-3.13.0-44-generic)才是可以删除的.注意不要删除当前使用的版本.后面的install表示已安装,deinstall表示曾经安装过,现在已被删除(已不占空间).

  • sudo apt-get purge来删除

sudo apt-get purge linux-image-extra-3.13.0-44-generic

sudo apt-get purge linux-signed-image-3.13.0-44-generic

sudo apt-get purge linux-headers-3.13.0-(这个好像会自动把linux-headers-3.13.0-46-generic删除,如果未删,则sudo apt-get purge linux-headers-3.13.0-46-generic)

注意不要使用sudo apt-get remove来删除,会出现linux-signed-image-3.13.0-44-generic deinstall.当然这时再运行purge也是可以删除的.

  • 使用sudo update-grub更新启动菜单

有网友用正则表达式写了一个脚本,没试过脚本效果怎么样:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^-]\+\)/\/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge