由于 /boot 已满,无法升级到 17.04,已清理旧内核

由于 /boot 已满,无法升级到 17.04,已清理旧内核

我有一个/boot带内部的分区232MiB。其中,102.2MiB都是免费的。

我已经执行了所有可能的必要清理,只安装了 2 个内核,每个内核大约占用50MiB

$ sudo du * -h | sort -n
1.0K    lost+found
1.4M    abi-4.8.0-42-generic
1.4M    abi-4.8.0-46-generic
2.1M    grub.bak/i386-pc
2.1M    grub/i386-pc
2.3M    grub/fonts
2.4M    grub.bak/fonts
3.9M    System.map-4.8.0-42-generic
3.9M    System.map-4.8.0-46-generic
4.4M    grub.bak
6.8M    grub
7.2M    vmlinuz-4.8.0-42-generic
7.2M    vmlinuz-4.8.0-46-generic
41M     initrd.img-4.8.0-42-generic
41M     initrd.img-4.8.0-46-generic
126K    grub/locale
180K    memtest86+.bin
182K    memtest86+.elf
182K    memtest86+_multiboot.bin
196K    config-4.8.0-42-generic
196K    config-4.8.0-46-generic
726K    extlinux/themes/debian-wheezy
727K    extlinux/themes
781K    extlinux

我现在尝试通过 从 Ubuntu 16.10 升级到 Ubuntu 17.04 update-manager -d,但失败并抱怨 空间不足/boot。这对我来说似乎不合理。

我可以很好地调整大小/boot,但由于它已经超过了几乎所有来源的建议,我担心这会变成一件常规的事情(而且这对我来说需要相当长的时间,因为/boot它目前挤在其他分区之间)。

我是否应该删除/boot分区并将其与合并/?这样做有什么风险?

答案1

如果您已执行系统更新,请重新启动计算机并执行以下命令:

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

这将删除所有旧内核并为您生成一个新的 Grub 菜单,其中仅包含您正在使用的当前内核。然后您可以尝试升级并查看错误是否消失。来源:

https://ubuntugenius.wordpress.com/2011/01/08/ubuntu-cleanup-how-to-remove-all-unused-linux-kernel-headers-images-and-modules/

答案2

值得一提的是,这是一个已知的错误,已修复;但修复对您没有帮助,因为大小是在安装 Ubuntu 时设置的。请在此处查看错误报告:

https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1465050

您可以通过删除当前不使用的内核来进行更新。(我会使用dpkg这种方法,以便在包管理器中跟踪更改。)这可能会释放足够的空间用于升级。不过请注意,您很可能会在不久之后遇到分区的大小限制,因此从长远来看,调整大小/boot(或创建一个新的更大的)是可取的。/boot

相关内容