我的笔记本电脑上安装了多个系统。我的电脑是华硕 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 的另一种方法,我将不胜感激!:-)
答案1
我认为最好的办法是重新安装 GRUB。启动实时会话(无论你手边有哪个发行版),然后设置 chroot 环境并在其上安装 grub。
安装您将使用的分区
/
(我将调用驱动器/dev/sda
和/
分区sda1
,您的系统上的名称可能不同,您需要使用正确的名称)某处:sudo mount /dev/sda1 /mnt/foo
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
设置
chroot
环境sudo chroot /mnt/foo
创建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
现在将 grub 安装到驱动器的 MBR(记得更改
/dev/sda
为你实际想要安装它的驱动器)grub-install /dev/sda grub-install --recheck /dev/sda
退出
chroot
并卸载所有内容,以便您的运行系统恢复正常:exit sudo umount /mnt/foo/dev/pts /mnt/foo/dev /mnt/foo/proc /mnt/foo/sys /mnt/foo
尝试从驱动器启动,这次您应该有一个 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*