我想在我的笔记本电脑上双启动两个 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
将只有一个配置来开始GRUB
从boot
默认设置的分区加载?
更新2
我将采用我上面提出的方案。然而,创建分区/dev/sda1
- /dev/sda3
throughGParted
会导致 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
答案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 映像。