2009年10月31日 星期六

將Vista、Windows Server 2008的開機磁區複製到另一顆HD後,郤無法開機?

案例 :

將伺服器上原本已有安裝Windows Server 2008的HD,用Ghost 複製到另一顆HD上,
然後將原本的HD卸除,改以這顆新複製的HD來開機,但在開機後郤出現如下所示的錯誤訊息...

============================================================
Windows 無法啟動。 最近的硬體或軟體變更可能原因。 若要修正問題:

1.插入您的 Windows 安裝光碟並重新啟動您的電腦。
2.選擇您的語言設定,然後按一下 [下一步]。
3.按一下修復您的電腦。

如果您沒有這片光碟請連絡您的系統管理員] 或 [電腦製造商以取得協助。

檔案: \Windows\system32\winload.exe

狀態: 0xc00000001

資訊: 無法載入選取的項目,因為應用程式遺失或損毀。
============================================================
詳情請參考 http://h50178.www5.hp.com/support/GU404PA/solve/82920.html ,以下為全文複製。

原因 :

在 Vista 之前的 NT 版本中,開機檔案 (ntldr、Ntdetect.com 和 boot.ini) 全部位於開機磁碟作用中主要分割區的 root 中。
在 Vista 中,這三個檔案已被 bootmgr、Boot Configuration Data (BCD) 和 winload.exe 取代,
但只有 bootmgr 和 BCD 仍在系統分割區的 root 中,
而 winload.exe 現在則常駐在 Boot 分割區的 Windows/system32 資料夾內。 BCD 檔案已取代 boot.ini檔案。

舊版的 WinNT 使用 boot.ini 檔案尋找硬碟和分割區的位置。
結合 boot.ini 資料和電腦的 BIOS 資料後,ntldr 會判斷用來開機的 Windows/system32 是在哪一個硬碟和分割區內。

Vista 已變更開機程序: 硬碟獨有的磁碟簽章 (從 MBR) 儲存在 BCD 中。
將影像檔 (Rdeploy、Ghost 等) 回復到另一個硬碟後,簽章也會隨之變更。
Bootmgr 會掃描所有硬碟以尋找此簽章,如果找不到,開機程序便會停止並顯示「unable to access \windows\winload.exe」。


解決辦法 :

* 在製作影像檔之前:

如果 Vista 位於開機磁碟的主要分割區中,便會使用 BCDedit 命令來「一般化」安裝作業,
以建立影像檔 (因此會從目前所用的分割區開機,而不檢查磁碟簽章)。
此方法與 Microsoft sysprep 公用程式所使用的方法相同。 按一下滑鼠右鍵開啟命令提示字元,
選擇「以系統管理員身分執行」後,再鍵入下列命令:

bcdedit /set {current} osdevice boot bcdedit /set {current} device boot bcdedit /set {bootmgr} device boot


*在複製之後:

有數種可能的程序,下文摘自 http://support.microsoft.com/kb/927391

方法 1: 使用「啟動修復」選項來修復 BCD 存放區
  1. 將 Windows Vista (or Windows Server 2008)安裝光碟放入光碟機,再啟動電腦。
  2. 於光碟開機提示時按下任一按鍵。
  3. 選取語言、時間、貨幣和鍵盤或其他輸入方法後,再按一下「下一步」。
  4. 按一下「修復您的電腦」。
  5. 依序按下欲修復的作業系統和「下一步」。 6. 按一下「系統修復選項」對話方塊中的「啟動修復」。
  6. 重新啟動電腦。

方法 2: 使用 Bootrec.exe 工具重建 BCD 存放區。如果前一個方法無法解決問題,
便可使用 Windows Recovery Environment 中的 Bootrec.exe 工具來重建 BCD 存放區。
  1. 將 Windows Vista (or Windows Server 2008) 安裝光碟放入光碟機,再啟動電腦。
  2. 於提示時按下任一按鍵。
  3. 選取語言、時間、貨幣和鍵盤或其他輸入方法後,再按一下「下一步」。
  4. 按一下「修復您的電腦」。
  5. 依序按下欲修復的作業系統和「下一步」。
  6. 按一下「系統修復選項」對話方塊中的「命令提示字元」。
  7. 鍵入 Bootrec /RebuildBcd 後按下 Enter。

如果原本機器上有安裝Hyper-V,在更換HD後,會連帶造成Hyper-V無法正常運作,
出現Hypervisor未啟動的錯誤訊息,此時只要進入命令提示字元,
輸入" BCDEdit /set hypervisorlaunchtype auto "的指令,再重新開機就能解決。

沒有留言:

張貼留言