双系统,重装windows后grub没了

原来在ubuntu下就遇到过这个问题。

win10在我的电脑里太卡了,于是乎重装了个win7
然后其实就是老问题了,grub引导没了,而且我还进不去opensuse了。

easybcd能显示的……忙活了半天只有grub4dos。
所以看来是我方法不对。

有没有用启动u盘恢复grub的方法??

(能用的,能进去的命令行,我能找到的只有linux secure。虽然启动u盘里有boot installed Linux,但是不能用,说是找不到,启动不了系统)

大致在论坛搜索一下应该就能找到解决方案


大致思路就是: 进 secure 模式 去 chroot 问题系统 然后 执行指令修复 grub

1赞

当我在执行grub2-mkconfig -o /boot/grub2/grub.cfg的时候提醒:
Warning: Failed to connect to lvmetad. Falling back to device scanning.
Found Windows Vista on /dev/sda1
Error:failed to lookup root is: inappropriate ioctl for device.

我看了看其他教程,如果是直接使用grub2-install /boot/grub2/grub.efi,就会出现:
grub2-install :error: cannot find a GRUB drive for /boot/grub2/grub.efi. Check your device.map.

Rescue 的挂在标识是rescue:/ # 看起来是有些问题的。

我在按照教程挂在root和home的时候,由于安装选择的推荐路径,所以mount 的时候选择的都是sda6,因为装系统在sda6,swap在sda5, 还有一个sda7应该是root和/ 还有home目录以外的东西。

我不确定是不是我mount挂载的错误。。。但是教程里所有方法我都试了都报error……

不确定具体的分区位置 可以先把它挂载到某个地方 然后进去看看 在结合分区大小确认如boot等分区


并没有修复grub的经验 :sweat_smile: 感觉得先确认是不是用的UEFI或者是传统的

找了些文章你看看 :joy:

修复GRUB2(中文wiki)

restore-grub2-boot-menu-with-uefi/

呃…网上的教程好像我都没用…
我记得Yast里面有一个可以修复grub的功能吧。

能不能用Live USB进入已经安装的系统呢,我在live usb 里面找到了这个功能但是进不去…这个网上我都没查到使用技巧

Yast 里面那个是配置引导加载器

live secure 应该是配置不了的了,只有chroot系统,然后进去操作

懒人方法:在 Windows 里装 EasyBCD :joy:

Easybcd试过了…无效…根本找不到grub所在位置

用 Live Usb,在grub启动界面按C,也可以按E编辑现成的引导,然后自己写linux,initrd什么的,然后就能进入你原来的linux系统,然后yast grub运行一下,就ok了。

恕小白多问一句…自己写的话加粗示例有教程链接么Σ(゚ω゚;≡⊃

最简单无脑的,其实你可以用Live USB进入Live系统,然后找到你原来的boot分区,查看下grub文件里怎么写的(/boot/grub2/grub.cfg),记下来,然后照着写就行了。

// 示例
set root='hd0,gpt1'  // 你的boot分区,如 hd0,msdos3 之类的,取决于自己的系统
linux   /vmlinuz-4.12.14-lp150.12.16-default
initrd  /initrd-4.12.14-lp150.12.16-default
boot

如果 set root 不行的,我记得可以直接这样写的

linux (hd0,msdos3)/vmlinuz-4.12.14-lp150.12.16-default
initrd (hd0,msdos3)/initrd-4.12.14-lp150.12.16-default
boot

@qzr0502

你能进 rescue system 吗?

如果能进,先 fdisk -l 给我看一下你的磁盘信息。如果可以的话,分别

mount /dev/sda1 /mnt
ls -l /mnt
umount /mnt

通过挂载分区并列出文件的方法来判断它可能是原来系统的什么分区。

这样我们可以得到原来系统的分区,再谈下一步。

命令行修复系统就是比较慢的。

哇女王大人都来了!:joy:
我执行过这个fdisk,然后发现 / 分区在sda2,但是按照教程我还是怎么都进不去。。。最后直接重装伺候了。。。

感觉grub在windows面前真的脆弱,在我重装suse以后,进了windows把easybcd菜单删除了,然后进系统又找不到grub了,感觉又是windows这个霸道货干的。

我现在都不敢用双系统了,只要去windows做点啥grub都能被覆盖,然后再也找不回来suse( ´▽`)

MBR麻烦,改GPT好多了

1赞

我估计原因是你的EFI分区没有正确挂载,试试把EFI分区按照原系统挂载。具体用命令
mount /dev/sda6 /mnt/boot/efi
替换文章中的
mount /dev/sd6 /mnt/boot
(假设原系统是这样挂载的: /dev/sda6 /boot/efi)

如果正确的话,在
grub2-mkconfig -o /boot/grub2/grub.cfg
这一步将会出现 “done”.

grub2-install /dev/sda
步骤将会出现
“Installation finished. No error reported.”

我没有双系统,不过查了一下,似乎在windows下面是可以用如下命令修复引导的:
bcdedit /set {bootmgr} path /boot/efi/EFI/opensuse/grubx64.efi