萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux Bootdisk HOWTO 中文版:自製開機/根磁片完整指南

前言

本文翻譯自 Bootdisk-HOWTO v4.0 (Tom Fawcett, Graham Chapman),說明如何從零建構自訂的 Linux 開機磁片 (boot/root diskset),用於系統救援、核心測試、嵌入式部署。預設讀者具備系統管理基礎 (掛載、檔案系統、/etc/passwd、fstab、root 權限操作)。

開機磁片類型與用途

類型組成用途
Boot Disk核心 + 最小根檔案系統 (通常壓縮在同一磁片)啟動核心、載入初始根檔案系統
Root Disk完整根檔案系統 (bin, sbin, etc, lib, dev, modules...)提供救援環境、執行 fsck、修復系統
Boot+Root 單磁片核心 + 根檔案系統壓縮映像 (initrd/initramfs 前身)單片軟碟完整啟動 (空間極度受限)
模組化 (Boot + 模組磁片)核心 + 獨立模組磁片支援多種硬體,核心精簡

核心開機流程與磁片角色

  1. BIOS 載入 MBR/開機扇區 → bootsect (LILO/GRUB/核心直接啟動)。
  2. 核心解壓縮、初始化硬體 (CPU、記憶體、中斷、磁碟控制器)。
  3. 核心掛載根檔案系統 (由 root= 參數或 initrd 指定)。
  4. 執行 /sbin/init (PID 1),進入用戶空間。

自製開機磁片必須包含:核心映像、最小根檔案系統 (含 init, sh, mount, fsck, insmod, 必要模組、裝置節點)。

製作步驟概覽 (傳統軟碟時代流程,現代請改用 initramfs/USB)

  1. 準備核心:編譯支援 RAM disk、initrd、所需檔案系統 (ext2, minix, romfs)、關鍵驅動 (IDE/SCSI/網卡) 內建 (*=y) 的核心 bzImage。
  2. 建立根檔案系統映像:
    dd if=/dev/zero of=rootfs.img bs=1k count=1440  # 1.44MB 映像檔
    mke2fs -F rootfs.img
    mount -o loop rootfs.img /mnt/root
    # 複製最小系統...
    umount /mnt/root
    gzip -9 rootfs.img
  3. 建立開機磁片:
    # 單片法 (核心 + 壓縮根fs)
    dd if=bzImage of=/dev/fd0 bs=512
    dd if=rootfs.img.gz of=/dev/fd0 bs=512 seek=...  # 計算 offset
    
    # 或使用 LILO/GRUB 安裝到磁片 MBR,再複製核心與 initrd
  4. 測試與除錯:在虛擬機 (QEMU/VirtualBox) 或實體機測試開機,觀察核心訊息、根檔案系統掛載、init 執行狀況。

關鍵技術細節

  • 裝置節點: MAKEDEV 或 mknod 建立 /dev/console, /dev/null, /dev/ram*, /dev/tty*, 磁碟裝置等。
  • 模組載入: insmod / modprobe 需在根檔案系統包含模組檔 (/lib/modules/$(uname -r)/) 與 /etc/modules.conf。
  • init 程式: 可用 busybox (單一執行檔提供 sh, mount, ls, cp...)、sash (stand-alone shell) 或精簡 glibc + 靜態連結工具。
  • 壓縮根檔案系統: gzip、lzma、xz;核心參數 initrd= 載入,支援 root=/dev/ram0 rdinit=/sbin/init。

現代替代方案 (強烈建議)

方案優點適用場景
Live USB (SystemRescue, Finnix, GRML)開箱即用、支援現代硬體、含大量救援工具系統救援、磁碟修復、密碼重設
initramfs / dracut / mkinitcpio核心整合、模組化、開機參數靈活、支援加密/LVM/RAID現代發行版標準開機流程
PXE 網路開機無實體媒體、集中管理、大量部署資料中心、無碟工作站
Ventoy / Rufus / balenaEtcher多 ISO 共存、持久化儲存、UEFI/BIOS 雙支援安裝媒體製作、多系統測試

原文授權:GNU GPL v2 / LDP License | 譯者:朱漢農 | 翻譯日期:2000-07-27

copyright © 萬盛學電腦網 all rights reserved