多启动 Windows 7、Windows 10、Debian、FreeBSD

多启动 Windows 7、Windows 10、Debian、FreeBSD

我正在尝试使用以下操作系统和 Grub 作为引导加载程序来设置我的工作站:

  • Windows 7的
  • Windows 10
  • Debian 杰西
  • FreeBSD 11.0

以上所有操作系统都安装在单独的硬盘上。我遇到了以下问题:

  1. Windows 10 正在安装引导加载程序,允许我运行 Windows 7 和 Windows 10。Debian 和 FreeBSD 被忽略。Grub 被绕过;
  2. Grub 入口菜单中没有列出 Windows 10。仍然可以通过选择 Windows 7 来访问它,然后会出现一个新的引导加载程序;
  3. Grub 被忽略,Windows 10 无法启动(检测到硬盘问题);
  4. Grub 被忽略。

我正在运行 UEFI bios。

我尝试在 UEFI 模式下安装所有内容,但没有成功(最终遇到了上面提到的第四个问题)。

任何帮助,将不胜感激。

谢谢您的回复。

附言:如果我不安装 Windows 10,一切都会按预期运行。

答案1

经过几次尝试,我终于成功安装了所有这些系统。

我没有注意到我的 bios 中的覆盖选项(确定在绕过当前设备时启动哪个设备)。即使 DVD 是在 UEFI 中启动的,Windows 7 和 Windows 10 也没有在 UEFI 模式下安装。

由于一些不为人知的原因,我不得不创建.isoWindows DVD 映像并制作可启动的 USB 设备。使用 DVD 无法以 UEFI 模式安装 Windows。

以下指南旨在帮助那些在 UEFI 模式下安装操作系统时遇到麻烦的用户。由于材料和软件的差异,用于描述 BIOS 设置的几个术语可能与您的不同。

我使用 Rufus 创建可启动的 USB 设备。不要忘记选择GPT partition scheme for UEFI。您也可以使用diskpart

第一步:安装Windows 7

  1. 输入您的个人简介;
  2. 禁用Boot secure
  3. 卸载Platform key state(取决于您的 BIOS,它还将禁用Boot secure);
  4. 设置;OS typeWindows UEFI
  5. 禁用所有内容Hard Drive BBS Priorities并将第一个条目设置为可启动 USB 设备(通常以“UEFI”为前缀);
  6. 清除Boot override条目;
  7. 保存并退出;
  8. 照常安装 Windows 7。

我发现检查 Windows 7 安装程序是否已在 UEFI 模式下启动的唯一方法是:

  • 选择一个驱动器;
  • New在Windows磁盘分区器中单击;
  • 确保创建了以下 3 个分区:SystemMSRPrimary

第二步:安装Windows 10

通过将可启动 USB 设备替换为 Windows 10 设备,重复上述针对 Windows 7 的步骤 1 至 7。照常安装 Windows 10。

我不知道是否每个人都是这种情况,但是在 UEFI 模式下启动 Windows 10 安装程序时,主板制造商的徽标会显示在 Windows 10 徽标的位置。

第三步:安装FreeBSD

我为 FreeBSD 创建了一个单独的 UEFI 分区,因为我对这个操作系统还不够熟悉。这样,我可以完全丢弃 FreeBSD 并重新安装它而无需任何修改。

  1. 通过将可启动 USB 设备替换为 FreeBSD 10 设备,对 Windows 7 重复上述步骤 1 至 7;
  2. 运行安装程序。您将注意到您已在 UEFI 模式下启动;
  3. 当被询问时选择GPT partition
  4. 创建一个 EFI 分区(我使用了大约 200MB);
  5. 根据需要创建系统分区;
  6. 添加swap分区。

第四步:安装Debian

通过将可启动 USB 设备替换为 Debian 设备,重复上述步骤 1 至 7,适用于 Windows 7。照常安装 Debian。您将注意到您已在 UEFI 模式下启动。

我不知道是否需要,但我为 Debian 创建了一个 EFI 分区。

第五步:将 FreeBSD 添加到 Grub2

安装 Debian 后,Grub2 应该列出以下条目:

  • 德比安;
  • Debian 内存测试;
  • Windows 引导加载程序;
  • 类似的东西System setup可以让你访问 bios。

在 Debian 下启动并/etc/grub.d/40_custom使用您最喜欢的文本编辑器打开文件并粘贴以下行:

menuentry "FreeBSD <enter_your_version>"{
  insmod Z
  set root=(hdX,gptY)
  chainloader /boot/loader.efi
}

其中Z是您在安装 FreeBSD 时选择的文件系统(例如 ufs2、zfs),X是安装 FreeBSD 的驱动器的编号,Y是所在分区的编号/boot

保存,退出并运行update-grub并重新启动。

如果您不记得、和的值应该是什么X,请重新启动计算机并在 grub2.Run 下输入和,其中和是第一次调用 时列出的数字。YZclsls (hdX,gptY)XYls

相关内容