exoplanet的个人博客分享 http://blog.sciencenet.cn/u/exoplanet

博文

[整理]ubuntu16.04/boot使用满后导致无法upgrade和安装更新文件

已有 8987 次阅读 2017-3-18 17:38 |个人分类:Linux|系统分类:科研笔记

ubuntu使用一段后,开机经常提示错误,但是提交报告与否也用处不大,并且其他使用也没发现问题,就没当回事。

最近发现貌似没法更新软件了,还提示 /boot 使用100%,no free space.

于是下决心解决。


问题来源:

sudo apt-get upgrade的时候,貌似又要用到一些依赖的包,但是这些包并没有装,装的时候,就发现内核貌似也更新,但是遇到问题。所以内核也没能更新。

后来知道是因为,/boot下面已经满了(可以cd进去然后ll看一下,会发现很多个不同版本文件都存在),所以在更新内核的时候没法再往里面写入导致错误。(我boot只有170M左右)。找到下列网站可以详细参考。

http://askubuntu.com/questions/171209/my-boot-partition-hit-100-and-now-i-cant-upgrade-cant-remove-old-kernels-to

按照里面最高票回答(Freeing Up Space on the /boot File System)部分可以解决。

这里提取核心步骤:


20170920 更新优化后的处理步骤:

0、进入/boot 查看所有的版本文件

1 、查看当前使用内核版本号:

uname -a


2、查看所有的版本:[1]

sudo dpkg --get-selections |grep linux


3、把标记install的旧的版本都删掉:

sudo apt autoremove linux-headers-4.4.0-xx  linux-image-4.4.0-xx-generic

注:这里的linux-headers-4.4.0-xx-generic linux-image-extra-4.4.0-xx-generic
两个文件不需要写,会顺带被删除.


4、再次运行步骤2命令,如果有标记为deinstall的内核文件,参考下面进行删除。[2]

sudo dpkg -P linux-image-3.5.0-4[2-9]-generic      

sudo dpkg -P linux-image-3.5.0-51-generic  
这样就可以清理干净boot空间和旧的内核了。


5、再检查/boot/下是否还存在对应旧版本文件

这时候多余的旧版本的各种文件都已经没有了。如果还有,可能会多出来一个
initrd.img-xxxxxxxxx-generic。千万不要再删除了!

如果误删,可能导致重启后无法正常进入系统。例如出现:

a、大写锁定键一直闪烁,停留在空白(Ubuntu紫色)纯屏页面。

b、或者黑屏终端,一堆代码,最后是 end Kernel panic xxxxxxxxxxxxxxxx

原因:”ubuntu升级的时候默认会保留多个内核,启动的时候选择旧的内核启动。如果只有一个内核的化,进恢复模式“[3]

解决方案:

这时候强制关机,不选第一项Ubuntu启动,而是选择下面的其他选项,然后选个低版本内核启动。

进入系统后,再sudo apt-get upgrade一下,再查看/boot,你会发现刚才删除的initrd.img-xxxxxxxxx-generic 又回来了。问题解决。


sudo apt-get purge  xxx

注意只需要删除linux-image-4.4.0-66-generic这个格式的文件,
就会同时删除linux-image-extra-4.4.0-66-generic文件

只需要删除linux-headers-4.4.0-62这个格式的文件,
就会同时删除linux-headers-4.4.0-62-generic 的文件

这一步必须在boot空间释放后才可以,否则可能会因为boot没有足够空间而遇到错误。


其他的可能用到的老笨步骤

cd /boot 进入后,删除除这个版本号外的其他版本的
config-xxx

vmlinuz initrd, abi and System.map

等所有文件。个人建议如果boot空间很小的话,把高于当前使用内核版本的也删除掉,因为那些对应的文件虽然在/boot下,但是其实这个高的内核并没有安装完全(应该是之前旧版本太多,导致装更加新的版本时,装到一半boot满了,导致部分高版本相应的文件已经复制到boot下没能删除)。

只保留uname -a显示出来的使用版本的所有文件就好。

sudo rm xxx删除后,

df -h 可以查看boot分区的空间已经不是全满,释放了很多。


参考文献:

1、http://www.cnblogs.com/xiangzi888/archive/2012/03/18/2404926.html

2、http://blog.csdn.net/iam333/article/details/37874683

3、http://www.oschina.net/question/559268_2164497



https://blog.sciencenet.cn/blog-506416-1040221.html

上一篇:笔记:IDL 画多幅图时的各种问题 [不断更新]
下一篇:解决IRAF下用display在ds9下打开图像尺寸问题
收藏 IP: 159.226.171.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-20 10:46

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部