当 /boot 分区快满时更新 Ubuntu

当 /boot 分区快满时更新 Ubuntu

我的 /boot 分区大小为 500M,安装时我以为这个大小足够了。但似乎不够。

现在几乎满了

/dev/sda1               446M  352M   61M  86% /boot

执行 apt-get upgrade 不成功:

update-initramfs: Generating /boot/initrd.img-5.11.0-25-generic
Error 24 : Write error : cannot write compressed block 
E: mkinitramfs failure cpio 141 lz4 -9 -l 24
update-initramfs: failed for /boot/initrd.img-5.11.0-25-generic with 1.
dpkg: error processing package initramfs-tools (--configure):
 installed initramfs-tools package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

/boot 的内容:

total 343M
-rw-r--r--  1 root root 248K kesä   17 01:38 config-5.11.0-22-generic
-rw-r--r--  1 root root 248K heinä   9 20:42 config-5.11.0-25-generic
drwx------  6 root root 4,0K tammi   1  1970 efi
drwxr-xr-x  4 root root 4,0K heinä  23 13:13 grub
-rw-r--r--  1 root root 153M heinä  10 14:22 initrd.img-5.11.0-22-generic
-rw-r--r--  1 root root 151M heinä  23 13:13 initrd.img-5.11.0-25-generic
lrwxrwxrwx  1 root root   28 heinä  23 06:04 initrd.img.old -> initrd.img-5.11.0-22-generic
drwx------  2 root root  16K heinä   6 08:52 lost+found
-rw-r--r--  1 root root 179K elo    18  2020 memtest86+.bin
-rw-r--r--  1 root root 181K elo    18  2020 memtest86+.elf
-rw-r--r--  1 root root 181K elo    18  2020 memtest86+_multiboot.bin
-rw-------  1 root root 5,7M kesä   17 01:38 System.map-5.11.0-22-generic
-rw-------  1 root root 5,7M heinä   9 20:42 System.map-5.11.0-25-generic
lrwxrwxrwx  1 root root   25 heinä  23 06:04 vmlinuz -> vmlinuz-5.11.0-25-generic
-rw-------  1 root root  15M kesä   17 01:55 vmlinuz-5.11.0-22-generic
-rw-------  1 root root  15M heinä   9 21:04 vmlinuz-5.11.0-25-generic
lrwxrwxrwx  1 root root   25 heinä  23 06:04 vmlinuz.old -> vmlinuz-5.11.0-22-generic

我需要调整启动分区的大小吗?有没有办法在不调整启动分区大小的情况下进行升级?

答案1

尝试

首先检查已安装的内核

dpkg --list | egrep -i --color 'linux-image|linux-headers' | wc -l

删除旧版本的内核

sudo apt --purge <kernel> autoremove

or 

sudo apt-get --purge <kernel> autoremove

保留旧内核以防万一遇到问题,这是最明智的做法

答案2

根据我在您的 /boot 卷中看到的内容,我认为您需要调整该卷的大小。 开始之前请务必备份所有内容!

我之所以这么说,是因为两个内核的 initramfs 条目占用了 /boot 中允许空间的近三分之二(其他文件占用了剩余三分之一的大部分空间)。没有空间容纳另一个内核、标头、配置和 initramfs。作为临时修复,您可以按照 @Henzo 的回答删除两个内核中较旧的一个,但我希望确保至少有一个较旧的内核,以防出现错误或文件损坏。

如果您要将启动文件放在自己的卷中,我建议(使用现代 5.x 内核)您需要留出 2 GB 的空间,以确保有足够的空间容纳两个或三个旧内核以及您要为升级安装的内核。对于现代硬盘和 SSD,这不是很大的空间,但它是一种廉价的保险,可以避免调整关键分区的大小……

相关内容