将 Linux 系统分发为 ISO 与一组文件

将 Linux 系统分发为 ISO 与一组文件

如今大多数可安装的 Linux 发行版都以单个 ISO 文件的形式分发,该文件符合 El Torito 标准并包含引导加载程序,以便可以使用ddCD 和 USB 记忆棒将 ISO 映像复制到 BIOS 上并被 BIOS 理解/EFI。然而,有一些系统,例如用于 Raspberry Pi 的 NOOBS 和其他主要用于嵌入式设备的系统,它们不是作为 ISO 文件分发,而是作为一组文件分发,可以cp立即使用普通命令直接复制到外部存储(例如 SD 卡) 。例如,以下文件分布在NOOBS中:

BUILD-DATA
INSTRUCTIONS-README.txt
RECOVERY_FILES_DO_NOT_EDIT
bootcode.bin
defaults
os
recovery.cmdline
recovery.elf
recovery.img
recovery.rfs
recovery7.img
riscos-boot.bin

对于最终用户来说,这看起来是一种更方便的方式,因为它不需要使用外部存储dd,因此不会导致擦除外部存储上的所有数据。为什么不是所有的 Linux 发行版都以 ISO 文件的形式分发?可以归档一组文件,因此分发单个文件与分发多个文件不成问题。

答案1

对发行版提供的文件的主要要求是它们允许用户使用该发行版启动计算机(作为实时系统或安装系统,或两者)。

在 PC 上,人们普遍认为,为了允许在尽可能多的系统上启动单个映像,最好的方法是组合 El Torito/EFI 映像;它可以写入 CD 或 USB 闪存盘,并支持在基于 BIOS 的系统以及基于 EFI 的系统上启动。 (不过有很多注意事项,请参阅UEFI 上的 Debian 维基页面.) 因此发行版会突出显示此选项,即使它不是唯一可用的选项;其他可能性是使用 PXE 通过网络启动,或直接通过 EFI 启动内核。许多发行版提供了执行此操作所需的文件;理论上来说,复制这些文件到 USB 密钥上相应的 EFI 目录应该就可以了(对于 Debian)。

在 Raspberry Pi 风格的嵌入式系统上,提供可启动系统通常意味着提供您提到的 SD 卡的内容。

对于 SD 卡和 USB 映像,可以将发行版的文件复制到现有介质而不覆盖它。对于基于 BIOS 的 PC,这比仅仅复制文件更复杂,因为 USB 闪存盘还需要安装引导加载程序;这就是为什么发行版倾向于提供带有完全覆盖 USB 密钥的说明的映像。如果您深入研究,您通常会找到从下载的映像中提取所需文件并将其手动安装到 USB 密钥而不覆盖任何内容的说明。 (看这里是 Debian.)

总结来说:

  • 分发安装文件以最适合每个目标设备的形式提供,具有最大可能的目标人群;
  • 对于 SD 卡和 USB 密钥,可以设置可启动设备而无需完全覆盖内容(假设有足够的可用空间)。

相关内容