suse12sp2重启报错:grub2 error: symbol `grub_calloc' not found
问题描述:suse系统从12sp2升级到sp3,重启主机后报错如下:
解决方案:
进入救援模式准备好一个镜像iso文件,最好选择与当前系统相同的版本。开机进入bios设置从cd启动,进入救援模式。等待各种输出结束,看到"login"后,输入用户名"root",直接回车即可进入救援模式,不需要输入密码。
挂载原系统的各分区首先查看各分区的情况,使用命令:
fdisk -l
列出分区情况。然后将各个分区挂载。例如,假设 sda6 为 /boot 分区,sda7 为 swap 分区,sda8 为 / 分区,sda9 为 /home 分区,我们就可以这样挂载:
mount /dev/sda8 /mnt mount /dev/sda6 /mnt/boot mount /dev/sda9 /mnt/home
注意,swap 分区不需要挂载。要先挂在根分区,然后把其他的分区相应的挂在到根分区下。接着,
mount -t proc proc /mnt/proc mount --rbind /sys /mnt/sys mount --rbind /dev /mnt/dev
这样,所需的挂载就结束了。 再然后chroot到需要修复的系统
chroot /mnt /bin/bash
首先生成 /boot/grub2/grub.cfg:
grub2-mkconfig -o /boot/grub2/grub.cfg
然后将 GRUB2 安装到 sda:
grub2-install /dev/sda
这里,使用的命令是 grub2-install 而不是 grub-install,并且设备名称是硬盘名称sda而不是第一个分区sda1,其他的发行版比如 Ubuntu 会有所不同,不过明显 openSUSE 这样给出的命令就很明显地指明是 GRUB2 而不是 GRUB。
退出,重启这样就已经安装完毕了,接着退出重启
exit
reboot
进入原来的SUSE 系统即可。
参考官网链接:
System Fails to Boot: grub2 error: symbol `grub_calloc' not found | Support | SUSE