站长博客
站长博客随手笔记
Toggle navigation
站长博客
Home
MacOS
Database
Linux
PHP
Git
Golang
About Me
Archives
Tags
Ubuntu磁盘空间不足如何清理boot分区
2021-10-04 19:50:35
426
0
0
admin
Linux 中 /boot 是存放系统启动文件的地方,安装 ubuntu 时单独分区给 200M 足够,但是系统内核更新后,老的内核依然保存在 /boot 分区内,几次升级后,就会提示 /boot 空间不足。 我们只要删掉老的内核,将空间释放出来就可以了。 先查看系统当前使用的什么版本的内核 uname -a ``` $ uname -a Linux ubuntu-ThinkPad-Edge 4.8.0-38-generic #41-Ubuntu SMP Wed Feb 8 14:27:17 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ``` 这里显示当前内核是 4.8.0-38 查看系统中安装已经安装的内核 ``` dpkg --get-selections | grep linux-image ``` $ dpkg --get-selections | grep linux-image linux-image-4.8.0-22-generic deinstall linux-image-4.8.0-34-generic install linux-image-4.8.0-37-generic install linux-image-4.8.0-38-generic install linux-image-extra-4.8.0-22-generic deinstall linux-image-extra-4.8.0-34-generic install linux-image-extra-4.8.0-37-generic install linux-image-extra-4.8.0-38-generic install linux-image-generic install 后面显示 deinstall 的表示已经删除了的, install 表示没有删除的 这时可以看到除了当前的 4.8.0-38 之外,还有 4.8.0-34 4.8.0.37 这几个过期的版本 删除这几个版本 `sudo apt-get remove linux-image-xxx` 这里的 xxx 就是上面过期版本的版本号 还有没有删除干净的内容可以用 `sudo apt-get autoremove` 来清理 执行完毕之后,可以看到 /boot 分区里的空间又空出来了 在按照以上方法进行处理的时候,执行命令`sudo apt-get purge` 内核名称 出现了以下错误: ``` 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包将被【卸载】: linux-image-4.8.0-36-generic* linux-image-extra-4.8.0-36-generic linux-signed-image-4.8.0-36-generic* 升级了 0 个软件包,新安装了 0 个软件包,要卸载 3 个软件包,有 110 个软件包未被升级。 有 7 个软件包没有被完全安装或卸载。 解压缩后将会空出 234 MB 的空间。 您希望继续执行吗? [Y/n] y (正在读取数据库 ... 系统当前共安装有 261630 个文件和目录。) 正在卸载 linux-image-extra-4.8.0-36-generic (4.8.0-36.36~16.04.1) ... run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-36-generic /boot/vmlinuz-4.8.0-36-generic run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-36-generic /boot/vmlinuz-4.8.0-36-generic update-initramfs: Generating /boot/initrd.img-4.8.0-36-generic gzip: stdout: No space left on device E: mkinitramfs failure cpio 141 gzip 1 update-initramfs: failed for /boot/initrd.img-4.8.0-36-generic with 1. run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1 dpkg: 处理软件包 linux-image-extra-4.8.0-36-generic (--remove)时出错: 子进程 已安装 post-removal 脚本 返回错误状态 1 在处理时有错误发生: linux-image-extra-4.8.0-36-generic E: Sub-process /usr/bin/dpkg returned an error code (1) ``` 删除旧的内核失败,没办法,接着百度 子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2 本篇文章主要介绍了"子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2 ",主要涉及到子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2 方面的内容,对于子进程 已安装 pre-removal 脚本 返回了错误号 1或2 与 子进程 已安装 post-installation 脚本 返回了错误号 1或2 感兴趣的同学可以参考一下。 一、子进程 已安装 pre-removal 脚本 返回了错误号 1或2 解决办法: ``` sudo gedit /var/lib/dpkg/status ``` 找到`Package: <package name>`,比如`Package: vsftpd` 删除这部分的描述,删到下个`Package: XXX`前就好。存档后,再进行操作就OK了。 二、子进程 已安装 post-installation 脚本 返回了错误号 1或2 解决办法: ``` sudo rm /var/lib/dpkg/info/<package name>.* ``` 比如`sudo rm /var/lib/dpkg/info/vsftpd.*`,存档后,再进行操作就OK了 解决 在升级内核过程中安装新版本内核系统依赖混乱问题,安装时已存在,卸载不掉 子进程 已安装 post-removal 脚本 返回了错误号 1 在处理时有错误发生: 按照一的步骤进行操作 ``` sudo gedit /var/lib/dpkg/status ``` 找到`Package: <package name>`,比如`Package: vsftpd`删除这部分的描述,删到下个`Package: XXX`前就好 这里我出错的地方是:`linux-image-extra-4.8.0-36-generic`, 所以ctrl F 搜索到这一行, 删除`Package: linux-image-extra-4.8.0-36-generic` 到下个`Package: XXX`前就好。 强烈建议删除前先备份一下`/var/lib/dpkg/status` 这个文件,不起作用的话还能恢复原来的状态。 下来按照文章开头的内容 就可以清理成功了。
Prev:
MySQL使用ALTER USER修改密码
Next:
ADB和Fastboot最新版的谷歌官方下载链接
0
likes
426
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Table of content