我不知道发生了什么事导致了这种情况。
我在 2006 年早期的 MacBook Pro 上安装了 Snow Leopard、Ubuntu 11.04 Natty Narwhal 和 Windows XP SP3。它是 Core Duo 单元,而不是 Core 2 Duo,因此它只有 32 位 - 型号标识符 MacBookPro1,1。我使用rEFIt 0.14用于我的启动菜单。
由于某种原因,XP 和 Ubuntu 都无法启动。我只会看到一个黑屏,左上角有一个快速闪烁的下划线。
这两个操作系统都无法启动,说明我的 MBR 中的引导加载程序存在问题。rEFIT 分区工具验证了我的 MBR 分区仍与 GPT 分区同步,因此我在从Parted Magic:
# fdisk /dev/sda
(fdisk 警告该磁盘具有 GPT。我还是继续按。)
p
(打印现有的分区表以确保其正常。)
w
(将旧的分区表写回到磁盘。这也会写入新的 MBR 引导加载程序。)
此后 XP 可以启动,但 Ubuntu 无法启动,症状相同。现在我使用 update-grub,并从 Parted Magic chroot 到 Ubuntu:
# mount /dev/sda3 /mnt
# mount --bind /dev /mnt/dev
# mount --bind /sys /mnt/sys
# mount --bind /proc /mnt/proc
# chroot /mnt
Chroot 发出一些无法识别某些组 ID 的警告。我不知道为什么会发生这种情况,也不知道这是否是个问题。
此时,虽然我仍然从 Parted Magic 的内核启动,但我正在从 Natty 的文件系统运行。
# update-grub
Update-grub 检测到我的每个操作系统,然后声称已成功完成,但仍然无法启动。
我问过同样的问题rEFIt 的 Sourceforge 支持论坛但至今没有回复。我也在 Google 上搜索了不少,发现很多人有同样的黑屏问题,但他们的情况似乎都不像我的。
感谢您给予我任何帮助。——堂吉诃德
答案1
啊,我需要运行 grub-install 而不是 update-grub。
在谷歌上搜索了一些文档后,我发现 update-grub 只会写入一个新的配置文件。我一直想做的是将一个新的引导加载程序放入我的 Ubuntu 分区的开头。
我有以下分区:
/dev/sda1 EFI FAt (Empty; required by UEFI Spec)
/dev/sda2 HFS+ Mac OS X Snow Leopard
/dev/sda3 ext4 Ubuntu 11.04
/dev/sda4 NTFS Windows XP
当我从 Parted Magic Live CD 启动时,以下命令将运行完成并报告成功:
# mount /dev/sda3 /mnt
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys
# mount --bind /dev /mnt/dev
# chroot /mnt
# /usr/sbin/update-grub /dev/sda3 ### THIS IS INCORRECT
正确的命令乍一看似乎是:
# /usr/sbin/grub-install /dev/sda3
但是,grub 警告不要将系统安装到带有阻止列表的分区上,这是它不想做的。我给它提供了“--force”选项:
# /usr/sbin/grub-install --force /dev/sda3
此后,Ubuntu 11.04 启动正常;我现在正在运行它。