2016年09月03日 14:16:45 萧氏一郎 阅读数:7802
关于ubuntu系统boot分区空间不足而又无法卸载旧内核的解决方法
今天早上打开电脑,发现本人ubuntu 16.04系统提示boot分区不足,然后仔细查看,发现果然boot分区剩余0m.顿时不知所措,原来安装ubuntu系统都是按照网上视频教程里面所讲的,给boot分区200m就够了,怎么就不够了。于是乎开始疯狂百度。终于花了一上午给整好了,也许很多人不需要这么久,可遇到的问题总是比较奇葩,中间也走了很多弯路,下面简单的分享一下。
由于之前没有截图,这里只给一张整好后的图,证明本人亲测是成功的。
对于分区空间不足,直观来讲就是两种思路,一种是扩展大小,一种清理。对于扩展,我也尝试过没有成功,也看过网上的资料,总体而言这里方法资料较少,这里有一篇博客可以参考一下:http://blog.csdn.net/caz28/article/details/50827904 ,里面步骤也讲得比较清除,这里不再详细赘述。下面主要讲讲清理boot分区。
清理boot分区,网上资料就多了去了,但多类似,相互抄袭,有时候还真解决不了你的问题。常规套路无非是,先用如下命令查看系统已安装内核的版本:
dpkg --get-selections |grep linux-image
本人查到结果如下:
linux-image-4.4.0-31-generic install
linux-image-4.4.0-34-generic install
linux-image-4.4.0-36-generic install
linux-image-extra-4.4.0-31-generic deinstall
linux-image-extra-4.4.0-34-generic deinstall
linux-image-extra-4.4.0-36-generic install
linux-image-generic install
可以看到,一共安装了三个版本的内核,其中deinstall表示卸载残留,这就是我遇到奇葩的问题,导致后面搞了很久。
然后查看当前使用的内核的版本:
uname -a
本人查到结果如下:
Linux xiao 4.4.0-36-generic #55-Ubuntu SMP Thu Aug 11 18:01:55 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
如何发现当前使用的内核版本不是已安装最新的版本,请重启,会启动切换到已安装的最新版本。
按照网上的套路,开始执行如下命令卸载:sudo apt-get purge linux-image-3.5.0-17-generic 或者 sudo apt-get remove linux-image-3.5.0-17-generic ,按照网上所说,前者卸载不会出现残留,而后者会有linux-image-extra-4.4.0-31-generic deinstall 这样的deinstall残留,而真正卸载干净的情况是,只会显示install,不会显示deinstall,可能很多人通过这种方法,依次下载不需要的内核,也能清理boot分区,但我的情况每次卸载都是失败。网上还有中方法,用“新立得软件包管理器”去搜索已安装的内核,然后再用它来卸载不需要的内核,这种方法我也试过,也是失败告终。而且先用命令卸载失败后,再用新立得,会提示无法获取内核文件的文件锁,也就是被终端进程没有释放文件锁。所以只得重启来释放文件锁,若此反复尝试,重启几次,还是未果。
经过多次尝试,终于找到解决方案,执行命令如下:
sudo apt-get autoremove linux-image-4.4.0-31-generic linux-image-4.4.0-34-generic
就是将两个不需要的内核同时卸载,并且使用的是autoremove命令,它会自动解决相关依赖。执行此命令后,再次查询,结果如下:
linux-image-4.4.0-31-generic deinstall
linux-image-4.4.0-34-generic deinstall
linux-image-4.4.0-36-generic install
linux-image-extra-4.4.0-31-generic deinstall
linux-image-extra-4.4.0-34-generic deinstall
linux-image-extra-4.4.0-36-generic install
linux-image-generic install
发现不需要的内核已全部卸载完毕,只是还残留,其实都这里已经是成功了,boot分区已被清理,一查果然boot分区还剩余60多m,boot分区只要没满就够用了,我这里总共才200m,但是毕竟还有残留,不爽,于是乎执行如下命令:
sudo dpkg -P linux-image-4.4.0-31-generic linux-image-extra-4.4.0-31-generic linux-image-4.4.0-34-generic linux-image-extra-4.4.0-34-generic
此命令能将所有残留一次都清除掉,执行后,再次查询系统已安装的内核结果如下:
linux-image-4.4.0-36-generic install
linux-image-extra-4.4.0-36-generic install
linux-image-generic install
OK,大功告成,无残留,boot分区总终剩余空间从最好开始的一张图可以看出,剩余72m。很好,一看时间,尼玛已经是上午12点多了,一上午就这么过去了。呜呜~~~~(>_<)~~~~
最后总结两点:一是网上那些linux安装教程都说boot分区200m够用,真的够吗?其实估计那些老师没有亲自实践过,对于经常的更新的系统来说,其实是不够的,很多所谓老师其实也是听别人说的,人云亦云。二十网上很多清理boot分区的教程,都说相互抄袭,有时未必能解决你的问题,要想解决问题,有时还得亲自去尝试去实践。学linux就得实践出真知。