Ubuntu EFI分区扩容

1.扩容原因

Ubuntu安装时默认将EFI设置为单独分区,原来EFI分区分配容量为100M,在经历一次BIOS和Firmware更新之后,占用量达到了70多M,所以选择扩容。

2.扩容踩坑

我的操作:

将Gparted工具制作为启动盘,或者制作其他Ubuntu启动盘进入Try Ubuntu,对EFI分区进行操作,因为使用中的分区不允许操作。

然后将其他容量大的分区分割出一部分,或者有未分配的磁盘直接可以进行扩容,在Gparted中执行resize操作即可。

正常情况下到这里重启应该就结束了,但是我的Gparted提示我扩容失败,扩容过程中出现了一个错误,空间分配成功,但是grow file system失败,在系统中执行lsblk是可以看到扩容成功的,但是实际执行df -h就会发现实际容量还是没变,并且我对EFI分区再执行分割操作想恢复为原来的样子也不行了。

查找了很多资料,都没有什么好的解决方案,我决定格式化EFI分区,然后恢复数据,这样就可以实现扩容的目的了。整体流程如下(如果像我一样已经进行了磁盘分割操作的可以省略2.1):

2.1磁盘分割

先使用Gparted等分区工具将分区中分割出400M未分配空间(我打算扩容400M),我这里EFI分区是第2分区,而恰好第3分区容量比较大,所以将它分割一部分。(关于未分配磁盘是否必须与待扩容分区相邻,有懂的大佬请指教)

2.2备份原EFI分区文件

因为EFI分区挂载到了/boot/efi/,所以备份/boot/efi/文件夹即可,可以将它复制到U盘中。这一步一定别忘了!

2.3格式化原EFI分区

把原EFI分区格式化(从2.1开始操作的还要需要把待分配的磁盘扩容到格式化后的分区),格式化也需要先进入Try Ubuntu,(在原系统直接格式化不知道是否可行),格式化可以使用命令行也可以使用图形化工具,但是Ubuntu自带的Disk工具只能将分区格式化为FAT16,而我这里想格式化为FAT32,所以我使用了命令:sudo mkfs.vfat -F 32 /dev/xxxx,(-F 32应该可以省略),然后将分区类型设置为EFI。

2.4恢复EFI分区数据并匹配fstab

在Try Ubuntu环境下,将备份好的EFI文件复制到新的EFI分区,到这里还没有完成,此时如果重启系统是无法进行引导的,因为EFI分区的UUID已经变了,所以修改/etc/fstab,将UUID修改为新EFI分区的UUID。

2.5重启,见证奇迹。

灵感来源:https://zhuanlan.zhihu.com/p/630578689

相关推荐
水饺编程11 小时前
第2章:Linux 基础,切换到超级用户
linux·c语言·汇编
便利店102411 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
qetfw12 小时前
Bash 变量:export、位置参数与默认值展开验证
linux·开发语言·chrome·bash
其实防守也摸鱼12 小时前
Cylab在线靶场——CTF中的通用技能
linux·数据库·学习·算法·靶场·ctf·学习网络安全
toooooop813 小时前
CentOS 7 内核 3.10.0-1160.119.1 升级指南
linux·运维·centos
码少女13 小时前
Linux——UDP协议和TCP协议
linux·网络·udp·tcp
GeW13 小时前
新质生产力发展路线图Linux、数据库、AI 一个都不能少
linux
kkkkkkkkkk_Z14 小时前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla14 小时前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
Lsetea15 小时前
curl下载HTTPS文件报23:证书验证成功与本地写入失败分层排查
linux·https·shell·ssl证书·curl