Linux下解决/boot分区不足

前言

在安装ubuntu16.04 的时候,根据网上教程分配了单独的物理分区,大小为200M。但是每当系统升级的时候,旧的内核版本并不会被清理,升级几次就提示boot内存不足了。思路就是卸载旧的版本内核,腾出空间。

一 问题描述

     当开机出现这个提示表示boot内存已经不足。

二 尝试解决

1.先查看已经安装的内核。在linux终端输入如下命令

dpkg --get-selections | grep linux-image

我的终端出现如下信息:

linux-image-4.13.0-36-generic			deinstall
linux-image-4.13.0-45-generic			install
linux-image-4.15.0-29-generic			install
linux-image-4.15.0-30-generic			install
linux-image-extra-4.13.0-36-generic		deinstall
linux-image-extra-4.13.0-45-generic		install
linux-image-generic-hwe-16.04			install

可以看到当前/boot中存在多个内核,install表示已安装,deinstall表示残留。

2. 查看我们当前使用的是哪个内核。使用命令:

uname -a 

我的情况如下:

z@z-Inspiron-5437:~$ uname -a
Linux z-Inspiron-5437 4.15.0-30-generic #32~16.04.1-Ubuntu SMP Thu Jul 26 20:25:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

可以看到当前使用版本是30-generic,所以需要删除其他版本。

顺带查看/boot使用情况,使用命令:df -h 

~$ df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            1.9G     0  1.9G    0% /dev
tmpfs           386M  6.2M  380M    2% /run
/dev/sda9        29G   11G   17G   39% /
tmpfs           1.9G  194M  1.7G   11% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/loop0       87M   87M     0  100% /snap/core/5145
/dev/loop2      227M  227M     0  100% /snap/pycharm-community/74
/dev/loop1      227M  227M     0  100% /snap/pycharm-community/76
/dev/loop3       87M   87M     0  100% /snap/core/4917
/dev/sda11       42G  6.2G   33G   16% /home
/dev/sda8       269M  241M   11M   96% /boot
tmpfs           386M   60K  386M    1% /run/user/1000

可以看到/boot已经占用96%。

3. 删除其他版本。使用命令:

sudo apt-get remove linux-image-4.15.0-29-generic

这里也可使用命令:

sudo apt-get purge ...

sudo apt-get autoremove ...

如过正常,会很快删除,然后同样命令方式删除其他版本即可。不过我遇到了如下问题:

~$ sudo apt-get remove linux-image-4.15.0-29-generic
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
您可能需要运行“apt-get -f install”来纠正下列错误:
下列软件包有未满足的依赖关系:
 linux-image-generic-hwe-16.04 : 依赖: linux-image-4.15.0-32-generic 但是它将不会被安装
 linux-modules-extra-4.15.0-29-generic : 依赖: linux-image-4.15.0-29-generic 但是它将不会被安装 或
                                                 linux-image-unsigned-4.15.0-29-generic 但是它将不会被安装
 linux-modules-extra-4.15.0-32-generic : 依赖: linux-image-4.15.0-32-generic 但是它将不会被安装 或
                                                 linux-image-unsigned-4.15.0-32-generic 但是它将不会被安装
E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt-get -f install”(也可以指定一个解决办法)。

按照提示,运行命令:

sudo apt-get -f install

该命令是用来解决软件包之间的依赖关系,看第二行的提示,有其他软件包会依赖将要被删除的内核。

然而会有如下错误提示:

gzip: stdout: No space left on device
E: mkinitramfs failure find 141 cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.15.0-32-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: 处理软件包 linux-image-4.15.0-32-generic (--configure)时出错:
 子进程 已安装 post-installation 脚本 返回错误状态 1
在处理时有错误发生:
 linux-image-extra-4.13.0-36-generic
 linux-image-4.15.0-32-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

本来/boot空间不足,在安装其他包就会报如上错误,有点死循环的感觉。后来我尝试把依赖要删除内核的其他包也删除,这样竟然解决了问题:

4. 同时删除依赖项和被依赖项。使用命令:

~$ sudo apt-get purge linux-image-extra-4.13.0-36-generic linux-image-4.13.0-36-generic

即将-extra-依赖项连同被依赖项同时删除。

然后再使用命令删除其他内核:

sudo apt-get purge linux-image-4.15.0-29-generic

5. 最后查看/boot空间

~$ df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            1.9G     0  1.9G    0% /dev
tmpfs           386M  6.2M  380M    2% /run
/dev/sda9        29G  9.9G   17G   38% /
tmpfs           1.9G  201M  1.7G   11% /dev/shm
tmpfs           5.0M  4.0K  5.0M    1% /run/lock
tmpfs           1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/loop0       87M   87M     0  100% /snap/core/5145
/dev/loop2      227M  227M     0  100% /snap/pycharm-community/74
/dev/loop1      227M  227M     0  100% /snap/pycharm-community/76
/dev/loop3       87M   87M     0  100% /snap/core/4917
/dev/sda11       42G  6.2G   33G   16% /home
/dev/sda8       269M  145M  107M   58% /boot
tmpfs           386M   60K  386M    1% /run/user/1000

可以看到/boot空间使用率已经降到58%。

结论

当一般情形没法解决时,不妨尝试利用sudo apt-get purge 命令将依赖项和被依赖项同时删除。当然每个人具体的情况不同,我的只是一种特例。

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值