故障回顧
- 原裝 Win98 (C:),新裝 XP Home (D:)。
- 安裝完成有雙系統選單,誤按 Esc 後選單消失,直接進 Win98。
- 嘗試手動修改
C:\BOOT.INI 加入 XP 項目,但 default 指向錯誤路徑,導致 hal.dll 遺失錯誤,最終重灌 XP 解決。
正確的 BOOT.INI 結構解析
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Home Edition" /fastdetect
C:\="Microsoft Windows 98"
關鍵參數對照
| 參數 | 含義 | 本例數值 |
| multi(0) | IDE/SCSI 控制器編號(通常 0) | 0 |
| disk(0) | 實體磁碟編號(第 1 顆硬碟) | 0 |
| rdisk(0) | 同 disk,舊版相容 | 0 |
| partition(2) | 分區編號(第 2 個主分區/邏輯分區) | 2 (D:槽) |
| \WINDOWS | 系統目錄相對路徑 | \WINDOWS |
| /fastdetect | 跳過 NTDETECT.COM 硬體偵測,加快開機 | 保留 |
修復步驟(無需重灌)
- 用 Win98 啟動碟或 XP 安裝光碟「修復主控台」啟動。
- 進入命令提示字元,編輯
C:\BOOT.INI(屬性去除「唯讀/系統/隱藏」:attrib -r -s -h C:\BOOT.INI)。
- 確認
default 指向 XP 所在分區的正確 ARC 路徑(如上例 partition(2))。
- 確認
[operating systems] 區段包含 XP 與 Win98 兩行,路徑正確。
- 存檔,重開機 → 雙系統選單恢復,兩系統皆可正常進入。
常見錯誤與對策
| 錯誤現象 | 原因 | 修正 |
hal.dll 遺失/損壞 | default 指向 C: 但 XP 裝在 D: | 修正 default 為正確 partition(N) |
| 選單只出現一個系統 | timeout=0 或 [operating systems] 缺項 | 設 timeout=30,補全缺項 |
| 選單出現但選 XP 重開機 | ARC 路徑磁碟/分區編號錯誤 | 用 bootcfg /scan (XP 修復主控台) 自動掃描修正 |
進階工具:bootcfg.exe
- XP 修復主控台 / 安裝光碟修復模式 →
bootcfg /list 查看現有項目。
bootcfg /rebuild 自動掃描所有分區 Windows 安裝並重建 BOOT.INI。
bootcfg /default /id 1 設定預設啟動項(ID 由 /list 獲得)。
雙系統維護建議
- 安裝順序:先舊版 (98/Me),後新版 (2000/XP/2003),新版安裝程式會自動偵測並加入舊版開機項。
- 系統分區分離:C: (98) / D: (XP) 互不干擾。
- 備份
C:\BOOT.INI、C:\NTLDR、C:\NTDETECT.COM 到軟碟/USB,損壞時秒還原。
- 第三方開機管理器:
BootMagic、GRUB4DOS、EasyBCD (Vista 後) 功能更強、介面友善。
理解 ARC 路徑語法,掌握 bootcfg 指令,雙系統開機選單修復不再是難題。