如何在/ boot中释放更多空间?

Modified on: Sat, 09 Jun 2018 02:39:53 +0800

我的/boot分区几乎已满,每次重启系统时都会收到警告。我已经删除了旧的内核包(linux-headers ...),实际上我这样做是为了安装自动更新附带的新内核版本。

安装新版本后,分区几乎已满。那我还能删除什么呢?是否有其他文件与旧内核映像关联?

以下是/boot分区上的文件列表:

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

目前,我正在使用3.0.0-14-generic内核。

最佳答案

你有很多未使用的内核。使用以下命令删除除最后一个内核之外的所有内核:

sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

这是:

的简写

sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

删除linux-image-x.x.x-x包也将删除linux-image-x.x.x-x-generic

标头安装在/usr/src中,用于构建out-tree内核模块(如专有的nvidia驱动程序和virtualbox)。如果未安装匹配的内核包(linux-image-*),大多数用户应删除这些头包。

要列出所有已安装的内核,请运行:

dpkg -l linux-image-\* | grep ^ii

显示可以删除的所有内核和标头的一个命令,不包括当前正在运行的内核:

kernelver=$(uname -r | sed -r 's/-[a-z]+//')
dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve $kernelver

它选择以linux-headers-<some number>linux-image-<some number>开头的所有包,打印已安装的包名称包然后排除当前加载/运行的内核(不一定是最新的内核!)。这符合在删除旧的,已知的工作内核之前测试更新内核的建议。

因此,在升级内核并重新启动以对其进行测试之后,您可以使用以下命令删除所有其他内核:

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
作者:,Lekensteyn

相关问答

添加新评论