在同一驱动器上安装两个发行版时该怎么办

在同一驱动器上安装两个发行版时该怎么办

我想这不是第一次有人问这个问题。但是,我还没有找到正确的搜索字符串来找到明确的答案。

我希望在同一块 SSD 上安装 Ubuntu Unity 和 Ubuntu MATE。我需要 Ubuntu Unity 作为参考系统。(因为我还在学习)。而 MATE 只是因为我对该桌面环境情有独钟。

我在另一个系统上尝试了这个,结果(可能除了我自己之外没人会感到惊讶)破​​坏了最初安装的发行版的 GRUB...幸运的是,启动修复让两者再次工作。但是,这不可能是正确的做法... 是吗?

我已经在 80GB 分区 (sda2) 上安装了 UM。安装时选择的挂载点是“/”。

SSD 采用 GPT 分区表进行分区,如下所示;

sda1 EFI Boot 512MB
sda2 80GB ext4 (Ubuntu MATE) 
sda3 80GB ext4 (Empty) 
sda4 328GB ext4 (shared data)  
sda5 2GB swap

现在,我希望在另一个 80GB 分区 sda3 上安装 Ubuntu 16.04 Unity 的文件系统,而不会破坏 UM 的 GRUB2 启动文件。我假设它会“看到”其他操作系统并将自身“添加”到 GRUB。但是,以前情况并非如此。

我无法选择“安装在旁边”选项,因为它要我更改分区,但我不想这样做……因此,我需要通过“其他”选项来执行此操作。

问题是:

选择文件系统 (sda3) 的位置后。我应该告诉它将引导加载程序放在哪里(我假设是 sda1 EFI)以及在 Ubuntu 16.04 Unity 安装期间我应该选择什么“挂载点”?“/”显然已被占用。

我真的只是想确保我这样做能够确保两个版本都被 GRUB2 正确识别。

答案1

那么不要安装 Grub。默认位置确实是 EFI 分区,但 Ubuntu mate 中的 Grub 已经安装在那里了。这个引导加载程序将被覆盖。所以不要安装引导加载程序,但在安装 Ubuntu 后,您必须启动到 Ubuntu mate 并运行sudo update-grub

安装程序的 -部分不再存在不安装引导加载程序something else的选项。要安装不带引导加载程序的 Ubuntu,请启动您的 live-USB,选择Try Ubuntu,打开终端并运行ubiquity -bubiquity --no-bootloader

启动模式 (UEFI/legacy) 有所不同

在传统模式下,我们会将引导加载程序安装到 MBR。但安装程序会让我们选择将引导加载程序安装到 PBR(分区引导记录)。这样,在安装第二个 Linux 发行版时,MBR 中的引导加载程序不会被覆盖。我们可以使用 PBR 中的引导加载程序来创建链式加载,但这并不是必需的。因此,第一个安装的发行版将引导加载程序安装在 MBR 中,后续安装的发行版将引导加载程序安装到 PBR 或不安装引导加载程序是两种干净的解决方案。

在 UEFI 模式下,引导加载程序不会安装在 MBR 中,而是安装在 ESP(系统 EFI 分区)中。据我所知,安装程序默认为第一个驱动器的 ESP(通常sda),即使我们选择了不同的位置。因此,所有发行版都会将引导加载程序安装到同一位置,覆盖之前已安装在那里的现有引导加载程序。据我所知,解决此问题的唯一方法是使用上面提到的命令安装没有引导加载程序的第二个发行版。

只有一个 Linux 发行版需要安装引导加载程序,并且只有安装了引导加载程序的系统才能控制引导加载程序。这个单一的引导加载程序能够引导所有其他 Linux 发行版。如果我们安装了多个 Linux 发行版,并且它们都将引导加载程序安装到同一位置,会发生什么情况?我认为,系统升级可能会导致一些麻烦,当升级附带新版本的 Grub 时,MBR 或 ESP 中的最新引导加载程序可能会被覆盖,并且引导加载程序指向执行升级的系统。这不会使计算机无法启动,但引导菜单的布局和引导菜单项的顺序会发生变化。

再给你一个提示: 每当您删除安装引导加载程序的系统的分区时,您都会遇到问题。此分区包含配置文件/boot/grub/grub.cfg。引导加载程序需要读取此文件,如果您删除包含此文件的分区,下次启动时您将看到 Grub 救援模式。

相关内容