0%

麒麟V10 grub修复

故障现象

物理机无法引导进去操作系统,光标停止在grub>,故障现象如下图所示:

01

问题原因

grub2配置文件损坏,无法进入系统。 可能是由于调整分区或MBR/GPT分区表损坏,造成grub2不能正常启动,进入了救援模式。

确定boot分区和根分区

1
2
3
4
grub > ls  #查看有哪些磁盘分区
grub > ls (hd0,gpt1)/ #EFI分区
grub > ls (hd0,gpt2)/ #boot分区
grub > ls (hd0,gpt3)/ #根分区

01

临时修复启动:

1
2
3
4
5
grub > insmod xfs
grub > set root='hd0,gpt2' #这里指定的应该是/boot分区,这个分区下应该有 vmlinuz-0-rescue以及initramfs-0-rescue文件。
grub > linux /vmlinuz-0-rescue-xxx root=/dev/mapper/klas-root #因为有独立的boot分区,所以linux 后面可以直接跟/vmlinuz,该文件存放位于/boot下
grub > initrd /initramfs-0-rescue-xxx.img
grub > boot

01

启动后进入系统,安装grub2:

1
2
3
4
5
lsblk

yum -y install grub2-aa64-modules #如果没有网络,可以挂载镜像拷贝grub2-aa64-modules.2.02-76.p05.ky10.noarch.rpm 包自行安装

grub2-install /dev/sda #如果报“grub2-install:error: /usr/lib/grub/arm64-efi/modinfo.sh doesn’t exist. Please specify --target or --directory.”,则说明未安装grub2-aa64-modules.noarch。

重新生成grub.cfg文件:

1
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

重启验证

1
reboot