Grub 问题,启动修复不起作用

Grub 问题,启动修复不起作用

我的笔记本电脑上安装了多个系统。我的电脑是华硕 vivobook x202e,配备 i3、240gb ssd 和 4gb ram。我有:Ubuntu 14.04、Ubuntu 14.10、Windows 8.1 和 fedora(不记得是哪个版本)。我想安装 15.04 nightly,为此我尝试调整 ssd 上的一些分区大小。这样做之后,我的 grub 根本无法工作。当我启动我的电脑时,它直接进入 BIOS,那里没有启动选项。我尝试了启动修复,但它会在这一步被阻止:

开机修复截图

当我逐个执行命令时,除最后一个命令外,其他所有命令均正常:

sudo chroot "/mnt" apt-get purge -y --force-yes grub*-common grub-common:i386 shim-signed linux-signed*

当我执行此命令时每次都会出现以下错误:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
 grub-efi-amd64 : Depends: grub-common
                  Depends: grub-efi-amd64-bin (= 2.02~beta2-9ubuntu1)
 grub2-common : Depends: grub-common (= 2.02~beta2-9ubuntu1)
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.**

我尝试修复它,但似乎没有什么效果。由于此命令不起作用,当我在启动修复中点击继续时,它告诉我:

GRUB 仍然存在。请重试。

如果你们能告诉我修复此问题的方法或者修复 grub 的另一种方法,我将不胜感激!:-)

答案1

我认为最好的办法是重新安装 GRUB。启动实时会话(无论你手边有哪个发行版),然后设置 chroot 环境并在其上安装 grub。

  1. 安装您将使用的分区/(我将调用驱动器/dev/sda/分区sda1您的系统上的名称可能不同,您需要使用正确的名称)某处:

    sudo mount /dev/sda1 /mnt/foo
    
  2. grub绑定需要访问的目录

    sudo mount --bind /dev /mnt/foo/dev && 
    sudo mount --bind /dev/pts /mnt/foo/dev/pts && 
    sudo mount --bind /proc /mnt/foo/proc && 
    sudo mount --bind /sys /mnt/foo/sys
    
  3. 设置chroot环境

    sudo chroot /mnt/foo
    
  4. 创建grub的配置文件:

    sudo grub-mkconfig -o /boot/grub/grub.cfg
    

    如果您安装了多个操作系统,请确保上述命令列出所有操作系统。例如:

    $ sudo grub-mkconfig -o /boot/grub/grub.cfg
    Generating grub.cfg ...
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    Found linux image: /boot/vmlinuz-3.10-2-amd64
    Found initrd image: /boot/initrd.img-3.10-2-amd64
    Found linux image: /boot/vmlinuz-3.2.0-4-amd64
    Found initrd image: /boot/initrd.img-3.2.0-4-amd64
    Found linux image: /boot/vmlinuz-3.2.0-3-amd64
    Found initrd image: /boot/initrd.img-3.2.0-3-amd64
    Found linux image: /boot/vmlinuz-3.2.0-2-amd64
    Found initrd image: /boot/initrd.img-3.2.0-2-amd64
    Found memtest86+ image: /boot/memtest86+.bin
    Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
    Found Windows 7 (loader) on /dev/sda2
    done
    
  5. 现在将 grub 安装到驱动器的 MBR(记得更改/dev/sda为你实际想要安装它的驱动器)

    grub-install /dev/sda
    grub-install --recheck /dev/sda
    
  6. 退出chroot并卸载所有内容,以便您的运行系统恢复正常:

    exit
    sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
    
  7. 尝试从驱动器启动,这次您应该有一个 grub 菜单。

答案2

嘿,试试http://puppylinux.org/wikka/tahrpup它内置了所有软件,只需将其写入 USB 闪存驱动器即可,是的,它包括 grub4dos mbr grub2 和旧版 grub,以及恢复驱动器所需的所有其他工具。无论如何,小狗让我再次出发

答案3

我遇到了同样的问题,但通过首先删除 grub-common:i386 解决了它,如下所示:

sudo chroot "/mnt" apt-get purge -y --force-yes grub-common:i386

然后再次运行正常命令:

sudo chroot "/mnt" apt-get purge -y --force-yes grub*-common grub-common:i386 shim-signed linux-signed*

相关内容