修复分区后的 Grub Boot Loader

修复分区后的 Grub Boot Loader

我有一个双启动系统Windows 7的Ubuntu 12.04
系统用作Grub其引导加载程序。
但是,今天我错误地缩小了 Windows 卷并创建了一个新卷,一切正常,只是当我重新启动时发现引导加载程序出错了。
它显示:

error: no such partition  
grub rescue>  

我浏览了 Google 和几个论坛,最终发现了很多东西。
例如:

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos4) (hd0,msdos3) (hd0,msdos1)  

现在,我可以加载回 grub 菜单并正常启动 Ubuntu 和 Windows,但需要处理grub 救援作为:

grub rescue> set root=(hd0,3)/boot/grub  
grub rescue> set prefix=(hd0,3)/boot/grub  
grub rescue> insmod normal  
grub rescue> normal  

虽然这需要Grub 菜单选择操作系统,但我想摆脱这种情况。
如何修复蛴螬恢复到之前的屏幕?可能需要在 grub 中进行一些重置,我不知道该怎么做。
请提供任何方法。
附言:尝试建议一种使用普通用户帐户的方法,因为我必须花更多时间才能获取sudo密码。
谢谢。

答案1

您可能需要使用 Live 系统重新安装 GRUB。由于您没有提供输出ls (hd0,X),因此您应该根据需要进行修改:

  1. 在实时会话中,打开终端,然后输入sudo blkid。你将获得类似如下的输出:

    /dev/sda1:UUID="bf554a2f-a035-4c22-bca8-162def35a03c" 类型="ext4"
    /dev/sda2:UUID="3962db06-3776-4f38-8ab9-eab6feeccc1d" 类型="ext4"
    /dev/sdb1:UUID="AA64B45A64B42AC9" 类型="ntfs"
    /dev/sdb2:UUID="F66E431C6E42D551" 类型="ntfs"
    /dev/sdb3:UUID="75a0854b-8b6b-453f-8aec-2a081a1f19e3" 类型="swap"
    /dev/sdb5:UUID="279a18da-130b-46dd-8b54-84da48eb445f" 类型="ext4"
    /dev/sdg1:UUID="393cd35e-b827-4dea-acb5-2a66f2369dce" 类型="ext4"
  2. 在这里你可以看到我的硬盘在 中,sda而我的 pendrive 在 中sdg。我们感兴趣的是sda。现在让我们看看分区的描述。我们想要 ext4 的分区。在我的情况下,我有两个 ext4 分区。这是因为我有分离的(这似乎也是你的情况),我会注意到这一点,但让我们假设你现在/boot没有分离,并且你的(根)是。现在我们将挂载 sda1。/boot/sda1

    sudo mount /dev/sda1 /mnt
    sudo mount -o bind /proc /mnt/proc
    sudo mount -o bind /dev /mnt/dev
    sudo mount -o bind /dev/pts /mnt/dev/pts
    sudo mount -o bind /sys /mnt/sys
    

    技术说明:这是最低要求。如果你有一个/boot分区(或任何其他分区),只需以相同的方式安装它,就我的情况而言sudo mount /dev/sda2 /mnt/boot。请注意,我使用了/mnt/boot,如果使用其他挂载点则应进行更改。

  3. 现在我们继续对分区进行 CHROOTING:

    sudo chroot /mnt /bin/bash
    
  4. 现在我们继续安装 grub:

    sudo grub-install /dev/sda
    
  5. 完成。现在重新启动系统。这应该会添加 Windows 和 Ubuntu 的条目。

相关内容