两个 Linux 系统双启动分区

两个 Linux 系统双启动分区

我想在我的笔记本电脑上双启动两个 Linux 发行版。一台稳定的(Mint 18,我发现它与 Yoga 3 Pro 配合得很好)和一台可能会经常更换的;我想尝试不同的发行版,如 Fedora 或 OpenSuse,而不破坏我稳定的工作环境。

我想知道我应该如何在这里对启动分区进行分区。我想以最简单的方式完成此操作,以便轻松删除第二个 Linux 安装。

我正在考虑有两个引导分区,每个 Linux 一个。在安装主 Linux 的过程中,我可以选择将引导加载程序放入 MBR,然后将第二个引导加载程序放入正确的分区。但每次安装新的测试发行版时,我都必须更新 Mint 的 grub;这是一个好的解决方案吗?另外,我不确定是否可以有两个 EFI 分区。

这里最稳定和安全的选择是什么?


更新1

首先,我做了更多研究,发现我对一些事情感到困惑。我不知道Device for boot loader installation[1] 在 UEFI 模式下安装期间完全忽略 Mint 安装期间的选项 [2] (1). Ubuntu 安装程序 (2) 中的命名也很糟糕,让我相信它ESP正在执行分区工作/boot,而不是MBR.

知道我正在考虑以下分区方案(256GB SSD驱动器):

方案:

/dev/sda1   EFI System Partition   fat32    /boot/efi    512MB    (ESP partition)
/dev/sda2                          ext2     /boot        512MB    (boot for Mint)
/dev/sda3                          ext2                  512MB    (boot for other)
/dev/sda4                          lvm2    ( / for each Linux, shared home, swap )

然后在安装每个 Linux 的过程中,我会创建 4 个正确分区的安装点:

  • /boot/efi
  • /boot
  • /
  • swap

这合理吗?我是否正确理解在 EFI 模式下 Mint 安装期间选择的选项Device for boot loader installation是多余的,我不应该再担心它?我是否正确理解现在共享ESP将只有一个配置来开始GRUBboot默认设置的分区加载?


更新2

我将采用我上面提出的方案。然而,创建分区/dev/sda1- /dev/sda3throughGParted会导致 Mint 安装程序出现一些错误。我通过销毁这些分区并从 Mint 安装程序再次创建它们来重复这个过程,一切都很顺利。/dev/sda4我在运行 Mint 安装程序之前创建GParted并从终端创建了本地卷。本教程是关于 LVM 的对此非常有帮助[4]。


更新3

安装 Mint 后,我​​继续安装 Fedora (3);之后,系统默认启动到Fedora,但在BIOS中我可以选择Ubuntu或Fedora,并且它们都运行良好。

我将 BIOS 更改为首先从 Mint 启动,然后从 Mint 执行:

sudo grub-mkconfig -o /boot/grub/grub.cfg

这让我现在基本上可以启动两个 Linux。

因为我假设其他 Linux 是用于测试目的,所以我或多或少达到了我想要的目的。Fedora例如,如果我删除并安装在其位置OpenSuse,我可能只需再次执行上述命令即可获得稳定的引导系统。


评论

(0) 我会一直更新这个问题,以防将来有人发现它有用。

(1) 我前段时间在另一台有两个硬盘驱动器(独立设备)的计算机上进行了安装。/dev/sda完全适用于 Windows 10,我想在/dev/sdb.尽管我选择了它,Device for boot loader installation因为/dev/sdb它在另一个驱动器上找到了 ESP 并使用该分区进行启动。

(2)EFI System Partition (ESP)在 Mint (Ubuntu) 安装程序中命名为 EFI boot partition[3]。

(3) 我必须非常小心地选择挂载点并对她进行分区。


链接:

[1]https://i.stack.imgur.com/Pj1wt.png

[2]https://ubuntuforums.org/showthread.php?t=2309806&p=13422658#post13422658

[3]https://askubuntu.com/a/501360

[4]https://www.howtoforge.com/linux_lvm

答案1

如果您使用 MBR,GRUB 可以调用os-prober扫描所有分区以查找可引导系统。 os-prober(及其表亲,linux-boot-prober,由 调用os-prober)将搜索所有已知磁盘及其分区以查找可启动系统。对于 Linux 系统,它将搜索包含./vmlinuz*./initrd*/./initramfs*或包含名为 的目录/boot和以前的文件的分区。

grub-mkconfig如果可以找到它,将尝试使用os-prober它,并打印grub.cfg包含它找到的所有系统的信息。

就我个人而言,我发现这比使用 UEFI 的工作量要少,但请继续阅读。


对于UEFI,首先你肯定可以有多个EFI分区。然而,在多重引导系统中拥有多个 EFI 分区并不是一个好主意。 这个SU的答案详细说明了为什么,主要是因为您可以在单个 EFI 分区内拥有子目录,并且每个子目录中可以拥有不同的系统。您只需将 EFI 分区的不同位置绑定挂载为/boot每个系统上的目录即可。

例如,您可以创建两个不同的加载器,例如:

\loader\entries\mint.conf

title    Mint Linux
linux    \mint\vmlinuz
initrd   \mint\initrd.img
options  root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw

\loader\entries\centos.conf

title    CentOS
linux    \centos\vmlinuz-linux
initrd   \centos\initramfs-linux.img
options  root=PARTUUID=14420948-2cea-4de7-b042-40f67c618661 rw

您需要引导加载程序的 UUID 才能知道要使用哪个根文件系统。现在,您可以将每个安装的内核和初始 ramfs 放入 EFI 分区上各自的目录中(一个在mint,另一个在centos)。

然后,在每个系统上进行/etc/fstab绑定挂载,以使用 EFI 分区的右侧部分作为/boot目录。例如:

<EFI part> /efi vfat defaults 0 0
/efi/EFI/mint /boot none defaults,bind 0 0

<EFI part> /efi vfat defaults 0 0
/efi/EFI/centos /boot none defaults,bind 0 0

现在,每个系统都能够在升级时将其内核放置在正确的位置,并且通过 UEFI 进行引导。

链接:

答案2

如果你创建一个单独的/boot分区并将Grub安装到MBR,则不需要每次切换操作系统时都更新Mint的grub。我的笔记本电脑上有这样的设置,其中有一个 Mint 分区、一个/boot分区和另一个我用来尝试不同发行版的分区。每当我安装一个新的发行版时,我只需安装os-prober并运行grub-mkconfig -o /boot/grub/grub.cfg(显然安装了 /boot 分区),它就可以正常工作。您唯一需要注意的是在安装新发行版时删除引导分区上的旧内核和 initramfs 映像。

相关内容