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

相关推荐
春日见1 小时前
眼在手上外参标定保姆级教学---离线手眼标定(vscode + opencv)
linux·运维·开发语言·人工智能·数码相机·计算机视觉·matlab
java小吕布2 小时前
CentOS 7 服务器性能监控实战指南
linux·服务器·centos
椰子今天很可爱2 小时前
仿照muduo库实现一个高并发服务器
linux·服务器·c++
小豆子范德萨2 小时前
cursor连接远程window服务器的WSL-ubuntu
运维·服务器·ubuntu
Xの哲學8 小时前
Linux grep命令:文本搜索的艺术与科学
linux·服务器·算法·架构·边缘计算
夜月yeyue9 小时前
Linux 调度类(sched_class)
linux·运维·c语言·单片机·性能优化
VekiSon10 小时前
Linux系统编程——IPC进程间通信:信号通信与共享内存
linux·运维·服务器
南山nash10 小时前
CentOs7 安装 Docker 详细步骤
linux·运维·docker·容器
徐先生 @_@|||10 小时前
Conda最基础使用命令
linux·windows·conda
wdfk_prog10 小时前
[Linux]学习笔记系列 -- [fs][drop_caches]
linux·笔记·学习