关于ubuntu系统boot分区空间不足而又无法卸载旧内核的解决方法


转载自 https://blog.csdn.net/xhw035/article/details/52422970

今天早上打开电脑,发现本人ubuntu 16.04系统提示boot分区不足,然后仔细查看,发现果然boot分区剩余0m.顿时不知所措,原来安装ubuntu系统都是按照网上视频教程里面所讲的,给boot分区200m就够了,怎么就不够了。于是乎开始疯狂百度。终于花了一上午给整好了,也许很多人不需要这么久,可遇到的问题总是比较奇葩,中间也走了很多弯路,下面简单的分享一下。

由于之前没有截图,这里只给一张整好后的图,证明本人亲测是成功的。


对于分区空间不足,直观来讲就是两种思路,一种是扩展大小,一种清理。对于扩展,我也尝试过没有成功,也看过网上的资料,总体而言这里方法资料较少,这里有一篇博客可以参考一下:http://www.jb51.cc/article/p-mrtwliyp-zv.html,里面步骤也讲得比较清除,这里不再详细赘述。下面主要讲讲清理boot分区。

清理boot分区,网上资料就多了去了,但多类似,相互抄袭,有时候还真解决不了你的问题。常规套路无非是,先用如下命令查看系统已安装内核的版本:

 
   
  1. dpkg--get-selections|grep linuximage

本人查到结果如下:

 
    
  1. linuximage-4.4.031generic install
  2. 34generic install
  3. 36generic install
  4. extrageneric deinstall
  5. generic deinstall
  6. generic install
  7. generic install

可以看到,一共安装了三个版本的内核,其中deinstall表示卸载残留,这就是我遇到奇葩的问题,导致后面搞了很久。

然后查看当前使用的内核的版本:

unamea

本人查到结果如下:

Linuxxiaogeneric#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 aptget autoremove linuxgeneric linuxgeneric

就是将两个不需要的内核同时卸载,并且使用的是autoremove命令,它会自动解决相关依赖。执行此命令后,再次查询,结果如下:

generic deinstall
  • generic deinstall
  • 发现不需要的内核已全部卸载完毕,只是还残留,其实都这里已经是成功了,boot分区已被清理,一查果然boot分区还剩余60多m,boot分区只要没满就够用了,我这里总共才200m,但是毕竟还有残留,不爽,于是乎执行如下命令:
    sudo dpkgP linux此命令能将所有残留一次都清除掉,执行后,再次查询系统已安装的内核结果如下:
    OK,大功告成,无残留,boot分区总终剩余空间从最好开始的一张图可以看出,剩余72m。很好,一看时间,尼玛已经是上午12点多了,一上午就这么过去了。呜呜~~~~(>_<)~~~~ 

    最后总结两点:一是网上那些linux安装教程都说boot分区200m够用,真的够吗?其实估计那些老师没有亲自实践过,对于经常的更新的系统来说,其实是不够的,很多所谓老师其实也是听别人说的,人云亦云。二十网上很多清理boot分区的教程,都说相互抄袭,有时未必能解决你的问题,要想解决问题,有时还得亲自去尝试去实践。学linux就得实践出真知。

  • 版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

    关于ubuntu系统boot分区空间不足而又无法卸载旧内核的解决方法的更多相关文章

    1. Spring Boot 集成Redisson实现分布式锁详细案例

      这篇文章主要介绍了Spring Boot 集成Redisson实现分布式锁详细案例,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

    2. spring boot实现文件上传

      这篇文章主要为大家详细介绍了spring boot实现文件上传,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    3. Spring Boot + EasyExcel实现数据导入导出

      这篇文章主要介绍了Spring Boot+EasyExcel实现数据导入导出,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

    4. Spring Boot日志的打印与持久化详细解析

      Spring Boot默认使用SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用SLF4J+Logback进行日志输出

    5. SpringBoot浅析安全管理之Spring Security配置

      安全管理是软件系统必不可少的的功能。根据经典的“墨菲定律”——凡是可能,总会发生。如果系统存在安全隐患,最终必然会出现问题,这篇文章主要介绍了SpringBoot安全管理Spring Security基本配置

    6. SpringBoot与Spring中数据缓存Cache超详细讲解

      我们知道内存读取速度远大于硬盘读取速度,当需要重复获取相同数据时,一次一次的请求数据库或者远程服务,导致在数据库查询或者远程方法调用上小号大量的时间,最终导致程序性能降低,这就是数据缓存要解决的问题,学过计算机组成原理或者操作系统的同学们应该比较熟悉

    7. Spring Boot 利用注解方式整合 MyBatis

      这篇文章主要介绍了Spring Boot 利用注解方式整合 MyBatis,文章围绕主主题的相关资料展开详细的内容介绍,需要的小伙伴可以参考一下

    8. Spring Boot自动配置的原理及@Conditional条件注解

      这篇文章主要介绍了Spring Boot自动配置的原理及@Conditional条件注解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的朋友可以参考一下

    9. PHP实现对文件锁进行加锁、解锁操作的方法

      这篇文章主要介绍了PHP实现对文件锁进行加锁、解锁操作的方法,结合实例形式分析了PHP针对文件进行加锁、解锁操作的功能、实现方法与相关注意事项,需要的朋友可以参考下

    10. Spring Boot详解各类请求和响应的处理方法

      平时只是在用SpringBoot框架,但并没有详细研究过请求和响应执行的一个具体过程,所以本文主要来梳理一下SpringBoot请求和响应的处理过程

    随机推荐

    1. crontab发送一个月份的电子邮件

      ubuntu14.04邮件服务器:Postfixroot收到来自crontab的十几封电子邮件.这些邮件包含PHP警告.>我已经解决了这些警告的原因.>我已修复每个cronjobs不发送电子邮件(输出发送到>/dev/null2>&1)>我删除了之前的所有电子邮件/var/mail/root/var/spool/mail/root但我仍然每小时收到十几封电子邮件.这些电子邮件来自cronjobs,

    2. 模拟两个ubuntu服务器计算机之间的慢速连接

      我想模拟以下场景:假设我有4台ubuntu服务器机器A,B,C和D.我想在机器A和机器C之间减少20%的网络带宽,在A和B之间减少10%.使用网络模拟/限制工具来做到这一点?

    3. ubuntu-12.04 – 如何在ubuntu 12.04中卸载从源安装的redis?

      我从源代码在Ubuntu12.04上安装了redis-server.但在某些时候它无法完全安装,最后一次makeinstallcmd失败.然后我刚刚通过apt包安装.现在我很困惑哪个安装正在运行哪个conf文件?实际上我想卸载/删除通过源安装的所有内容,只是想安装一个包.转到源代码树并尝试以下命令:如果这不起作用,您可以列出软件自行安装所需的步骤:

    4. ubuntu – “apt-get source”无法找到包但“apt-get install”和“apt-get cache”可以找到它

      我正在尝试下载软件包的源代码,但是当我运行时它无法找到.但是当我运行apt-cache搜索squid3时,它会找到它.它也适用于apt-getinstallsquid3.我使用的是Ubuntu11.04服务器,这是我的/etc/apt/sources.list我已经多次更新了.我尝试了很多不同的debs,并没有发现任何其他地方的错误.这里的问题是你的二进制包(deb)与你的源包(deb-src)不

    5. ubuntu – 有没有办法检测nginx何时完成正常关闭?

      &&touchrestarted),因为即使Nginx没有完成其关闭,touch命令也会立即执行.有没有好办法呢?这样的事情怎么样?因此,pgrep将查找任何Nginx进程,而while循环将让它坐在那里直到它们全部消失.你可以改变一些有用的东西,比如睡1;/etc/init.d/Nginx停止,以便它会休眠一秒钟,然后尝试使用init.d脚本停止Nginx.你也可以在某处放置一个计数器,这样你就可以在需要太长时间时发出轰击信号.

    6. ubuntu – 如何将所有外发电子邮件从postfix重定向到单个地址进行测试

      我正在为基于Web的应用程序设置测试服务器,该应用程序发送一些电子邮件通知.有时候测试是使用真实的客户数据进行的,因此我需要保证服务器在我们测试时无法向真实客户发送电子邮件.我想要的是配置postfix,以便它接收任何外发电子邮件并将其重定向到一个电子邮件地址,而不是传递到真正的目的地.我正在运行ubuntu服务器9.10.先感谢您设置本地用户以接收所有被困邮件:你需要在main.cf中添加:然后

    7. ubuntu – vagrant无法连接到虚拟框

      当我使用基本的Vagrantfile,只配置了两条线:我看到我的虚拟框打开,但是我的流氓日志多次显示此行直到超时:然后,超时后的一段时间,虚拟框框终于要求我登录,但是太久了!所以我用流氓/流氓记录.然后在我的物理机器上,如果我“流氓ssh”.没有事情发生,直到:怎么了?

    8. ubuntu – Nginx – 转发HTTP AUTH – 用户?

      我和Nginx和Jenkins有些麻烦.我尝试使用Nginx作为Jenkins实例的反向代理,使用HTTP基本身份验证.它到目前为止工作,但我不知道如何传递带有AUTH用户名的标头?}尝试将此指令添加到您的位置块

    9. Debian / Ubuntu – 删除后如何恢复/ var / cache / apt结构?

      我在ubuntu服务器上的空间不足,所以我做了这个命令以节省空间但是现在在尝试使用apt时,我会收到以下错误:等等显然我删除了一些目录结构.有没有办法做apt-getrebuild-var-tree或类似的?

    10. 检查ubuntu上安装的rubygems版本?

      如何查看我的ubuntu盒子上安装的rubygems版本?只是一个想法,列出已安装的软件包和grep为ruby或宝石或其他:)dpkg–get-selections

    返回
    顶部