Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 製作可開機 IMG/ISO 鏡像完整教學:dd、mkisofs、grub4dos 實戰

編輯:關於 Linux

需要製作可開機的磁碟映像檔(IMG)或光碟映像檔(ISO)?本文詳細說明三種主流工具 dd、cat/cp、mkisofs 的適用場景、指令參數與實戰流程,並示範如何植入 grub4dos 實現多重開機選單。

核心工具比較

工具適用對象特點
dd整顆磁碟/分區、軟碟、USB 隨身碟區塊級複製,可指定 block size/count,功能最強
cat/cp裝置檔案簡單複製,無法控制區塊大小
mkisofs (genisoimage)目錄樹 → ISO 9660 檔案系統專為光碟映像設計,支援啟動載入器嵌入

IMG 檔案製作流程

1. 建立空白映像檔

# 1.44MB 虛擬軟碟映像 (2880 扇區 × 512B)
dd if=/dev/zero of=fdimage.img count=2880

# 或指定 block size
dd if=/dev/zero of=fdimage.img bs=1024 count=1440

2. 格式化檔案系統

mkfs.msdos fdimage.img   # FAT12/16,適合 DOS/Windows 啟動
# mkfs.ext2 fdimage.img  # Linux 原生

3. 掛載寫入檔案

mount -o loop fdimage.img /mnt
cp -r your_boot_files/* /mnt/
umount /mnt

4. 植入開機磁區 (MBR/VBR)

單一系統 (FreeDOS 範例):

# 下載 FreeDOS 啟動映像 balder10.img
dd if=balder10.img of=fdimage.img bs=512 count=1 conv=notrunc

多重開機 (grub4dos):

# 方法 A:grldr.mbr 寫入 MBR
bootlace.com --floppy --chs 0x00 fdimage.img

# 方法 B:grub.exe 做為核心載入器
# 需在映像根目錄放入 grldr、menu.lst、grub.exe

⚠ 注意:dd 從邏輯扇區 0 開始寫入。USB 隨身碟前 63 扇區含 MBR 與隱藏扇區,直接 dd 寫入 grldr.mbr 會破壞 FAT 表。軟碟映像無此問題。

ISO 檔案製作流程

1. 準備目錄結構


cddir/
├── isolinux/
│   ├── isolinux.bin
│   ├── isolinux.cfg
│   ├── vmlinuz
│   └── initrd.img
├── LiveOS/
│   └── squashfs.img
└── grub4dos/
    ├── grldr
    └── menu.lst

2. 單一系統啟動 (ISOLINUX)


mkisofs -r -o cdimage.iso \
  -b isolinux/isolinux.bin \
  -c isolinux/boot.cat \
  -no-emul-boot -boot-load-size 4 -boot-info-table \
  cddir

3. 多重開機 (grub4dos)


# 方式 A:grub.exe 作為無模擬啟動載入器
mkisofs -R -b grub4dos/grub.exe \
  -no-emul-boot -boot-load-seg 0x1000 \
  -o cdimage.iso cddir

# 方式 B:grldr 安裝到光碟 MBR (需 isolinux.bin 共存)
mkisofs -R -b grub4dos/grldr \
  -no-emul-boot -boot-load-size 4 \
  -o cdimage.iso cddir

dd 關鍵參數速查

參數說明
if=FILE輸入檔 (預設 stdin)
of=FILE輸出檔 (預設 stdout)
bs=BYTES同時設定讀/寫區塊大小
count=BLOCKS僅複製指定區塊數
skip=BLOCKS輸入端跳過區塊數
seek=BLOCKS輸出端跳過區塊數
conv=notrunc不截斷輸出檔 (配合 seek 寫入 MBR 關鍵)
conv=sync不足區塊以 NUL 填充

單位後綴:b=512, k=1024, M=1024k, G=1024M。

mkisofs 關鍵參數速查

參數說明
-o FILE輸出 ISO 檔名
-b FILE啟動映像檔 (相對路徑)
-c FILE開機目錄 (El Torito 規範)
-no-emul-boot無模擬模式 (直接載入二進位)
-boot-load-size N載入扇區數 (通常 4)
-boot-load-seg ADDR載入記憶體段位址 (0x1000=64KB)
-boot-info-table修補啟動映像資訊表
-R / -rRock Ridge 擴展 (保留 Unix 權限/長檔名)
-JJoliet 擴展 (Windows 長檔名)

虛擬機器測試建議

  • VirtualBox / VMware / QEMU 掛載 .img 或 .iso 當作光碟/硬碟啟動。
  • 測試選單、核心參數、檔案系統掛載是否正常。
  • 實體 USB 燒錄:dd if=fdimage.img of=/dev/sdX bs=4M status=progress (確認裝置代號!)。

IMG ISO 製作流程圖

Copyright © Windows教程網 All Rights Reserved