是否需要为多个 Linux 操作系统安装创建单独的 /boot 分区?

是否需要为多个 Linux 操作系统安装创建单独的 /boot 分区?

是否需要为多个 Linux 操作系统安装创建单独的 /boot 分区?

答案1

如今,任何主要的 Linux 发行版都不需要单独的 /boot 分区(这样做甚至会引起一些麻烦)。如果您尝试在单个引导分区上运行多个 Linux 安装,您很可能会遇到引导问题。最好的办法是为所有 Linux 分配一个交换分区,然后为每个安装分配一个 ext3/4/BTRFS/任何分区,除非您有特殊原因这样做,否则您将在其中放置所有系统以及每个 Linux 安装的用户文件。您可以根据需要拥有单独的数据分区/驱动器,并根据需要将其安装在每个操作系统中。

答案2

您是否需要为每个 Linux 分配一个单独的 /boot 分区?

每个发行版都会假设它是唯一修改 /boot 的东西(通过yum, apt, ...)。不要让多个发行版管理相同的内容/boot 目录(分割)。系统升级将有效地争夺这一点。

如果您将一个分区专用于 /boot,则每个发行版通常都需要自己的分区。

/boot是什么?

这是一个不太容易理解的话题,请小心阅读。 /boot 目录充当桥梁,允许正在运行的操作系统读取和写入引导加载程序的配置。它在运行时不存在任何其他用途。

/boot 目录是一个存储引导加载程序的配置和插件以及内核和 initramfs 的空间。

当您启动系统时,计算机的固件将启动引导加载程序,引导加载程序将读取/boot,加载配置。然后它将加载所需的内核和 initramfs 文件。

事实上,在大多数正常情况下,将其安装在 Linux 中的唯一原因是系统升级工具(由yum, apt, ... 调用)可能期望它存在,以便他们可以安装新内核等。这些工具非常不灵活。我不建议您在没有 /boot 目录的情况下运行。

/boot 需要有自己的分区吗?

经常没有。将 /boot 放在其自己的分区上的一个很好的理由是,您的系统根目录 / 可以存储在引导加载程序无法读取或无法很好读取的位置。

感觉很勇敢吗?

实际上,您可以通过两种机制共享/boot。但我并不建议其中任何一个都是可取的。

只有一个 Linux 安装内核和引导加载程序

在各个发行版中,Linux 内核的兼容性令人惊讶。至少那些具有类似Major版本的可以。因此,可以有一种没有安装引导加载程序或内核的发行版。这样的设置不应尝试修改 /boot,即使修改也不会放入任何有用的内容。

因此,您可以让一个 Linux 管理另一个 Linux 的所有引导条目,并在它们之间共享一个内核。

子目录

人们通常不会想到这一点,但将某些东西绑定安装到 /boot 上是相当安全的。通过这种机制,您可以为每次安装创建一个包含不同名称的引导目录的分区。

你的/etc/fstab看起来像这样:

# Mount the boot partition
UUID=cb015492-4ca4-4fae-a416-6d89443e4680 /media/boot           ext4    defaults        0       2
# Bind mount the desired 
/media/boot/ubuntu-jammy-boot /boot none bind 0 0

上次我检查这一点时,看起来已经理解了EFI 中的grub-install安排并正确配置了 grub 。grub.cfg例如:/boot/efi/EFI/ubuntu/grub.cfg。如果没有,那么您可以手动批处理此文件中的配置行:

set prefix=($root)'/ubuntu-jammy-boot/grub'

答案3

需要分区有两个理由/boot

  • BIOS 无法访问大磁盘上的任何扇区,
  • 引导加载程序无法加载用于/.

我想第一个理由对于当今的系统来说是不正确的。借助 Grub2,甚至 LVM 或 Btrfs 之类的东西也可以在第一阶段加载(涉及文件系统外部的第一个扇区)。

然而,到了2022年,我单卷安装Debian失败了/ + /boot。它位于云服务器上,没有太多方法来分析发生的情况(我的视野中没有显示)。

相关内容