利用現有 GRUB 直接引導 ISO 內核/初始化內存盤,實現硬盤安裝新系統 — **無需外部介質、保留原系統、共享 Swap 分區**。
Fedora-9-i386-DVD.iso(hd0,4) (第 1 盤第 5 分區)。# 掛載 FAT32 分區 (假設掛載點 /mnt/win_d)
mkdir -p /mnt/win_d
mount -t vfat /dev/sda5 /mnt/win_d
# 復制 ISO 到分區根目錄
cp Fedora-9-i386-DVD.iso /mnt/win_d/
# 解壓 ISO 中的 isolinux 目錄 (含 vmlinuz, initrd.img)
# 可用 loop 掛載 ISO 或直接解壓
mkdir -p /mnt/win_d/isolinux
mount -o loop /mnt/win_d/Fedora-9-i386-DVD.iso /mnt/iso
cp -r /mnt/iso/isolinux/* /mnt/win_d/isolinux/
umount /mnt/iso
vim /boot/grub/grub.conf
# 追加:
title Install Fedora 9
root (hd0,4)
kernel /isolinux/vmlinuz
initrd /isolinux/initrd.img
GRUB 設備命名規則:(hd0,4) = 第 1 塊硬盤 (hd0) 第 5 個分區 (索引從 0 起) — **與 Linux 設備節點 (sda5) 無直接對應**,需在 GRUB 命令行 grub> find /isolinux/vmlinuz 驗證。
vmlinuz + initrd.img 進入安裝程序。/dev/sda5) 與目錄 (/ 或 /isolinux 視安裝程序提示)。# 進入 Fedora 9 系統
# 備份 Fedora 9 的 grub.conf
cp /boot/grub/grub.conf /boot/grub/grub.conf.fc9.bak
# 將 Fedora 8 的啟動條目 (kernel/initrd/root 參數) 手動合併到 Fedora 9 的 grub.conf
# 注意: Fedora 8/9 內核參數可能不同 (如 root=UUID vs root=LABEL), 需逐項核對
# 或者: 進入 Fedora 8 系統, 重新安裝 GRUB 到 MBR
grub-install /dev/sda
# 然後編輯 Fedora 8 的 grub.conf 添加 Fedora 9 啟動項 (反向操作)
| 優勢 | 風險/注意 |
|---|---|
| 零外部介質安裝 | 需 FAT32 分區存放 ISO (NTFS 需額外驅動) |
| 保留原系統數據與配置 | GRUB 版本差異 (Legacy vs 2) 可能導致配置語法不兼容 |
| 共享 Swap 分區 | 分區操作失誤可能損壞現有系統 |
| 適合無光驅/無USB啟動舊機器 | ISO 版本與安裝程序邏輯需匹配 |
# /etc/grub.d/40_custom
menuentry "Fedora 39 Live ISO" {
set isofile="/iso/Fedora-39-Live.iso"
loopback loop $isofile
linux (loop)/isolinux/vmlinuz root=live:CDLABEL=Fedora-39 iso-scan/filename=$isofile rd.live.image quiet
initrd (loop)/isolinux/initrd.img
}
# update-grub 生效
GRUB 2 內建 loopback 模塊,**無需解壓 ISO**,直接映射啟動 — 更簡單、更通用。
單硬盤雙 Linux 系統,核心技巧是 **GRUB 引導 ISO 內核/Initrd + 硬盤安裝源選擇 + 共享 Swap + GRUB 整合**。掌握此法,舊筆記本、無光驅服務器、受限環境均可靈活部署多系統共存。