双启动 12.10 2 独立硬盘 Windows 7

双启动 12.10 2 独立硬盘 Windows 7

首先,我要为这些帖子中的另一个帖子道歉。我的情况很特殊,或者说经过五天的阅读和尝试,我还是无法弄清楚,但我非常危险。所以如果我错过了,我很抱歉发布这个帖子。我充其量只是 Linux 新手,实际上可能还不到。

我可以正常加载 Ubuntu,也可以正常加载 Windows,但要在它们之间切换,我必须在 BIOS 中的 UEFI 下禁用 Ubuntu。这就像 Grub 没有正确映射到 Windows 引导加载程序/MBR。通过禁用 Grub,它将绕过它并加载 Windows,启用它允许我加载 Ubuntu。我只是希望 Grub 加载程序能够按设计工作。我知道这是操作员错误。

我没有进行启动修复,因为大多数示例不适合我的情况。大约 30 次安装后,我需要帮助。

这就是我所拥有的:

  • Windows 7 机器 HP sandy-bridge 主板四核 I5 2.8ghz Sata 带 UEFI

  • 12 GB 内存

  • 2 个独立 HDD 驱动器,每个 TB

  • 一个 /dev/sda1 上的 Windows 7

  • 另一个 /dev/sdb1 上的 Ubuntu 12.10

这让我找到了正确的方向。此外,当我放入 iso.image 时,它​​会以 efi 模式加载

http://www.linuxbsdos.com/2012/05/17/how-to-dual-boot-ubuntu-12-04-and-windows-7/

我在安装时手动对 ubuntu 进行了分区,它看起来像这样

/dev/sdb1 Fat32 /boot/efi (我认为使用 efi 是因为 ext4 无法在 UEFI 下工作)
/dev/sdb2 ext4 /
/dev/sdb3 ext4 /home
/dev/sdb4 linux-swap

安装按预期进行,然后重新启动。Grub 加载程序出现,我选择了 Ubuntu,它加载得很好。尝试重新启动进入 Windows,但出现(错误无效的 efi 文件)没有其他内容,但 Ubuntu 加载得很好。安装完成后,它将 Ubuntu 标头放在 UEFI 下,之前那里什么都没有。

安装前 bios 设置如下

 UEFI   
 Legacy Boot Sources  
 ATAPI-CD-ROM  
 Hard Drive
 Hitachi (windows drive)  
 Stxxx(ubuntu drive)  
 Network controller  

安装 Ubuntu 12.10 后,Bios 如下所示

UEFI  
Ubuntu                 (If i disable this windows loads)  

Legacy Boot Sources  
ATAPI-CD-ROM  
Hard Drive  
Stxxx(ubuntu drive)
Hitachi (windows drive)
Network controller

所以我移动了主驱动器和从驱动器,但这没有帮助。我本来打算使用 easyBCD,但害怕弄乱 Windows 提示的单独硬盘。我怎样才能让 grub 加载 Ubuntu 或 Windows,只需选择我想要的那个。我的家人也使用这台电脑,不想在 bios 中安装它们。

希望这不会让人感到困惑,我真的很感激任何帮助,哪怕只是指出正确的方向。我已经阅读了几乎所有我能找到的关于 UEFI 和双启动的内容,但大多数都是关于对 Windows 驱动器进行分区而不是单独的驱动器。

我也考虑过拔出 Windows 驱动器然后安装 Ubuntu,但不知道这样做是否仍会读取 Live CD。或者这样做是否会有所不同。

答案1

注意:我假设 Windows 也已在 UEFI 下安装,但再次查看后我不确定。/dev/sda 上有哪些分区?

Grub 似乎没有为 Windows 安装正确的条目。请查看“UEFI 中的多重引导”部分这里. 尝试启动 Ubuntu 并添加菜单项,例如:

menuentry "Microsoft Windows Vista/7/8 x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

您的安装中的“hd0,gpt1”部分的精确设置可能有所不同,并且末尾的“1ce5-7f28”的 UUID 也会不同 - 我发布的页面中的指南详细介绍了如何找到它。

要在 Ubuntu 中将条目添加到 grub,请打开终端并输入

sudo gedit /etc/grub.d/30_custom

或者可能是 40_custom。添加条目,保存,然后再次进入终端

sudo update-grub

答案2

我还在单独的硬盘上双启动 Windows 7 和 Linux。我这样做的方式是......

我使用刻录了 iso 文件的拇指驱动器将 Linux 安装在其自己的硬盘上,我使用 Unetbootin 来执行此操作。

在将 Linux 安装到其自己的硬盘驱动器之前,我从主板上拔下了 Windows 硬盘驱动器,然后从启动菜单启动,选择拇指驱动器,从那里启动 Linux,并在 Linux 启动后使用桌面上的安装选择。执行此操作时,请确保已断开其他 USB 硬盘驱动器的连接。将整个 Linux 程序安装到您选择的硬盘驱动器上。这样做可以防止 Linux 引导加载程序安装到 Windows 硬盘驱动器上,如果您在安装到其他硬盘驱动器时将 Windows 硬盘驱动器插入电源,则 Linux 引导加载程序(优于 Windows 引导加载程序)将安装在 Windows 硬盘驱动器上,并将成为您计算机启动的主要方式。

安装完成后,关机,返回并将 Windows 硬盘重新插入主板。

现在,当您启动时...您的 Windows 硬盘驱动器是启动的主驱动器,并且只需启动您的计算机就会启动 Windows7。

如果您想启动 Linux,当您启动计算机时,点击 键Esc或任何将带您进入启动菜单的键,当启动菜单出现时,使用箭头键(大多数键盘上数字键盘旁边),使用向下箭头键将突出显示的选择移动到您安装 Linux 的驱动器,按下 键Enter,Linux 将启动。

这样做,不需要在 BIOS 中进行任何更改,并将 Linux 引导加载程序远离 Windows,现在如果引导加载程序安装在 Windows 驱动器中,并且由于某种原因您需要重新安装 Windows 操作系统,您将丢失引导加载程序,并且无法启动您的 Linux 系统。

我已经这样做了几年,没有遇到任何问题。

如果您要从一个系统切换到另一个系统,请完全关闭您当前所在的系统,而不是重新启动,如果您重新启动,您当前所在的系统仍然会继续负责您的声卡和您使用的其他设备,并且一切都不会正常运行,您必须完全关闭并重新启动才能更改操作系统。

相关内容