無光驅、不想燒錄光碟,或想攜帶完整 Linux 系統隨插即用?本文詳細記錄使用 Grub4DOS 從硬碟/USB 直接啟動 Ubuntu/Desktop ISO、安裝系統、免安裝持久化運行、軟體包擴展與多版本共存的完整技術方案。
map 指令)。iso-scan/filename= 參數掛載 ISO 為根檔案系統來源。# 任意分區根目錄建立資料夾 (如 D:\ubuntu-iso)
D:\ubuntu-iso\ubuntu-14.04-desktop-amd64.iso # ISO 檔放此處
D:\ubuntu-iso\boot\grub\ # Grub4DOS 核心檔案
D:\ubuntu-iso\menu.lst # 啟動選單配置
下載預編譯包 (含 grldr, boot/grub/ 模組, menu.lst 模板):
來源:https://ftp.ubuntu.org.cn/home/gnix_oag/boot_livecd_from_hd/ (需帳號 ubuntu/ubuntuftp)
# 1. 解壓引導包到 C:\
# 2. 編輯 C:\boot.ini (Windows XP/2003) 或使用 EasyBCD (Vista/7/10) 添加實體模式啟動項
# boot.ini 範例:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP" /fastdetect
C:\grldr="Ubuntu Live/Install from ISO"
# menu.lst 核心片段
title Install Ubuntu 14.04 from ISO
find --set-root /ubuntu-iso/ubuntu-14.04-desktop-amd64.iso
map /ubuntu-iso/ubuntu-14.04-desktop-amd64.iso (0xff)
map --hook
root (0xff)
kernel /casper/vmlinuz.efi file=/cdrom/preseed/ubuntu.seed boot=casper iso-scan/filename=/ubuntu-iso/ubuntu-14.04-desktop-amd64.iso quiet splash --
initrd /casper/initrd.lz
boot
關鍵參數:iso-scan/filename= 指定 ISO 相對路徑 (相對於分區根目錄),boot=casper 啟動 Live 系統邏輯。
# 進入 Live 桌面後,終端執行:
sudo umount -l /isodevice # 解除 Grub4DOS 掛載的 ISO 分區
sudo umount -l /cdrom # 解除虛擬光碟掛載
# 否則安裝程式無法分區/格式化該磁碟
| 形式 | 檔案/結構 | 適用場景 |
|---|---|---|
| ubuntu.fs 檔案 | 單一 ext2/3/4 循環掛載映像檔 (如 casper-rw) | Windows 分區 (NTFS/FAT32) 無 Linux 分區時 |
| ubuntu.fs 目錄 | 普通目錄 (需 Linux 原生分區支援權限/符號鏈接) | 已有 Linux 分區 (ext4/xfs/btrfs) |
| swap.fs 檔案 | 交換空間映像檔 | 記憶體不足機器 |
ubuntu.fs (ext2 映像, 512MB~4GB) 與 swap.fs,解壓至 ISO 同目錄 (D:\ubuntu-iso\)。casper-rw (持久化) 與 swap-rw (交換)。casper-rw/swap-rw,無需額外配置。df -h | grep casper-rw 應顯示掛載於 / 或 /homeswapon -s 應顯示 swap-rw 交換區.rofs 檔案 (SquashFS 映像):02base_zh.rofs (52MB)、常用軟體包 03_soft.rofs (140MB)。D:\ubuntu-iso\),啟動時自動疊加至根檔案系統。*.rofs 並以 mount -o loop,ro 疊加。# Linux 環境下
wget https://ftp.ubuntu.org.cn/home/gnix_oag/bootlace.com
chmod +x bootlace.com
sudo ./bootlace.com --floppy /dev/sdX # sdX 為 USB 整顆裝置 (非分區)
# 或使用 Windows 版 bootlace.com
USB 根目錄/
├── grldr
├── menu.lst
├── boot/
│ └── grub/ (模組)
├── ubuntu-iso/
│ ├── ubuntu-14.04-desktop-amd64.iso
│ ├── casper-rw # 持久化
│ ├── swap-rw # 交換
│ ├── 02base_zh.rofs # 中文包
│ └── 03_soft.rofs # 軟體包
/etc/gnix.oag* 快取檔,強制重新硬體偵測。ptptptptpt 顯卡自動配置腳本 (針對 NVIDIA/ATI 專有驅動)。| 版本 | 引導包 | 對應 ISO | 中文包 | 軟體包 |
|---|---|---|---|---|
| Ubuntu 14.04 (Trusty) | boot_livecd_from_hd_14.04.tar.gz | ubuntu-14.04-desktop-amd64.iso | 02base_zh.rofs | 03_soft.rofs |
| Ubuntu 12.04 (Precise) | boot_livecd_from_hd_12.04.tar.gz | ubuntu-12.04-desktop-i386.iso | 同上 | 同上 |
| Ubuntu 10.04 (Lucid) | boot_livecd_from_hd_10.04.tar.gz | ubuntu-10.04-desktop-i386.iso | - | - |
現代替代方案:
• Ventoy (2020+):拷貝 ISO 即啟動,支援持久化、多 ISO、UEFI/Legacy 雙模。
• Rufus (Windows) / dd (Linux) 寫入 ISO 到 USB (僅單一 ISO,無持久化)。
• Grub2 直接啟動 ISO:menuentry "Ubuntu ISO" { set isofile="/ubuntu.iso"; loopback loop $isofile; linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile; initrd (loop)/casper/initrd }
Grub4DOS + Casper + Aufs 組合實現了「ISO 不解壓、硬碟直啟、持久化儲存、模組化軟體包」的極致靈活部署。雖 Ventoy 等現代工具已大幅簡化流程,但理解 iso-scan/filename、casper-rw、.rofs 疊加機制,對構建定製化嵌入式 Linux、離線安裝介質、多版本共存測試環境仍具核心指導意義。