筆記本內建硬碟安裝 Windows 7 RTM,外接 SATA 硬碟已有 Windows Server 2008 多重開機環境。安裝 Windows 7 時自動偵測外接硬碟並嘗試設定多重開機,安裝過程順利,但重新開機後找不到開機裝置,甚至拔除外接硬碟也無法啟動。
使用 Windows 7 安裝光碟開機 → 修復電腦 → 命令提示字元(系統管理員權限),執行:
bcdedit
關鍵發現: Windows 開機管理裝置指向外接硬碟的 D: 槽(device partition=D:),而內建硬碟 C: 也含有開機管理程式檔案,導致開機邏輯混亂。
bcdedit /set {bootmgr} device partition=C:
bcdedit /export C:\bootmgr_backup
使用安裝光碟修復模式命令列,刪除內建硬碟 (C:) 與外接硬碟 (D:) 根目錄下的 bootmgr.efi 檔案。
重新連接外接硬碟,開機選單出現「Windows 7 (已還原)」與「Windows Server 2008 (已還原)」。使用 bcdedit 修正顯示名稱:
bcdedit /set {current} description "Windows 7 Ultimate"
bcdedit /set {} description "Windows Server 2008 Enterprise"
Windows 7 安裝程式偵測到外接硬碟的 Windows Server 2008,錯誤將其識別為主要開機裝置,導致 bootmgr 複製至外接硬碟並設定為主要開機管理程式。當外接硬碟移除或磁碟順序變更時,開機流程中斷。
| 指令 | 用途 |
|---|---|
bcdedit | 顯示目前開機設定 |
bcdedit /set {bootmgr} device partition=X: | 指定開機管理程式所在分割區 |
bcdedit /export 路徑 | 匯出 BCD 存放區備份 |
bcdedit /import 路徑 | 匯入 BCD 存放區 |
bcdedit /set {identifier} description "名稱" | 修改開機選單顯示名稱 |
bcdedit 加入開機項目。bootmgr 與 BCD 存放區,避免共用導致衝突。bcdedit /export),便於快速災難恢復。