首先,我完全是 Linux 菜鸟,所以不要妄下判断。我需要 Ubuntu 进行双启动,而且我知道我不会经常使用它,所以我将它安装在我的另一个驱动器上。目标是不要在每次启动 PC 时弹出任何 GRUB,我只想直接进入 Windows,除非我在需要 Ubuntu 时按 F8 进入启动选择并选择 HDD(不更改启动优先级)。老实说,这只是为了一个游戏(有人玩过 Kerbal 太空计划吗?:D),在将它安装在我爸爸那台正在慢慢报废的非常老旧的电脑上之前,先试用一下 Ubuntu,让它焕然一新。
我有一个 SSD 作为 Windows 驱动器,还有一个 HDD 用于存储。我不希望 Ubuntu 安装甚至在安装下查看我的 Windows SSD。
- 我在硬盘上为 Ubuntu 创建了一个新分区(在 Windows 中),
- 断开 SSD
- 从 USB 启动到 LiveCD,并在具有 2GB 交换区域和根分区的存储硬盘上安装 Ubuntu
- 选择
/dev/sda
安装引导加载程序
我认为这应该可以正常工作,而且在我重新插入 SSD 之前,情况确实如此。我假设启动优先级与以前相同,1. SSD 2. HDD,但是从 SSD 启动时,它直接进入 Ubuntu。当我进入 bios 检查发生了什么时,启动优先级列表中没有 SSD,只有 HDD。但是,SSD 出现在启动菜单中。所以我可以手动启动 Windows。我所做的是断开 HDD,只插入 SSD 启动,然后重新连接 HDD。现在,只有 SSD 在启动优先级列表中,但我的两个驱动器都在启动菜单中。什么?但这实现了我的目标。除非我按 F8 并选择启动 HDD,否则我将直接启动 Windows。但是如果启动优先级正常工作就好了。我应该在 Ubuntu 分区上安装 ubuntu 引导加载程序吗?如果是这样,假设我也删除了 Ubuntu,我该如何从 HDD 中删除 GRUB。由于 SSD MBR 运行良好,我不需要任何 mbrfixes。我见过的所有指南都只是关于修复 Ubuntu 安装中出现的 windows 加载程序。还是我完全错了?:D
答案1
我个人认为最好将两个操作系统安装在同一驱动器上,并让该驱动器作为启动驱动器。然后启动,当 GRUB 要求您选择操作系统时,记下 Windows 选项向下多少位,然后启动 Ubuntu。
进入 Ubuntu 后,打开终端并使用以下命令更改 grub 文件:
sudo chown 我:我/etc/default/grub
现在使用以下命令在终端中打开它进行编辑:
sudo nano -b /etc/default/grub
使用箭头,转到显示 GRUB_DEFAULT 的位置,将其后的数字更改为 Windows 启动位置向下的位数减 1。(因此,如果向下的位数为 3,则可以使用 2。)现在,转到显示 GRUB_HIDDEN_TIMEOUT 的位置,将其后的数字更改为 0。在其下方,显示 GRUB_HIDDEN_TIMEOUT_QUIET,将其更改为“true”。(请确保您没有删除每个选择和我告诉您输入的内容之间的冒号,并且您正在替换之前的内容,而不是简单地添加内容。这似乎相当明显,您可能觉得澄清是不必要的,但我不希望您因为我说得不够清楚而意外弄乱您的 grub 文件而无法修复。)现在按 Ctrl+X,它会询问您是否要保存。按“Y”,它会询问您要保存的文件名。只需按“Enter”即可。现在您需要运行最后一个命令来完成此操作:
sudo 更新 grub
现在,它应该会自动启动 Windows,而不会显示 GRUB 文件夹,如果您想启动 Ubuntu,那么在计算机启动时(在开始启动操作系统之前)按住 Shift 并一直按住直到出现 GRUB 选项。您将能够从这些 GRUB 选项启动 Ubuntu。
我认为这是自动启动 Windows 的最简单方法,但 Ubuntu 仍然可用。我认为这比将两者安装在不同的驱动器上要好得多。
答案2
正如您在评论中提到的那样,您的计算机使用 EFI,您应该知道 BIOS 假设(您在安装计划中使用的假设)在基于 EFI 的计算机上经常会失败。与大多数人的想法相反,EFI 是一种全新引导系统,而不是对 BIOS 进行一些细微的调整或添加。这就是为什么每当我看到有人将 EFI 称为 BIOS,甚至称为“EFI BIOS”时,我都会感到畏缩的原因之一;将 EFI 称为 BIOS 会鼓励将 BIOS 假设应用于不属于它们的地方。
尽管如此,大多数基于 EFI 的计算机都包含兼容性支持模块 (CSM),这使它们能够像基于 BIOS 的计算机一样启动。因此,即使是基于 EFI 的计算机可能在 BIOS/CSM/传统模式下启动,所以我写的关于 BIOS 假设不适用的内容可能是完全错误的对于特定的计算机那是以特定方式配置。您必须评估您的实际启动模式,以确定是否是这种情况。请参阅这一页了解详情。简而言之,如果该/sys/firmware/efi
目录在 Ubuntu 下存在,Ubuntu 将以 EFI 模式启动;如果不存在,您将以 BIOS/CSM/传统模式启动。在 Windows 下,启动模式与分区表类型相关;如果磁盘使用 GPT,您将以 EFI 模式启动 Windows,如果是 MBR,您将以 BIOS 模式启动。请注意,您可能以一种模式启动一个操作系统,而以另一种模式启动另一个操作系统。这种跨模式安装使事情变得非常复杂。
假设您以 EFI 模式启动两个操作系统,为了实现预期目标,您必须启动一个操作系统并为另一个操作系统创建 NVRAM 条目。在 Linux 中,您可以使用该efibootmgr
工具执行此操作。不幸的是,我不知道有关它的好而全面的教程。您可以阅读其手册页 ( man efibootmgr
) 或阅读如何在各种网站上完成各种特定任务,包括这个:
- 使用 efibootmgr 添加 UEFI 条目时遇到问题
- 使用 efibootmgr 更改启动顺序
- 使用 efibootmgr 从 UEFI 菜单中移除条目
- 带有 Insyde H2O EFI bios 的 Sony VAIO 无法启动到 GRUB EFI
- “efibootmgr -v”输出的解释
搜索一下你就会找到更多。
我不太熟悉 Windows 工具,但你可以研究一下第三方简易UEFI,它是一个用于管理 EFI 启动项的 GUI 工具。
如果您在 BIOS 模式下启动这两个操作系统,我怀疑您在真正的 BIOS 和 EFI 的 CSM 检测可启动磁盘的方式上遇到了细微的差异。我自己也遇到过这种情况;CSM 在创建 BIOS/CSM/传统模式启动条目方面往往不如 BIOS 那样彻底。如果是这样,您最好的选择可能是依赖 GRUB。是的,我知道您说您不想这样做,但您可以配置 GRUB 并设置一个较短的超时时间,并默认启动 Windows,如所述在这个问题和答案中。
如果你在 BIOS/CSM/legacy 模式下启动一个操作系统,在 EFI 模式下启动另一个操作系统,我强烈建议您重新安装或重新配置,以便它们都以相同的模式启动。跨模式配置充其量也非常尴尬,因此除非您必须使用它们并且您是专家,否则我不建议您使用它们。更新您的问题并提供详细信息,或者更好的是,如果是这种情况,请发布一个包含详细信息的新问题。