GNU/Linux 发行版在安装期间需要引导加载程序。这些引导加载程序负责加载在您安装任何 GNU/Linux 发行版时运行的系统文件。如果您正在开发任何 GNU/Linux 发行版,您可能需要使用引导加载程序,以便用户可以将其安装在他们的系统上。
Syslinux 就是这样一种引导加载程序。有几种类型的 Syslinux,每一种都专用于特定的文件系统。这是您需要了解的有关 Syslinux 引导加载程序的所有信息,包括如何安装它们。
1. SYSLINUX
SYSLINUX 是 Syslinux 的 FAT 文件系统变体。此外,这是最古老的 Syslinux 引导加载程序类型。它支持 FAT12、FAT16 和 FAT32 文件系统。如果您使用的是 Windows 或 DOS,则 SYSLINUX 是您应该选择的。
(1) SYSLINUX的结构
如果您使用镜像链接下载 SYSLINUX ,您将获得一个压缩存档。当你打开这个文件夹时,你会看到里面的bios目录。在这个文件夹下,有mbr和core目录。
在磁盘的引导扇区阶段,您需要位于/bios/mbr目录中的mbr.bin文件。在/bios/core目录里面可以看到ldlinux.sys文件,它是SYSLINUX的核心文件。
ldlinux.sys需要ldlinux.c32文件才能工作。因此,ldlinux.c32和ldlinux.sys必须在同一目录下。
其他文件也必须在当前目录路径或当前目录路径的子目录中。您可以查看syslinux.cfg配置文件。它必须在当前目录路径中,您必须自己创建此文件。
或者,您可以在父目录下找到插件、帮助文件和其他配置文件。
(2) 安装 SYSLINUX
您可以根据下表中的系统查看 SYSLINUX 安装文件的位置:
可用于在磁盘上安装 SYSLINUX 的默认命令如下:
# For 32-bit Windows with DOS
syslinux -m -a -d <directory> <partition>
# For 64-bit Windows
syslinux64 -m -a -d <directory> <partition>
# For Linux
syslinux -i <partition>
2. EXTLINUX
EXTLINUX 引导加载程序支持 ext2、ext3、ext4、btrfs、FAT12、FAT16、FAT32、NTFS、XFS、HFS 和 UFS 文件系统。EXTLINUX的工作逻辑和文件结构与 SYSLINUX 完全相同。它在文件系统支持方面更先进,并具有一些附加功能。
如果您想在计算机上安装GNU/Linux 内核,EXTLINUX 是一个不错的选择。您可以先安装 EXTLINUX,然后立即将 GNU/Linux 内核放在该分区的顶部。
其他你应该知道的细节,EXTLINUX 从 Syslinux 3.00 版开始就可以使用了。另外,使用不同版本的人应该知道,ext4、btrfs、FAT12、FAT16 和 FAT32 支持在 EXTLINUX 4.00 版本中出现,NTFS 支持在 4.05 版本中出现,XFS 支持在 5.00 版本中出现,UFS 对 HFS 的支持在 5.00 版本中出现。
(1) EXTLINUX的结构
与 SYSLINUX 一样,EXTLINUX 的核心文件是ldlinux.sys。SYSLINUX 中指定的关于核心文件目录的规则也适用于此。与 SYSLINUX 不同,EXTLINUX 的配置文件是extlinux.conf。
(2) 安装 EXTLINUX
如果您下载了最新版本的 Syslinux,您可以在/bios/extlinux文件夹中找到一个安装文件。您可以将此文件与某些命令行选项一起使用。
您可以使用以下命令安装引导加载程序:
extlinux --install <current-directory-path>
此外,您可以使用的其他参数是:
# To update an installed volume
extlinux --update <current-directory-path>
# To install on the RAID partition
extlinux --raid --install <current-directory-path>
# To update an installed RAID partition
extlinux --once /initrd.img root=/dev/sda0 initrd=initrd.img vga=794 /boot/extlinux
在 EXTLINUX 中,您可以轻松地从命令行进行任何初始规范。该系统称为辅助数据向量(ADV)。您可以在以下示例中了解如何使用它:
# Example --once usage
extlinux --once /initrd.img root=/dev/sda0 initrd=initrd.img vga=794 /boot/extlinux
# Single initial specification is made and you want to remove this status
extlinux --clear-once <current-directory-path>
# If EXTLINUX is installed on a RAID-1 (recommended) partition, you must reset the ADV to clear the initial specification
extlinux --reset-adv <current-directory-path>
(3) EXTLINUX的一些特点
与 SYSLINUX 不同,EXTLINUX 可以访问存储单元上的任何目录。目录路径的命名与 GNU/Linux 中的相同。如果没有“ / ”号,EXTLINUX 使用当前目录。您可以使用最多 511 个字符的目录路径。
此外,EXTLINUX 支持别名。但是,您不应该将这些别名保留太久,因为您可能会卡在路径块中。使用别名时,只需要进行 Linux 类型的目录命名即可。
3. ISOLINUX
如果您打算将 Syslinux 用于 CD 和 DVD,您应该熟悉 ISOLINUX。但如今,USB 比 CD 和 DVD 更普遍。因此,ISOLINUX 的使用率低于其他 Syslinux 类型。
(1) 安装 ISOLINUX 需要什么
要安装 ISOLINUX,您需要先下载 Syslinux。您需要 CD 或 DVD 刻录机之类的软件来安装 ISOLINUX。此外,如果您要使用 DVD,DVD 刻录机必须支持创建启动盘。请注意,如果您将 ISOLINUX 刻录到不可重写的 CD 或 DVD,您可能无法再次使用您的 CD。因此,为此使用可重写 CD 是有意义的。
(2) ISOLINUX的结构
核心目录存储isolinux.bin文件。如果要创建映像,还需要boot.cat文件。
当前目录必须包含 ISOLINUX 配置文件,即isolinux.cfg或syslinux.cfg。在安装过程中不会创建或复制此文件,因此您必须手动进行必要的调整。如果找不到此文件,ISOLINUX 会尝试打开一个名为 Linux 的不带参数的映像,并抛出一个错误,指出无法找到该映像。
(3) ISOLINUX 与 mkisofs
要创建 ISOLINUX CD 映像,您可以使用 mkisofs 程序。请务必使用该实用程序的最新稳定版本。
mkisofs 的示例用法如下:
mkisofs -o <iso-image-to-create> -b <current-directory>/isolinux.bin -c <current-directory>/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table <directory-of-files-and-directory-to-be-put-in-the-image>
很明显,您不必按原样使用上述命令。您也可以单独使用这些参数。
(4) ISOLINUX 支持的文件命名
在 ISOLINUX 中,目录路径中的分隔符采用 UNIX 格式并使用斜杠( / ) 字符。单个/表示 ISOLINUX 的当前目录。在 ISOLINUX 中,目录路径最多必须为 255 个字符。它仅使用 ISO 9660 文件命名,必须使用 ISO 9660 的一级(8.3 个字符)或二级(31 个字符)。
此外,还有一些事情你应该记住:
- ISOLINUX 离散文件、间隔类型、逻辑块和扇区支持的大小仅为 2048 字节
- 在 GNU/Linux 中挂载 ISOLINUX 安装映像时,必须在挂载命令中添加-o参数的norock、nojoliet属性
- 如果计算机在打开 ISOLINUX 时出现问题,请在安装 ISOLINUX 时使用isolinux-debug.bin而不是isolinux.bin 。这样您就可以看到错误消息。
(5) 用于硬盘的 ISOLINUX
ISOLINUX 从 3.72 版开始支持多个 ISO 映像。您可以使用isohybrid工具从安装了 ISOLINUX 的 CD 或 DVD 映像创建多个 ISO 映像。
其用法如下:
isohybrid <name-of-image-file>
但是,通过这个过程,图像文件的大小平均增加了 1MB。
4. PXELINUX
PXELINUX 是一种用于从 TFTP 服务器加载操作系统的 Syslinux。它适用于在没有磁盘卷的情况下运行的工作站。在使用带有 DHCP 的 BOOTP 或 TFTP 协议从服务器安装网络适配器 PXE(预执行环境)时,它会有所帮助。
要使用 PXELINUX,您需要一台 BOOTP 或 TFTP 服务器以及一台可从其他网络或虚拟化软件启动的计算机。
(1) pxelinux的结构
在 BOOTP 或 TFTP 服务器目录中,核心文件pxelinux.0必须位于根目录中。如果您下载了最新版本,则此文件位于/bios/core中。此外,PXELINUX 的配置文件是pxelinux.cfg。您可以在当前目录下找到可选插件、帮助文件、图像和其他配置文件。
(2) Syslinux 引导加载程序类型取决于您的目标
为了能够在其他设备上使用您的 GNU/Linux 发行版并舒适地随身携带,您需要一个引导加载程序。Syslinux 只是这些引导加载程序之一。您可以根据您的预期用例和目标环境选择 Syslinux 品种之一。
此外,这些 Syslinux 类型将根据您移动 GNU/Linux 发行版或内核的位置和方式而有所不同。除了 Syslinux,您还可以使用其他引导加载程序作为替代。