银河麒麟V10下grub2修复实战:从破坏到恢复的全过程
2026/4/14 23:24:17 网站建设 项目流程

1. 银河麒麟V10下GRUB2故障模拟与修复全攻略

上周我在测试环境里手滑执行了一个错误的dd命令,直接把GRUB2引导分区给干掉了。当时心跳直接飙到120,毕竟这是台正在跑业务的银河麒麟V10服务器。不过经过两个小时的折腾,不仅成功恢复了系统,还整理出这套保姆级修复方案。下面我就用最直白的语言,带你完整走一遍从破坏到恢复的全过程。

GRUB2作为银河麒麟V10的默认引导加载程序,就像系统的"门卫"。当这个门卫突然消失时,你会发现连系统大门都进不去——屏幕上只剩下冷冰冰的"grub rescue>"提示。别慌,只要硬盘数据还在,用LiveCD启动盘就能让它起死回生。整个过程主要分三步:进入救援模式→重建引导分区→重新安装GRUB2。我建议准备个8GB以上的U盘,提前下载好银河麒麟V10的ISO镜像,关键时刻能救命。

2. 故意破坏GRUB分区(谨慎操作)

先声明:这部分操作会彻底摧毁引导分区,请在虚拟机或测试环境进行!我在物理机上翻过车,血的教训啊。

最彻底的破坏方式是用dd命令清空分区表。打开终端执行:

dd if=/dev/zero of=/dev/sda bs=512 count=1

这个命令会把磁盘前512字节(包含MBR和分区表)全部填零。执行后立即用sync命令写入磁盘,然后强制重启:

sync reboot -f

更温和的测试方式是仅删除/boot分区内容(适合快速验证修复流程):

rm -rf /boot/*

两种方式都会导致系统无法启动,区别在于前者需要重建分区表,后者只需恢复文件。我建议新手先用第二种方式练手。

3. 进入救援模式的正确姿势

当系统卡在grub rescue界面时,你需要银河麒麟V10的安装U盘。制作启动盘推荐用Ventoy这类工具,比传统刻录方式方便得多。插入U盘重启,在BIOS界面狂按F12(不同主板按键可能不同)选择从U盘启动。

关键步骤来了:

  1. 在安装界面选择"Troubleshooting"(故障排查)
  2. 进入"Rescue a Kylin Linux Advanced Server system"
  3. 看到提示符后按Ctrl+D继续
  4. 输入数字1选择"Continue"(继续)
  5. 连续按两次回车进入救援shell

这时你会看到熟悉的命令行界面,但注意当前环境是临时系统,需要通过lsblk命令确认原系统的根分区位置。比如我的硬盘根分区在/dev/sda2,就需要先挂载:

mkdir /mnt/sysmount mount /dev/sda2 /mnt/sysmount

4. chroot环境搭建与GRUB2重装

现在进入最关键的chroot环节,这步相当于"穿越"回原系统环境:

mount --bind /dev /mnt/sysmount/dev mount --bind /proc /mnt/sysmount/proc mount --bind /sys /mnt/sysmount/sys chroot /mnt/sysmount

如果/boot是独立分区(建议生产环境都这么配置),需要额外挂载:

mount /dev/sda1 /boot

接下来是GRUB2重装三连:

  1. 安装引导程序到磁盘:
grub2-install /dev/sda
  1. 生成配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
  1. 检查EFI分区(如果是UEFI启动):
mount /dev/sda1 /boot/efi grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Kylin

5. 内核与启动项修复技巧

有时候GRUB2装好了但启动项丢失,这是因为内核镜像损坏。这时需要手动安装内核:

mount /dev/cdrom /media # 挂载安装镜像 rpm -ivh /media/Packages/kernel-core-*.rpm --force

检查/etc/fstab确保/boot挂载正确:

/dev/sda1 /boot xfs defaults 0 0

最后执行exit退出chroot,reboot重启。如果看到熟悉的银河麒麟登录界面,恭喜你修复成功!

6. 避坑指南与应急方案

实际修复中我遇到过几个坑:

  • 坑1:grub2-install报错"failed to get canonical path"。这是因为没正确挂载/boot分区,先用mount /dev/sda1 /boot解决
  • 坑2:重启后卡在"loading initial ramdisk"。尝试在grub界面按e编辑启动项,在linux行末尾添加rd.break进入紧急模式
  • 坑3:UEFI模式下修复后依然无法启动。需要检查BIOS里启动顺序,确保选择的是"Kylin"引导项

对于实在搞不定的情况,可以尝试终极方案:从同版本正常机器拷贝/boot分区所有内容(注意保留原设备权限),然后重新执行grub2-mkconfig。我备了台镜像服务器专门用于紧急恢复,关键时刻真能救命。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询