USB 隨身碟以體積小、速度快、抗震耐用取代軟碟片,現代主板 BIOS 均支援 USB-HDD/USB-ZIP 啟動。廠商通常僅提供 Windows 98 啟動盤工具,但對系統維護人員而言,攜帶精簡 Linux 核心、網路工具與檔案傳輸環境的 USB 啟動盤實用性遠超 Windows PE。本文以 Red Hat 為例,使用朗科雙啟動型隨身碟完整示範製作流程。
編譯原則:極度精簡,移除聲卡等無關驅動,必選模組編入核心(非模組):
usbcore、usb-storage為何需 initrd? USB 儲裝初始化速度慢於核心啟動,直接掛載根檔案系統會失敗。解決方案:initrd 載入記憶體後 sleep 3 等待 USB 就緒,再切換真實根裝置。
mkinitrd /tmp/initrd.gz 2.4.20-usbbusybox 與 sleep 指令,修改 linuxrc:
echo 'wait 3 seconds.....'
/bin/sleep 3
dd if=/dev/zero of=/tmp/initrdusb bs=1M count=1
mke2fs -m 0 /tmp/initrdusb
mount -o loop /tmp/initrdusb /mnt/initrdusb
cp -a /mnt/initrd/* /mnt/initrdusb
umount /mnt/initrd /mnt/initrdusb
gzip -9 /tmp/initrdusb
cp /tmp/initrdusb.gz /boot/initrd-2.4.20-usb.img
dmesg 顯示 USB 儲裝偵測資訊Device Boot Start End Blocks Id System
/dev/sda1 1 102 51376+ 6 FAT16 # Windows 98 啟動區
/dev/sda2 103 126 12096 83 Linux # Linux 根分區
關鍵細節:若需相容 Windows 98 啟動,磁柱/磁頭/扇區幾何參數必須設為 63 扇區(可用 fdisk 專家模式 x 指令調整)。
mke2fs -m 0 /dev/sda2
mount /dev/sda2 /mnt/sda2
mkdir -p /mnt/sda2/{boot,bin,lib,dev,etc/init.d}
複製編譯好的 vmlinuz、initrd.img、模組至對應目錄,部署 GRUB:
# /mnt/sda2/boot/grub/menu.lst
timeout 10
default 0
title Windows 98
rootnoverify (hd0,0)
makeactive
chainloader +1
title GNU/Linux Redhat 8.0 (2.4.20-usb)
root (hd0,1)
kernel /boot/vmlinuz-2.4.20-usb ro root=/dev/sda2
initrd /boot/initrd-2.4.20-usb.img
GRUB 安裝:grub> root (hd1,1); setup (hd1)(假設 USB 為第二顆硬碟 hd1)。
busybox 靜態連結替代(ln -s busybox cat/ifconfig/route/init...)e3 或重編 busybox 含 vibash,需同步複製 /etc/termcap 與 /usr/share/terminfo/ 相關終端機定義cp -a 複製 /dev 關鍵裝置節點(console, tty*, sda*, hda*)# /etc/init.d/rcS
#!/bin/sh
PATH=/sbin:/bin
mount -n -t proc none /proc
umount /initrd
mount -n -o remount,rw /
mount -n -o remount,rw -t proc none /proc
ifconfig lo 127.0.0.1
# /etc/fstab
/dev/sda2 / ext2 defaults 1 1
none /proc proc defaults 0 0
場景:機器 A (192.168.100.5) 服務端,機器 B 以 USB 啟動為客戶端。
# 機器 A (發送端)
tar cf - win98 | nc -l -p 5555
# 機器 B (接收端,USB 啟動後)
mount -t vfat -o codepage=938,iocharset=cp936 /dev/hda5 /mnt/2dos
modprobe eepro100
ifconfig eth0 192.168.1.10
route add default gw 192.168.1.1
nc 192.168.100.5 5555 | tar xf -
若 format /s 破壞 FAT16 分區幾何參數,可用 mkdosfs -F 16 重建,再用 xxd 備份/還原 Boot Record 32-35 位元組(記錄總扇區數),配合廠商工具製作 Windows 98 啟動區,最終達成:Windows 98 雙啟動 + Linux 單啟動 三模式共存。
Linux 環境下備份策略全景:磁帶裝置存取、tar/cpio/dump 工具鏈、完全/增量/差分備份模式、自動化腳本與驗證機制
Red Hat 5 系列安裝網卡驅動缺少 kernel-source 解決辦法
CentOS 啟用 sudo 權限並禁止 root 遠端登入安全加固
Linux find 指令精準尋找近期修改檔案:-mmin、-mtime 實戰速查
Linux 磁碟分區核心知識與大容量磁碟 (超過 2TB) GPT 分區實戰指南
VMware ESXi / CentOS 7 虛擬機掛載光驅 (CD-ROM) 失敗「mount: can't find in /etc/fstab」根因與永久修復