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

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao1 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言