麒麟V10系统如何重建和修复efi分区
麒麟V10系统如何重建和修复efi分区
- 故障模拟环境
操作系统版本信息:
Kylin Linux Advanced Server
release V10 (SP3) /(Lance)-aarch64-Build23/20230324
磁盘状态:
- 模拟过程过程
umount /boo/efi
然后fdisk /dev/vda删除第一个分区
重启系统,发现无法进入系统
系统会重启进入uefi shell,然后反复重启,同时uefi shell下也看不到vfat的efi分区了
- 修复过程
使用对应版本的ISO来启动选择Troubleshooting启动
选择Rescue a Kylin Linux Advanced Server system
这里输入Enter继续
然后会进入到shell窗口
在根目录下创建sysroot,并把/dev/kylin/root 挂载过去
然后再运行以下命令:
mount --bind /proc /sysroot/proc
mount --bind /sys /sysroot/sys
mount --bind /dev /sysroot/dev
然后chroot sysroot/
然后新建vda1分区,具体参考截图
然后对vda1进行mkfs.vfat
然后blkid /dev/vda1查看UUID
然后把UUID更新到/etc/fstab
然后mount -a
比如这里看到的UUID是E221-76AE
然后vi /etc/fstab把之前的替换成E221-76AE
然后mount -a 重新加载fstab的挂载
然后挂载ISO到mnt目录
mount /dev/sr0 /mnt
cd /mnt/Packages
主要是需要重装4个rpm包(grub2-efi,shim,grub2-tools和grub2-common),这时候也可以配置网络传输进来,或者用U盘挂载,因为有可能系统的本身的版本比ISO的版本要新。
rpm -Uvh –oldpackage --nodeps
然后检查/boot/efi是否已经生成了EFI文件夹,以及检查文件夹内的文件
最后grub2-mkconfig 生成grub.cfg文件
然后关机重启。一般情况下不需要调整启动项,可以先用efibootmgr查看一下。
- 修复后检查系统以及升级相关包
检查系统是否正常,然后升级强制安装的4个包
yum update grub2-efi shim grub2-tools grub2-common