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

相关推荐
NJCloud5 小时前
Ansible(三)——Zabbix 监控系统部署与敏感信息加密
linux·运维·chrome·信息可视化·ansible·zabbix
ltl5 小时前
Cgroups v2:为什么内存限制设了,宿主机数据库还是被 OOM
linux
NJCloud5 小时前
TiDB 集群部署与 MySQL 兼容性适配实战
linux·运维·数据库·mysql·tidb
2401_868534785 小时前
UNIX常用命令英文全称与中文解释整理
linux·运维
阿祖zu6 小时前
开源项目-让本地 Codex 临时接管远程 Linux 服务,实现快速运维
linux·gpt·agent
Android系统攻城狮9 小时前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光9 小时前
playbook剧本(2)--Ansible变量
linux·运维·网络
lengjingzju9 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
大鹏的NLP博客10 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
tedcloud12310 小时前
book-to-skill 怎么部署?把技术书和项目文档变成 AI Agent 可复用知识
linux·运维·服务器·人工智能·开源