了解不同類型的 Syslinux 引導加載程序
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,您還可以使用其他引導加載程序作為替代。