Linux内核升级失败原因找到
之前在这个贴子(Linux内核升级失败后回退)提到我升级内核遇到了问题,导致系统无法启动。后边又尝试了几次依旧同样的报错。最近又有了新的内核版本,现在跨版本升级,还是失败。研究好久才搞明白根本原因。原来是升级过几次后服务器/boot分区满了,所以当再次升级适合就遇到奇怪的报错。
1 | Filesystem Size Used Avail Use% Mounted on |
可以看到这个服务器虽然提供20G的内存,但是/boot分区只有371M,并且用掉了91%。当再安装新的内核时候,就会由于内存满了而失败。
我们可以将除当前使用内核之外的旧内核删除掉,再进行新的内核升级。先查下现在所用的内核版本:uname -a
1 | Linux audicdn 5.4.0-144-generic #161-Ubuntu SMP Fri Feb 3 14:49:04 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux |
查询系统中共安装了哪些内核:apt list linux –installed
1 | Listing... Done |
可看到除了144内核外,系统中还有139旧内核。现在我们将其卸载掉:
1 | sudo apt purge linux-headers-5.4.0-139-generic linux-headers-5.4.0-139 linux-image-5.4.0-139-generic linux-modules-5.4.0-139-generic linux-modules-extra-5.4.0-139-generic |
然后更新一下grub:
1 | sudo update-grub |
查看一下内存:
1 | Filesystem Size Used Avail Use% Mounted on |
可看到boot空间腾出来了。
接下来升级就好了:
1 | sudo apt update |
现在不报错了,顺利完成升级。