Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

目录

前言
由于近来 Ubuntu 更新,当时 boot 分区只留了 200M,每次升级都需要清除之前的系统,只留一个倒也能接受,但最近一次软件更新,boot 分区再也撑不住了,幸亏之前装系统的时候给 Ubuntu 预留了一部分交换空间未使用的,并且紧接在boot分区后面,刚好可以给 boot 扩容(Ubuntu 上)。
本文简要记录自己解决报错问题以及扩容的过程,并根据自己空间使用情况尝试给出 Ubuntu 分区的合理建议。
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

一、临时方案:直接删除旧的内核

Linux的boot分区占满之后,可能会存在系统无法正常启动,无法更新的问题。造成这种情况通常是因为系统升级,boot分区下载的内核文件占用过大,且旧内核文件不会自动删除导致的,因此需要删除旧的内核

1.查看已安装的linux-image各版本和当前系统内核版本

dpkg --get-selections | grep linux-image   #查看已安装的linux-image各版本

uname -a                                   #当前系统内核版本

结果如下,可见我使用系统的内核是5.4.0-87-generic,而已安装的内核版本有多个
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

2.卸载其他版本

sudo apt-get remove linux-image-5.4.0-xx-generic  #运行卸载命令

sudo dpkg -P linux-image-5.4.0-84-generic         #若版本后面带有deinstall是因为运行上面代码后没有彻底卸载干净可运行此命令彻底卸载干净

二、彻底解决方案:对boot分区进行

因为我的boot分区彻底满了,运行上面的命令来删除旧内核一直报错,于是只能通过扩容的方式来解决。
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案
Ubuntu扩容常用工具是Gparted,因为系统之前没有安装这个工具所以需要先安装,但是由于boot完全满了,运行安装命令后还是报错,需要先删除旧版本的文件,预留一定的空间。
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

1.删除旧版本文件

ls -l /boot                #查看boot分区里的文件

sudo rm xxxx               #删除非本系统内核的版本文件

删除后可以看到可用可见增加了,已用率从原来的100%变成72%。
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

2.安装磁盘扩展工具

sudo apt-get install -y gparted 

3.运行GParted工具,并删除swap分区

因为我的swap分区紧挨着boot分区,于是准备将这部分内存扩充到boot分区里
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

4.扩容boot分区

选择boot分区,右键选择‘更改大小/移动’,将未分配的2G内存扩容到boot分区里,删除后该部分内存会变成未分配的状态
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案
调整成功后会提示调整的内容:
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

5.新建分区作为新的Swap分区

为了新建一个Swap分区,我从其他的盘里分出3G空间,并新建成新的linux-swap分区
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案
新建成功后会有提示:
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

6.确认分区操作

完成操作后记得点击应用于全部操作,负责操作将不会应用到系统分区
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

7.启动Swap分区

Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案
到这里就完成了报错的解决和boot分区的扩容,可以去系统自带的磁盘查看,此时boot和swap分区都已经发生改变了
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案

三、系统分区建议

网上一些关于 Ubuntu 如何分区的文章提出的方案大多有两种谬误,一种是分区方案太过久远,现在早已不适用,比如建议 boot 留 200M 空间的这种,另一种是针对 Linux 服务器的分区方案,并不适用普通桌面 Ubuntu 用户。
这里根据我长期使用情况,给出入门级桌面自用 Ubuntu 分区大小和顺序推荐(256G SSD,留给 Ubuntu 100 G):
Ubuntu报错“写入失败(设备上没有空间),因为错误消息指示这是由于磁盘已满”,[即./boot分区空间不足问题]的完美解决方案
说明:

  1. boot 分区:
    一些博客认为 boot 分区没有必要,但是如果不留出 boot 分区,Ubuntu 就会把引导信息写在 Windows 的ESP分区,所以对于双系统用户,特别是先装了 win10,之后装的 Ubuntu,建议设置 boot 分区,1G、2G大小基本就够用了。

  2. swap 分区:
    Ubuntu 官方推荐在 8G 内存并且不使用休眠模式时的分区大小为 3G,对于入门级桌面用户,通常不会使用休眠模式,这里多分配了 1G 后面解释。

  3. / 根目录:
    相当于 windows 的 C 盘,根据我使用的情况,30G 目前尚可。

  4. unallocated 未分配:
    备用,后面解释。

  5. home 目录:
    尽量大一些,比如像 Anaconda、Qt 等这些都很吃空间,动辄十几个G,因此可以尽可能的多留空间。

  6. 分区顺序:
    考虑到 Ubuntu 一来不够稳定,二来也许将来什么时候 boot 空间或者根目录空间不足,需要扩容解决,考虑到 GParted 分区软件可以压缩扩展分区,如果要是扩展分区,该分区前面或者后面必须有空闲,按照以上顺序,swap(对于 8G 内存的电脑通常不会用到) 和 unallocated 块可以支援 boot 分区和根目录分区,甚至是 home 分区,作为救急操作。

参考博客
Ubuntu boot 分区扩容 & 入门级分区建议
GParted Linux磁盘扩展工具的使用
如何在 Ubuntu Linux 上释放 /boot 分区的空间
在Ubuntu 18.04系统中增加和删除SWAP交换分区的方法
ubuntu16.04/boot使用满后导致无法upgrade和安装更新文件
Ubuntu下boot分区剩余空间不足解决
Ubuntu 18 boot 分区空间不足-解决方法

上一篇:机器学习之——归一化


下一篇:Ubuntu 虚拟机扩容记录