我最近在我的 MacBook 上安装了 Ubuntu 9.10,希望创建一个双启动系统...我使用 rEFIt 来启动。
安装过程非常顺利,直到安装 grub。尝试创建双启动系统,我有几个分区,Ubuntu 没有询问将 grub 放在哪里;它只是选择一个分区并将其放在那里。
过去,Debian 可以在同一个分区中与 grub 和 Debian 很好地配合使用。(不过,Debian、macbook 和驱动程序是高维护的三部曲……)
分区检查器是这样说的:
*** Report for internal hard disk ***
Current GPT partition table:
# Start LBA End LBA Type
1 40 409639 EFI System (FAT)
2 409640 332556807 Mac OS X HFS+
3 332820480 391414229 EFI System (FAT)
4 391414230 440242355 Basic Data
5 440242356 476678383 Basic Data
6 476678384 488397134 Linux Swap
Current MBR partition table:
# A Start LBA End LBA Type
1 1 409639 ee EFI Protective
2 * 409640 332556807 af Mac OS X HFS+
3 332820480 391414229 83 Linux
4 391414230 440242355 83 Linux
MBR contents:
Boot Code: Unknown, but bootable
Partition at LBA 40:
Boot Code: None (Non-system disk message)
File System: FAT32
Listed in GPT as partition 1, type EFI System (FAT)
Partition at LBA 409640:
Boot Code: None
File System: HFS Extended (HFS+)
Listed in GPT as partition 2, type Mac OS X HFS+
Listed in MBR as partition 2, type af Mac OS X HFS+, active
Partition at LBA 332820480:
Boot Code: None
File System: ext3
Listed in GPT as partition 3, type EFI System (FAT)
Listed in MBR as partition 3, type 83 Linux
Partition at LBA 391414230:
Boot Code: None
File System: ext3
Listed in GPT as partition 4, type Basic Data
Listed in MBR as partition 4, type 83 Linux
Partition at LBA 440242356:
Boot Code: None (Non-system disk message)
File System: FAT32
Listed in GPT as partition 5, type Basic Data
Partition at LBA 476678384:
Boot Code: None
File System: Unknown
Listed in GPT as partition 6, type Linux Swap
我很确定 grub 被放在了 GPT #3 中。我希望它位于 GPT #4 中,Ubuntu 也位于那里。我该如何移动它,即执行旧的卸载/安装?
LiveUSB?LiveCD?我在终端里该写些什么……?
干杯!
答案1
有一个很好的Grub 2 指南在 Ubuntu 论坛上;这是我在最近的 Grub2 冒险. 这是另一个很好的 Grub2 指南以及 Ubuntu 的Grub2 维基页面。
您可以通过覆盖 Grub 写入该分区的引导扇区的引导代码来“卸载”该分区中的 Grub。理想情况下,您应该备份 Grub 安装到该分区之前的内容。我认为 Grub 不会为您创建此备份,因此如果您想要那里有某些特定的东西(Grub 除外),则需要另一个工具来提供它。
如果您愿意,您可以完全卸载 Grub 包,然后重新安装(我怀疑这没有必要)。要从 LiveCD 系统执行此操作,您需要chroot进入您要修复的系统。# chroot (assumes you've mounted the partition to fix to /mnt) sudo mount --bind /dev /mnt/dev sudo chroot /mnt # backup! cp /etc/default/grub /etc/default/grub.old cp -R /etc/grub.d /etc/grub.d.old cp -R /boot/grub /boot/grub.old # purge apt-get purge grub2 grub-pc # reinstall apt-get install grub2 grub-pc # grub install -- make sure /dev/sda is the right drive!! grub-install /dev/sda4 update-grub
如果一切顺利,您可以退出chroot,卸载您的文件系统(首先是 /mnt/dev),然后重新启动。如果你需要做的只是将 Grub 安装到正确的分区,那么真的您需要做的是启动 LiveCD/LiveUSB,挂载系统分区,检查系统
/boot/grub
是否正确设置,然后运行grub-setup
。如果您需要重新配置 Grub 菜单或执行其他步骤,请使用chroot按照前面描述的步骤操作。
假设您已启动 LiveCD 并将系统驱动器安装到/mnt
。检查 是否/mnt/boot/grub
存在,并包含正确的文件(一堆*.mod
文件、一些.img
文件和grub.cfg
)。如果是,请运行此命令(不是从chroot):# install grub to partition boot sector on sda4 # this assumes the partition table you show is on /dev/sda # make sure path & device are correct !!! sudo grub-setup -d /mnt/boot/grub /dev/sda4