了解不同類(lèi)型的 Syslinux 引導(dǎo)加載程序
GNU/Linux 發(fā)行版在安裝期間需要引導(dǎo)加載程序。這些引導(dǎo)加載程序負(fù)責(zé)加載在您安裝任何 GNU/Linux 發(fā)行版時(shí)運(yùn)行的系統(tǒng)文件。如果您正在開(kāi)發(fā)任何 GNU/Linux 發(fā)行版,您可能需要使用引導(dǎo)加載程序,以便用戶(hù)可以將其安裝在他們的系統(tǒng)上。
Syslinux 就是這樣一種引導(dǎo)加載程序。有幾種類(lèi)型的 Syslinux,每一種都專(zhuān)用于特定的文件系統(tǒng)。這是您需要了解的有關(guān) Syslinux 引導(dǎo)加載程序的所有信息,包括如何安裝它們。
1. SYSLINUX
SYSLINUX 是 Syslinux 的 FAT 文件系統(tǒng)變體。此外,這是最古老的 Syslinux 引導(dǎo)加載程序類(lèi)型。它支持 FAT12、FAT16 和 FAT32 文件系統(tǒng)。如果您使用的是 Windows 或 DOS,則 SYSLINUX 是您應(yīng)該選擇的。
(1) SYSLINUX的結(jié)構(gòu)
如果您使用鏡像鏈接下載 SYSLINUX ,您將獲得一個(gè)壓縮存檔。當(dāng)你打開(kāi)這個(gè)文件夾時(shí),你會(huì)看到里面的bios目錄。在這個(gè)文件夾下,有mbr和core目錄。
在磁盤(pán)的引導(dǎo)扇區(qū)階段,您需要位于/bios/mbr目錄中的mbr.bin文件。在/bios/core目錄里面可以看到ldlinux.sys文件,它是SYSLINUX的核心文件。
ldlinux.sys需要ldlinux.c32文件才能工作。因此,ldlinux.c32和ldlinux.sys必須在同一目錄下。
其他文件也必須在當(dāng)前目錄路徑或當(dāng)前目錄路徑的子目錄中。您可以查看syslinux.cfg配置文件。它必須在當(dāng)前目錄路徑中,您必須自己創(chuàng)建此文件。
或者,您可以在父目錄下找到插件、幫助文件和其他配置文件。
(2) 安裝 SYSLINUX
您可以根據(jù)下表中的系統(tǒng)查看 SYSLINUX 安裝文件的位置:
可用于在磁盤(pán)上安裝 SYSLINUX 的默認(rèn)命令如下:
# 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 引導(dǎo)加載程序支持 ext2、ext3、ext4、btrfs、FAT12、FAT16、FAT32、NTFS、XFS、HFS 和 UFS 文件系統(tǒng)。EXTLINUX的工作邏輯和文件結(jié)構(gòu)與 SYSLINUX 完全相同。它在文件系統(tǒng)支持方面更先進(jìn),并具有一些附加功能。
如果您想在計(jì)算機(jī)上安裝GNU/Linux 內(nèi)核,EXTLINUX 是一個(gè)不錯(cuò)的選擇。您可以先安裝 EXTLINUX,然后立即將 GNU/Linux 內(nèi)核放在該分區(qū)的頂部。
其他你應(yīng)該知道的細(xì)節(jié),EXTLINUX 從 Syslinux 3.00 版開(kāi)始就可以使用了。另外,使用不同版本的人應(yīng)該知道,ext4、btrfs、FAT12、FAT16 和 FAT32 支持在 EXTLINUX 4.00 版本中出現(xiàn),NTFS 支持在 4.05 版本中出現(xiàn),XFS 支持在 5.00 版本中出現(xiàn),UFS 對(duì) HFS 的支持在 5.00 版本中出現(xiàn)。
(1) EXTLINUX的結(jié)構(gòu)
與 SYSLINUX 一樣,EXTLINUX 的核心文件是ldlinux.sys。SYSLINUX 中指定的關(guān)于核心文件目錄的規(guī)則也適用于此。與 SYSLINUX 不同,EXTLINUX 的配置文件是extlinux.conf。
(2) 安裝 EXTLINUX
如果您下載了最新版本的 Syslinux,您可以在/bios/extlinux文件夾中找到一個(gè)安裝文件。您可以將此文件與某些命令行選項(xiàng)一起使用。
您可以使用以下命令安裝引導(dǎo)加載程序:
extlinux --install <current-directory-path>
此外,您可以使用的其他參數(shù)是:
# 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 中,您可以輕松地從命令行進(jìn)行任何初始規(guī)范。該系統(tǒng)稱(chēng)為輔助數(shù)據(jù)向量(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的一些特點(diǎn)
與 SYSLINUX 不同,EXTLINUX 可以訪問(wèn)存儲(chǔ)單元上的任何目錄。目錄路徑的命名與 GNU/Linux 中的相同。如果沒(méi)有“ / ”號(hào),EXTLINUX 使用當(dāng)前目錄。您可以使用最多 511 個(gè)字符的目錄路徑。
此外,EXTLINUX 支持別名。但是,您不應(yīng)該將這些別名保留太久,因?yàn)槟赡軙?huì)卡在路徑塊中。使用別名時(shí),只需要進(jìn)行 Linux 類(lèi)型的目錄命名即可。
3. ISOLINUX
如果您打算將 Syslinux 用于 CD 和 DVD,您應(yīng)該熟悉 ISOLINUX。但如今,USB 比 CD 和 DVD 更普遍。因此,ISOLINUX 的使用率低于其他 Syslinux 類(lèi)型。
(1) 安裝 ISOLINUX 需要什么
要安裝 ISOLINUX,您需要先下載 Syslinux。您需要 CD 或 DVD 刻錄機(jī)之類(lèi)的軟件來(lái)安裝 ISOLINUX。此外,如果您要使用 DVD,DVD 刻錄機(jī)必須支持創(chuàng)建啟動(dòng)盤(pán)。請(qǐng)注意,如果您將 ISOLINUX 刻錄到不可重寫(xiě)的 CD 或 DVD,您可能無(wú)法再次使用您的 CD。因此,為此使用可重寫(xiě) CD 是有意義的。
(2) ISOLINUX的結(jié)構(gòu)
核心目錄存儲(chǔ)isolinux.bin文件。如果要?jiǎng)?chuàng)建映像,還需要boot.cat文件。
當(dāng)前目錄必須包含 ISOLINUX 配置文件,即isolinux.cfg或syslinux.cfg。在安裝過(guò)程中不會(huì)創(chuàng)建或復(fù)制此文件,因此您必須手動(dòng)進(jìn)行必要的調(diào)整。如果找不到此文件,ISOLINUX 會(huì)嘗試打開(kāi)一個(gè)名為 Linux 的不帶參數(shù)的映像,并拋出一個(gè)錯(cuò)誤,指出無(wú)法找到該映像。
(3) ISOLINUX 與 mkisofs
要?jiǎng)?chuàng)建 ISOLINUX CD 映像,您可以使用 mkisofs 程序。請(qǐng)務(wù)必使用該實(shí)用程序的最新穩(wěn)定版本。
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>
很明顯,您不必按原樣使用上述命令。您也可以單獨(dú)使用這些參數(shù)。
(4) ISOLINUX 支持的文件命名
在 ISOLINUX 中,目錄路徑中的分隔符采用 UNIX 格式并使用斜杠( / ) 字符。單個(gè)/表示 ISOLINUX 的當(dāng)前目錄。在 ISOLINUX 中,目錄路徑最多必須為 255 個(gè)字符。它僅使用 ISO 9660 文件命名,必須使用 ISO 9660 的一級(jí)(8.3 個(gè)字符)或二級(jí)(31 個(gè)字符)。
此外,還有一些事情你應(yīng)該記?。?/p>
- ISOLINUX 離散文件、間隔類(lèi)型、邏輯塊和扇區(qū)支持的大小僅為 2048 字節(jié)
- 在 GNU/Linux 中掛載 ISOLINUX 安裝映像時(shí),必須在掛載命令中添加-o參數(shù)的norock、nojoliet屬性
- 如果計(jì)算機(jī)在打開(kāi) ISOLINUX 時(shí)出現(xiàn)問(wèn)題,請(qǐng)?jiān)诎惭b ISOLINUX 時(shí)使用isolinux-debug.bin而不是isolinux.bin 。這樣您就可以看到錯(cuò)誤消息。
(5) 用于硬盤(pán)的 ISOLINUX
ISOLINUX 從 3.72 版開(kāi)始支持多個(gè) ISO 映像。您可以使用isohybrid工具從安裝了 ISOLINUX 的 CD 或 DVD 映像創(chuàng)建多個(gè) ISO 映像。
其用法如下:
isohybrid <name-of-image-file>
但是,通過(guò)這個(gè)過(guò)程,圖像文件的大小平均增加了 1MB。
4. PXELINUX
PXELINUX 是一種用于從 TFTP 服務(wù)器加載操作系統(tǒng)的 Syslinux。它適用于在沒(méi)有磁盤(pán)卷的情況下運(yùn)行的工作站。在使用帶有 DHCP 的 BOOTP 或 TFTP 協(xié)議從服務(wù)器安裝網(wǎng)絡(luò)適配器 PXE(預(yù)執(zhí)行環(huán)境)時(shí),它會(huì)有所幫助。
要使用 PXELINUX,您需要一臺(tái) BOOTP 或 TFTP 服務(wù)器以及一臺(tái)可從其他網(wǎng)絡(luò)或虛擬化軟件啟動(dòng)的計(jì)算機(jī)。
(1) pxelinux的結(jié)構(gòu)
在 BOOTP 或 TFTP 服務(wù)器目錄中,核心文件pxelinux.0必須位于根目錄中。如果您下載了最新版本,則此文件位于/bios/core中。此外,PXELINUX 的配置文件是pxelinux.cfg。您可以在當(dāng)前目錄下找到可選插件、幫助文件、圖像和其他配置文件。
(2) Syslinux 引導(dǎo)加載程序類(lèi)型取決于您的目標(biāo)
為了能夠在其他設(shè)備上使用您的 GNU/Linux 發(fā)行版并舒適地隨身攜帶,您需要一個(gè)引導(dǎo)加載程序。Syslinux 只是這些引導(dǎo)加載程序之一。您可以根據(jù)您的預(yù)期用例和目標(biāo)環(huán)境選擇 Syslinux 品種之一。
此外,這些 Syslinux 類(lèi)型將根據(jù)您移動(dòng) GNU/Linux 發(fā)行版或內(nèi)核的位置和方式而有所不同。除了 Syslinux,您還可以使用其他引導(dǎo)加載程序作為替代。