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

相关推荐
Axelioc10 分钟前
conda、pip同时安装包引起混乱问题剖析
linux·python
妙哉7361 小时前
零基础学安全--shell(8)脚本相互利用
linux·运维·服务器
Curtis09801 小时前
RHCE——SELinux
linux·运维·服务器
团子tuan1 小时前
Ubuntu20.04下安装Matlab2018
linux·matlab
daizikui2 小时前
内网穿透产品 frp ngrok FastTunnel
linux·运维·网络·nginx
HealthScience2 小时前
如何正确书写sh文件/sh任务?bash任务
linux·运维·服务器
木子Linux2 小时前
【Linux打怪升级记 | 报错02】-bash: 警告:setlocale: LC_TIME: 无法改变区域选项 (zh_CN.UTF-8)
linux·运维·服务器·centos·ssh
LinuxST2 小时前
30、Firefly-rk3399定时器
linux·windows·stm32·嵌入式硬件·ubuntu
fancybit2 小时前
ubuntu 20 桌面版安装备忘
linux·运维·ubuntu
滴滴哒哒答答2 小时前
Ubuntu 硬盘分区并挂载
linux·运维·ubuntu