在硬盘上安装 Ubuntu,在 USB 上安装 GRUB

在硬盘上安装 Ubuntu,在 USB 上安装 GRUB

我想在硬盘上安装 ubuntu 16.04,但我想保留 Windows 7。

我想要的是将 ubuntu 安装在 HDD 的一个分区上,但我希望只有插入 USB 驱动器时它才能启动,如果我不插入 USB 驱动器,它将直接启动到 Windows 7。

假设我有 50 Gb 的可用未使用空间,其余空间用于 Windows 7 操作系统。

所以我在 50 Gb 的可用空间上安装了 Ubuntu 16.04,但我不想让它取代 Windows 引导加载程序,我想将 ubuntu 启动 GRUB 安装在 USB 上,这样只有插入 USB 驱动器才能启动到 Ubuntu。

请帮忙,谢谢。

答案1

如果你有兴趣启动 Windows,有一种方法可以实现类似的行为最多但偶尔会启动 Ubuntu。

您可以更改 Grub 引导加载程序的行为,使其默认自动选择上次启动的操作系统。例如,如果您上次启动了 Windows,那么它将再次启动 Windows。

当 grub 首次加载时,会出现一个超时(通常为 10 秒,但可以更改),如果您在此时间之前未选择操作系统,它将启动默认系统。

为了让 grub 默认使用最后选择的操作系统,您需要调整位于的文件/etc/default/grub

sudo nano /etc/default/grub可能是编辑此文件最简单的方法。

您想将该行更改GRUB_DEFAULT=0GRUB_DEFAULT=saved,并添加该行GRUB_SAVEDEFAULT=true

退出并保存文件后,运行sudo update-grub并在下次重新启动时,grub 的默认选择将是最后启动的操作系统。

对于传统启动,安装 Ubuntu(以及随后的 grub 引导加载程序)在技术上确实取代了‘Windows 引导加载程序’(“GRUB 2 通常将其引导加载程序信息写入主引导记录之外和第一个分区之前的区域中”,这是‘Windows 引导加载程序’所在的位置)但是 grub 在被选中时会很顺利地加载 Windows。

使用 UEFI 启动 Windows 时,它甚至不会取代 Windows 引导加载程序。Grub 成为第一个 UEFI 启动选项,如果选择了 Windows,则 Grub 只会将其指向 Windows 启动管理器,然后您就可以开始了。

“Windows 引导加载程序”(或者他们似乎称之为 Windows 引导管理器)没有被替换或更改,您的机器只是先加载 grub。

下面是我的 grub 引导加载程序显示的示例:

在此处输入图片描述

我提到这一切是因为你说你“不想替换 Windows 引导加载程序”,但除非你不想这样做有特别复杂的原因,否则在你的硬盘上安装 grub 引导加载程序应该不会导致任何问题。

通过更改 grub 默认选择,您将获得几乎相同的行为,但 grub 会等待您选择,因此会有几秒钟的短暂延迟。

这也意味着您不必每次想要启动 Ubuntu 时都去获取 USB。

(值得一提的是,如果您的 Windows 安装使用 UEFI,那么在安装 Ubuntu 时,您需要按下f12以获取“一次性启动菜单”,然后在 UEFI 启动选项下选择 USB,以确保 Ubuntu 也安装为 UEFI。)

下面的图片向您展示了我的意思,其中“UEFI:TDK”是我想要使用的 USB 记忆棒:

在此处输入图片描述

答案2

下面的方法虽然不太优雅,但是很简单。

使用 mkusb 制作任何方便的 Ubuntu ISO 文件的持久 USB。

将 USB 驱动器放入 gparted。

删除除 125MB fat32 分区(带有启动标志的分区)之外的所有 USB 分区。

删除引导标志。

在 gparted 中复制内部 Ubuntu 分区的 UUID。

关闭 gparted。

(如果有内部 grub.cfg 文件,您也可以使用文本编辑器打开内部驱动器的 grub.cfg 文件并复制 UUID 和内核版本)。

用文本编辑器打开USB的boot/grub/grub.cfg

将现有的菜单项替换为以下内容:

menuentry "ubuntu" {
      search --no-floppy --fs-uuid --set=root uuid-number-of-your-internal-ubuntu-partition
    linux   /vmlinuz-kernel-version root=UUID=uuid-number-of-your-internal-ubuntu-partition quiet splash --
    initrd  /initrd.img-kernel-version
}

uuid-number-of-your-internal-ubuntu-partition 是内部 UUID,kernel-version 是您的内部 Ubuntu 安装的内核版本(16.04.1 为 4.4.0-31-generic)。

返回 gparted 并重置启动标志。

您可以在 grub 中将此启动闪存驱动器设置为第一个硬盘驱动器,或者在启动时按 F12 来选择它。

将 Ubuntu 安装到硬盘的另一种方法是在分区时选择“其他”。

这将允许您将 Ubuntu 安装到 HDD 并将引导加载程序保存到闪存驱动器。

答案3

不是。查看此链接了解完整解释 https://help.ubuntu.com/community/MultiOSBoot

答案4

您可以通过在安装 Ubuntu 之前关闭内置硬盘上的 ESP 标志来实现这一点,当然还要确保在外部驱动器上创建 EFI 分区,并告诉 Ubuntu 安装程序您的外部驱动器是您希望引导加载程序执行的设备。您可能认为步骤 2 和 3 就足够了,但是如果 Ubuntu 安装程序在您的内置驱动器上看到现有的 EFI 分区,它会忽略您在外部驱动器上安装 grub 的请求,这是一个长期存在的错误。因此,断开内置驱动器的连接是可行的,但是您可以在安装之前使用 gparted 关闭内置驱动器的 EFI 分区上的 ESP 标志来获得相同的效果。

完整说明在这里:https://askubuntu.com/a/1056079/152287

相关内容