所有 Linux 发行版都有相同的引导文件和所有主文件吗?

所有 Linux 发行版都有相同的引导文件和所有主文件吗?

我有一个问题,所有主要用于运行它们的 linux 发行版引导文件、grub 文件和内核文件,只有发行版的 iso 映像不同吗?

我的系统上安装了 Fedora,可以通过更改 grub 条目将其替换为 manjaro 吗?它有多安全?

答案1

当然,不同的发行版有几乎所有内容的不同包。然而,三个组件通常彼此很好地隔离:引导加载程序、内核、用户空间程序。

  1. Bootloader需要能够启动各种内核,否则它的可用性将受到很大限制。

  2. 内核并不真正依赖于用户空间,因为它为用户空间提供了运行的基本环境。

  3. 用户空间对内核有一定的依赖,但通常不依赖于基本任务。对于某些方面(甚至相当重要),它可能需要各种内核功能,但通常可以“大约在同一时间”使用另一个发行版的内核(几个月的差异应该不重要,除非用户空间正在使用某些前沿功能)。如果您只想对新发行版进行分段引导:

    • 运行 dist-A
    • 安装 dist-B-without-kernel (例如在chroot)
    • 使用内核 A 启动 B
    • 安装内核-B
    • 启动 dist-B-with-kernel-B

它应该工作得很好(来源:“去过也做过”)。根据您的特定用例(用户空间所需的内核功能),您甚至可以愉快地运行“外国”内核而不会出现问题。

答案2

不太激烈的做法是在单独的分区或单独的磁盘上安装新发行版,并使用原始 grub 让您选择启动哪个发行版(双启动)。这将允许您从旧系统中迁移您想要保留的任何内容。

答案3

所有 Linux 发行版都不具有相同的引导、grub 和内核文件。更改发行版的最安全方法是擦除当前操作系统并在磁盘上的同一位置安装新操作系统。

下面的屏幕截图显示了安装 Manjaro 的 4 个不同选项分区Manjaro 安装程序的屏幕。

在此输入图像描述

选择擦除磁盘此屏幕中的选项会在整个磁盘上安装 Manjaro,并且在此屏幕中,它还会为交换分区(以黄色显示)保留空间,以代替现有的 Ubuntu 交换分区(以绿色显示)。选择更换分区覆盖一个分区并在其中安装 Manjaro Linux。选择手动分区选项为用户提供了手动创建分区的选项,以便以用户指定的任何分区方案安装 Manjaro。

答案4

专注于所提出的问题,而不是继续探讨其含义。

首先,声明两件应该显而易见的事情:具有不同架构等的计算机不会使用相同的文件,并且来自不同制造商等的计算机可能会使用相同的文件,如果它们只是表面上的不同(AMD 视频的不同变体)卡或类似的)。

对于任何给定的体系结构,都有一个占主导地位的引导加载程序,其某些部分可能位于引导扇区中,而其他部分可能位于文件中。因此,对于 x86,有 GRUB(但也有 LILO 等作为替代方案),SPARC 使用 SILO(以 GRUB 作为替代方案),ARM 偶尔使用 Das U-Boot 等。引导加载程序加载内核二进制文件,还可以选择加载 initrd 文件,在某些情况下,这可以通过 LAN 完成。

只有一个 Linux 内核,由 Linus Torvalds 所有,并使用他发布的源文件构建,可能带有发行版特定的(“树外”)补丁。

内核二进制文件显然会根据体系结构以及在某种程度上连接到 CPU 的硬件而有所不同。它还会根据是否需要预定义 /dev 目录中的条目或使用 Udev 等即时创建它们而有所不同。

内核可能会也可能不会构建为需要 initrd 文件,该文件基本上是一个压缩文件系统,包含启动后立即需要的程序和配置文件。 PC 通常会使用 initrd 文件,而 Kobo 阅读器或 Raspberry Pi 之类的东西则不会;我在这里要指出的是,这使得 Kobo 所有者社区相当容易地修补额外的功能,因为他们不需要工具来重建 initrd。

如果使用 initrd,内核最终会被告知使用其他设备作为其文件系统的根。该设备的内容将根据发行版的不同而有所不同,这可能不仅会影响存在的程序和配置文件,还会影响程序的构建方式(核心库的静态与动态链接等)。

当系统配置改变或更新时,根文件系统中的程序和配置信息可以用来重建initrd。作为一个具体示例,这种情况在基于 Debian 的 distreaux 上经常发生,因为在内核从 initrd 切换到主文件系统之前会引用各种配置文件。

因此,OP 问题的答案是响亮的“也许”。

相关内容