問題
系統是Windows 10。電腦原本有一塊機械硬盤。后來為了提高性能,想加裝一塊固態硬盤,作為系統盤。但是不想重裝系統,免得各種軟件要重新裝。
於是就使用了分區助手進行硬盤遷移。將機械硬盤上的C盤完整地復制到固態硬盤上。然后在BIOS里設為從新的固態硬盤啟動,就可以將固態硬盤作為新的系統盤使用了。
不過帶來的問題就是發現Windows 10的功能更新沒法安裝了,始終顯示錯誤或者無法安裝。而且錯誤不明。
原因
排查了很久,根據網上的各種帖子推測,無法安裝更新的原因是Windows恢復功能(Windows Recovery)被禁用了。而更新時會使用這個功能。如何確認是recovery沒有啟用呢?可以用管理員運行命令提示符(cmd),執行以下指令,來查看是否啟用。
reagentc /info
以下是我處理好之后的結果。
解決
因為進行了系統遷移,原有的recovery還在舊的機械硬盤上。無法在系統中直接啟用recovery,會報錯或無效果。
(1)獲得恢復鏡像
如果要啟用Windows recovery,需要重新指定恢復鏡像Winre.wim。
要獲得Winre.wim,一些帖子說可以從Windows完整鏡像中提取。不過根據我的嘗試,從最新版本的鏡像中提取已經比較麻煩了,因為似乎微軟更換了相關文件的打包方式。
另一種方法是從原有硬盤的恢復分區中獲得。由於恢復分區是沒有盤符的,也就是沒有C、D、E盤這樣的標志,沒法直接訪問。可以通過DiskGenius等硬盤工具軟件訪問,找到恢復分區recovery下面的recovery文件夾,的如下圖所示。
這個文件夾下有一個子文件夾叫WindowsRE。圖中沒有,是因為我處理好之后,這個子文件夾自動消失了。把recovery分區:\Recovery\WindowsRE下的三個文件,特別是Winre.wim復制出來,這樣就獲得了相關文件。如下圖所示。
(2)指定恢復鏡像
在系統盤的根目錄下建立一個文件夾,叫做Recovery,再在它里面建立一個子文件夾叫WindowsRE。注意,由於這些文件夾可能本身是存在的,並且是隱藏的,因此如果新建時報錯,那么不用急,去文件夾選項中勾選“顯示隱藏的文件”,然后取消勾選“隱藏系統保護的文件”。這樣就能顯示原有的文件夾了。
將剛才獲得的三個文件復制到c:\Recovery\WindowsRE
中。
然后用管理員運行命令提示符(cmd),執行以下指令。
reagentc /setreimage /path c:\Recovery\WindowsRE
reagentc /enable
如果執行成功,那么查看一下現在的狀態:
reagentc /info
如果顯示是enabled的狀態,那么恭喜你,問題已經解決了。
但是可能並沒有這么順利。我操作的時候,發現前面的指令執行成功了,但是再次查看狀態的時候,還是顯示disabled。而如果再次執行reagentc /enable
,就會提示:reagentc.exe 無法更新引導配置數據
。
引導配置數據(BCD)跟系統啟動有關,具體我也不懂。但是大概意思是說,因為系統中還殘留有之前的信息(畢竟是整個系統盤復制嘛),所以這個BCD對不上了。
(3)修復BCD
【警告】
注意!請務必慎重!請務必閱讀完所有步驟后再考慮是否操作!
(本文的后續步驟有可能導致電腦無法正常啟動。本文所描述的步驟是我親測有效的過程,但是不能保證其他人的情況和我相同,仍有可能導致電腦無法開機。所以請務必慎重。)
○ 下載easyBCD軟件,可以用來修復BCD。
注意一定要下載2.3版本的(要能添加win10引導項),低了不行,高版本我不清楚。有人反饋說下載的是2.3版本的,但是還是不能添加win10引導項。這個版本問題我不是十分清楚,但是如果不能添加win10引導項,則一定不要操作,否則電腦將無法啟動。
○ 下載了之后打開軟件,按下圖操作,恢復BCD配置。
注意:“恢復BCD配置”會刪除所有啟動項,導致計算機沒法啟動。因此操作之后千萬不要關機重啟!可以先備份配置
○ 恢復之后,再重新添加引導項
注意一定要有win10的選項。如果沒有,請換版本。
○ 添加完成后,可以打開Windows自帶的“系統配置”工具(在開始菜單或小娜搜索),查看引導項。
注意!確認引導項沒問題之后,再重啟。如果沒有引導項就重啟,則無法正常啟動Windows。
(4)啟用recovery
然后,再次用管理員運行命令提示符(cmd),執行以下指令。
reagentc /setreimage /path c:\Recovery\WindowsRE
reagentc /enable
如果還是提示reagentc.exe 無法更新引導配置數據
。那么在命令行執行bcdedit /enum /v
來查看引導項的guid。
然后將這個guid復制一下。復制方法:命令行界面點鼠標右鍵,選擇“標記”,然后用鼠標左鍵按住拖動選擇文本。選擇好后,按下回車復制。
之后,執行以下指令,注意有大括號
reagentc /enable /osguid {剛才復制的id}
執行成功之后,再用reagentc /info
查看。
這個時候,應該顯示是enabled了。那么Windows 10就可以更新了。
======================================================
另外:
如果使用路徑c:\Recovery\WindowsRE
有問題,也可以使用c:\Windows\System32\Recovery
。操作之前,文件夾中原本就有的同名文件可以替換,沒有關系。