更多细节

更多细节

我正在尝试加载 Windows 10 和两个不同的16.04 LTS 的安装(未来可能会有其他发行版)。我已经安装了 Win10、16.04 v1 和 16.04 v2,但运行时sudo update-grub只检测到 16.04 v2 的安装并将其添加到 boot.cfg 文件中。为什么检测不到 16.04 v1,以及安装多个 Linux 发行版以便它们能被 GRUB2 检测到的最简单方法是什么?

我尝试了以下方法:

  • 添加/boot为分区 1
  • 安装 Windows(使用默认值)
  • 安装 Ubuntu v1(选择分区 4 作为/引导加载程序/dev/sda
  • 安装 Ubuntu v2(选择分区 5 作为/引导加载程序/dev/sda

这失败了,因为我只能从 Ubuntu v2(分区 5)成功更新 grub,并且我想使用 Ubuntu v1 作为默认安装。

然后我尝试:

  • 添加/boot为分区 1
  • 安装 Windows(使用默认值)
  • 安装 Ubuntu v1(选择分区 4 作为/引导加载程序/dev/sda
  • 安装 Ubuntu v2(选择分区 5 作为/引导加载程序/dev/sda5

这失败了,因为现在我只能从 Ubuntu v2(分区 5)更新 grub,并且它无法成功检测到分区 4 上的安装。

话虽如此,我该如何安装后续发行版(在第一次安装 Ubuntu 之后)而不让它们吞噬 grub 安装?我在安装过程中选择放置引导加载程序的位置时是否搞砸了什么?(有关详细安装步骤,请参阅下文)


更多细节

我使用的安装步骤:

  1. 从 Ubuntu Live USB(16.04.4 LTS)启动。
  2. 使用 gparted,将新的 GPT 写入 SSD,并将启动分区(1GiB)添加到 SSD 的起始位置。(关机)
  3. 从 Win10 安装 USB 启动。
  4. 安装 Windows 10(如果有必要,则安装 Pro 64 位)。(关机)
  5. 启动 Ubuntu Live USB,选择Try Ubuntu
  6. 使用 gparted,添加分区如下:
    • (分区号、大小、标签)
    • 4、50 GB,ubuntu1
    • 5、20 GB,Ubuntu2
    • 6、33 GB、iso
    • ...(最后),9 GB,交换
  7. 安装 Ubuntu,选择Something else并指定第 4 个/分区第一的安装 Ubuntu。
    • 引导加载程序安装在 上的默认位置/dev/sda,覆盖 Windows 引导加载程序。移除安装媒体并关机。
  8. 启动 Ubuntu v1 以确保其正常工作...成功。(关机)
  9. 启动到 Windows(启动时通过 GRUB 选择)以确保其正常工作...成功。(关机)

从这里我尝试了两种不同的方法,但都失败了......

方法 1

  1. 启动 Ubuntu Live USB,选择Try Ubuntu
  2. 单击Install Ubuntu选择Something else
    • 指定分区 5 用于/第二安装 Ubuntu。
  3. 保留引导加载程序设置并进行安装。

结果:Bootloader 与分区 5 相关联,而不是分区 4。

方法 2

  1. 启动 Ubuntu Live USB,选择Try Ubuntu
  2. 单击Install Ubuntu选择Something else
    • 指定分区 5 用于/第二安装 Ubuntu。
  3. 告诉引导加载程序安装以/dev/sda5希望 MBR 和当前引导设置保持不变。

结果:引导加载程序与分区 5 相关联,而不是分区 4,分区 4 上的 ubuntu 安装在update-grub


附注:是的,我sudo update-grub在运行时使用update-grub。我也尝试过sudo update-grub2并得到了相同的结果。
如果重要的话,这是一台带有 UEFI 的 Dell XPS 13 9360。

答案1

我不知道为什么 grub 没有检测到第二个 ubuntu,但是您可以将自定义配置添加到 grub 配置中,添加到名为 custom 的文件中:

$ ls /etc/grub.d/
00_header        10_linux      20_memtest86+  30_uefi-firmware  41_custom
05_debian_theme  20_linux_xen  30_os-prober   40_custom         README

检查配置中为 ubuntu 1 添加的内容(放置在 /boot/ 中),在 40_custom 中进行相同操作,但使用 ubunti 2 的实际 uuid

进行更改后运行 sudo update-grub。

相关内容