Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux U 盤啟動盤手工制作全過程:isolinux 引導原理、syslinux.cfg 配置、UltraISO 寫入實戰

編輯:Linux 系統常見問題解答

理解 Linux 啟動流程,手工制作 U 盤啟動盤不再依賴一鍵工具,能靈活定制內核參數、預置 Kickstart、修復損壞系統。本文以 CentOS 7 ISO 為例,詳解 isolinux 引導鏈、配置文件編輯、鏡像生成與 UltraISO 寫入全過程。

一、 Linux 可移動介質啟動流程(isolinux 鏈)

  1. BIOS/UEFI 讀取 U 盤 MBR/GPT → 加載 isolinux.bin(ISOLINUX 引導加載器)。
  2. isolinux.bin 運行 → 讀取配置文件 syslinux.cfg(或 isolinux.cfg)。
  3. syslinux.cfg 定義菜單項 → 指定 vmlinuz(內核)與 initrd.img(初始內存盤)。
  4. vmlinuz 啟動 → 接收 initrd=initrd.img 參數 → 解壓 initrd.img 到內存作為臨時根文件系統。
  5. initrd.img 執行 /init 腳本 → 掛載真實根設備(如 inst.stage2=hd:LABEL=CENTOS 指定 ISO 所在分區卷標)→ 切換根文件系統 → 啟動 systemd / 安裝程序。

關鍵點:initrd.img 解決「內核不含所有硬件驅動」問題,通過參數動態指定根設備,實現同一內核適配多種硬件。

二、 所需文件提取(從 ISO 的 isolinux 目錄)

# 掛載 ISO
mount -o loop CentOS-7-x86_64-DVD.iso /mnt/iso

# 複製 isolinux 目錄所有文件到工作目錄
cp -r /mnt/iso/isolinux /work/bootusb/

# 關鍵文件清單:
# isolinux.bin        引導加載器
# vesamenu.c32        圖形菜單模塊
# vmlinuz             內核
# initrd.img          初始內存盤
# isolinux.cfg        菜單配置(將重命名為 syslinux.cfg)
# libcom32.c32, libutil.c32, ...  菜單依賴模塊
# splash.png          背景圖(可選)
# memtest             內存測試工具
# ldlinux.c32         SYSLINUX 核心模塊(部分版本需)

ISO isolinux 目錄文件

三、 編輯 syslinux.cfg(核心配置)

# 重命名
mv isolinux.cfg syslinux.cfg

# 編輯要點
default vesamenu.c32        # 默認進入圖形菜單;改為 default linux 可直接啟動第一項
timeout 600                 # 等待 60 秒(單位 0.1 秒)自動啟動默認項

# 菜單項定義語法
label linux
  menu label ^Install CentOS 7
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS quiet

label check
  menu label Test this ^media & install CentOS 7
  menu default                # 高亮默認項
  kernel vmlinuz
  append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rd.live.check quiet

# 子菜單:Troubleshooting
menu begin ^Troubleshooting
  menu title Troubleshooting
  label vesa
    menu indent count 5
    menu label Install CentOS 7 in ^basic graphics mode
    kernel vmlinuz
    append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS xdriver=vesa nomodeset quiet
  label rescue
    menu indent count 5
    menu label ^Rescue a CentOS system
    kernel vmlinuz
    append initrd=initrd.img inst.stage2=hd:LABEL=CENTOS rescue quiet
  label memtest
    menu label Run a ^memory test
    kernel memtest
  label local
    menu label Boot from ^local drive
    localboot 0xffff
  label returntomain
    menu label Return to ^main menu
    menu exit
menu end

關鍵參數解釋:

  • inst.stage2=hd:LABEL=CENTOS:告訴安裝程序「第二階段文件(完整安裝環境)在卷標為 CENTOS 的磁盤分區上」。**U 盤卷標必須設置為 CENTOS**,或改為 UUID=xxxx、/dev/sdX。
  • quiet:隱藏內核啟動日志,顯示 Plymouth 啟動畫面。
  • rd.live.check:安裝前校驗介質完整性。

四、 生成啟動 ISO 鏡像(用 UltraISO / mkisofs / genisoimage)

UltraISO 圖形操作(Windows 下最便捷)

  1. 打開 UltraISO → 文件 → 打開 → 選擇工作目錄 /work/bootusb(或直接新建)。
  2. 將所有準備好的文件(syslinux.cfg、vmlinuz、initrd.img、isolinux.bin、vesamenu.c32、ldlinux.c32、splash.png、memtest 等)拖入。
  3. 啟動 → 寫入硬盤映像 → 目標選 U 盤 → **寫入方式:USB-HDD+** → **勾選「生成啟動信息表」** → 寫入。
  4. 寫入完成後,U 盤根目錄將自動生成 ldlinux.sys(啟動信息表)、syslinux.cfg、ldlinux.c32 等。
  5. 修改 U 盤卷標為 CENTOS(右鍵屬性 → 重命名)。
  6. 將原版 CentOS 安裝 ISO(CentOS-7-x86_64-DVD.iso)直接複製到 U 盤根目錄(或解壓內容到 U 盤,視 inst.stage2 指定方式)。

UltraISO 寫入硬盤映像 設置卷標與啟動文件

命令行生成(Linux 下)

cd /work/bootusb
# 生成混合模式 ISO(可直接 dd 寫入 U 盤)
mkisofs -o /work/CENTOS_BOOT.iso \
  -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table \
  -V "CENTOS" -R -J -T .

# 寫入 U 盤(假設 U 盤為 /dev/sdb,謹慎確認!)
dd if=/work/CENTOS_BOOT.iso of=/dev/sdb bs=4M status=progress && sync

五、 精簡版:無菜單直接啟動安裝

修改 syslinux.cfg 開頭:

default linux
# 刪除或註釋 default vesamenu.c32
timeout 10

插入 U 盤直接進入安裝流程,適合批量無人值守部署(配合 Kickstart inst.ks=hd:LABEL=CENTOS:/ks.cfg)。

六、 常見問題

  • UEFI 機器無法啟動:ISOLINUX 僅支持 BIOS/Legacy。UEFI 需使用 grub2-efi 或 systemd-boot,制作 EFI/BOOT/BOOTX64.EFI,分區表為 GPT,EFI 系統分區 FAT32。
  • 卷標不匹配:inst.stage2=hd:LABEL=CENTOS 找不到介質。檢查 U 盤卷標、分區格式(FAT32/NTFS/exFAT 均可,需內核支持)。
  • 內核恐慌 / 無法掛載根設備:initrd.img 缺少驅動(如 USB3.0 控制器、NVMe)。需重新構建 initrd(dracut --add-drivers="xhci_pci nvme" --force)。
  • ldlinux.sys 缺失:UltraISO 未勾選「生成啟動信息表」或 mkisofs 缺 -boot-info-table。

結語: 掌握 isolinux → syslinux.cfg → vmlinuz/initrd → 卷標/設備指定 這條鏈路,你就擁有了定制任意 Linux 啟動介質的能力:救援盤、無人值守安裝盤、內核參數測試盤、簽名啟動盤……工具只是加速器,原理才是通行證。

Copyright © Windows教程網 All Rights Reserved