■ 河南 郭建偉
編者按:在Windows 7/8等系統中,WinRE發揮著重要作用。和WinRE環境關系最密切的是“Reagentc.exe”命令。要想用好WinRE,必須深入了解該命令的功能和用法。
啟動Windows 8時,點擊F8鍵,在啟動菜單中點擊“修復計算機”項,可以進入Windows 8的WinRE環境,利用其提供的系統恢復和初始化模塊,可以快速恢復系統活力。不過,這兩個模塊在運行時需要安裝光盤的支持,使用起來并不方便,如果將其集成到硬盤中,就可以提高使用的靈活性。
先使用WinRAR等工具將Windows 8的安裝鏡像ISO文件解壓到某個路徑,例如“e:windows8”等。之后在Windows 8中點擊“Win+X”鍵,在彈出菜單中點擊“命令提示符(管理員)”項,在CMD窗口中輸入“Reagentc /info”命令,查看修復環境信息。
執 行“Reagentc /disable”命令,關閉修復環境,可以自定義安裝源位 置。 執 行“Reagentc/setosimage/pathe:windows8sources/index"1"”命令,將安裝源路徑設置為“e:windows8”,并且使用編號為“1”的映像。執行“reagentc /enable”命令,開啟修復環境并查看修改結果。再次執行“reagentc /info”命令,在提示信息中的“恢復映像位置”欄中就會顯示“?GLOBALROOTdeviceharddisk0partition3windows8sources”字樣,在“恢復映像索引”欄中顯示“1”,說明修復完成。
當以后系統出現問題后,在控制面板中打開所有的選項后,執行“修復”程序,當執行修復動作后,在操作向導的提示下就可以完成修復操作,而無需光盤了。當然,也可以在WinRE環境中執行系統恢復操作。
筆者平時使用的是Windows 7,為體驗Windows 10新功能,筆者安裝該系統讓Windows7和Windows 10同時在本機上安家落戶。但筆者發現Windows 10 會自作主張的覆蓋原Windows 7的WinRE環境,這讓筆者感到有些不適應。
其實,使用Reagmentc命令就可以讓兩者的WinRE各行其道互不干擾。不管是Windows 7還是Windows 10,其WinRE環境都是由“winre.wim”和“boot.sdi”兩個文件組成,都位于系統盤中的“Recovery”文件夾中的特定路徑中。因此,只要對兩個系統的WinRE參數進行適當修改,將其指向各自位置即可解決上述問題。
先進入Windows7環境,以管理員身份啟動CMD窗口,執行“reagentc/info”命令,在返回信息(如圖1)中的“WinRE.Wim目錄”欄中可以看到其安裝路徑位于“C:Recovery”目錄,這和Windows10的WinRE路徑是一致的。為避免沖突,執行“mdf:win7re”,在F盤創建名為“win7re”的文件夾,用來存儲Windows7的WinRE相關文件。執行“Reagentc/disable”、“Reagmentc/setreimage/pathf:win7re”命令,將Windows7的修復環境相關文件路徑修改為“f: ecovery”文件夾。執行“Reagentc/enable”命令激活WinRE模塊。執行“Reagmentc/info”命令,可以看到Windows7的WinRE關聯路徑已轉移到“f: ecovery”路徑下的某個與“BCDID”參數同名的文件夾中了。這個“BCDID”每臺主機是不同的。

圖1 查看WinRE配置參數
之后進入Windows 10 環境,按同樣的方法,在其他磁盤中為其WinRE創建名為“win10re”的文件夾,之后按照上述方法調整WinRE的位置信息即可。完成以上操作后,分別將Windows 7和 Windows 10的“winre.win” 和“boot.sdi” 文 件復制到不同磁盤根目錄下的“Recovery”文件夾中的與對應BCD ID 同名的文件夾中。這兩個文件可以從已經裝好的Windows 7或Windows 10主機上提取,也可以打開其安裝鏡像文件,從“Boot”文件夾中直接提取“boot.sdi”文件,或將其中的“Sources”文件夾中的“install.wim”文件提取出來,使用WinMount加載后,從“windowssystem32 ecovey”提 取“winre.wim”文件。當然,要區別32位或64位版本。
當Windows 7出現問題后,可以在開機后進入WinRE環境,在其中提供了一些工具模塊,可以對系統進行修復。不過,Windows 7自帶的WinRE環境其實比較簡陋。
其實,可以使用功能更強大的WinPE模塊來取代相對簡陋的WinRE模塊,讓系統維護變得更加得心應手。Windows 7中 的Winre是基于Windows 7內核的PE 3.0系統,可以很容易的找到功能更完善的相關文件,例如可以從下載所需的WinPE包來提取相關文件。Windows 7的重裝操作其實使用的是安裝鏡像文件中包含的“install.wim”文件,只要將其提取出來,并指定安裝源位置,即可快速重裝系統。
將下載的WinPE包打開后,提取其中的“Win7re.wim”文件。并根據上面的方法獲取“boot.sdi”文件。之后在非系統盤(如D盤等)創建某個目錄,用來存儲相關文件,例如“d: ecovery”。將上述“win7re.wim”文件更名為“winre.wim”,將其和“boot.sdi”一起放置到上述目錄中。將從安裝鏡像文件中提取的“install.wim”文件也存放到D盤根目錄下。以管理員身份啟動CMD窗口,在其中輸入“reagentc/disable”、“reagmentc/setosimage/pathd:”、“reagentc/setreimage/pathd: ecovery”、“reagentc /enable”等命令,就可以執行對原WinRE模塊的替換動作。運行“Reagmentc/info”命令,可以看到WinRE的位置已發生了改變,指向了“d: ecovery”目錄中的某個文件夾。進入該文件夾,可以看到“winre.wim”和“boot.sdi”等文件。如果當前用戶無法查看該文件夾,可以打開屬性窗口,在“安全”面板中將讀寫等權限設置為完全控制,就可以順利查看該文件夾。以后在開始時按下F8鍵,在彈出菜單中選擇“修復計算機”項,就可以進入新的WinRE環境中了。
按照傳統方法,可以將Windows7的安裝盤或鏡像文件打開,從“Sources”文件夾中提取“Install.wim”文件,之后將其存放到非系統盤中的某個路徑中,例如“D:install”等。之后以管理員身份啟動CMD窗口,在其中執行“Reagentc/setosimage/pathd:install”和“Reagentc/enable”命令。之后重啟系統并點擊F8鍵,在彈出菜單中選擇“修復計算機”項,在彈出窗口中點擊“重新安裝Windows”項,確認后執行重裝操作。當系統安裝完畢后,當進入新系統后,會彈出詢問窗口,提示是否還原用戶文件夾數據。如果之前已備份過用戶文件,可以點擊“還原我的文件”按鈕來還原之前的備份數據。而原來的Windows7被放置到系統盤中的“Windows.old”文件夾中,該文件夾體積很大,建議清除以節省空間。
上述方法雖然簡單,不過存在一定問題,如果別的用戶將上述路徑誤刪,就無法快速重裝系統了。很多品牌機都內置自動還原功能,在啟動時按下某個熱鍵(如F11等),即可快速還原系統。其實,也可以利用Reagentc命令實現類似功能。首先必須創建存儲相關文件的分區并將其隱藏起來。以管理員身份運行“diskmgmt.msc”程序,在磁盤管理窗口中選擇最后一個分區,在右鍵菜單上點擊“壓縮卷”項,在彈出窗口中顯示可用壓縮空間大小信息,在“輸入壓縮空間量”欄中輸入合適的數據,應不小于3GB,最好達到5GB以上。點擊“壓縮”按鈕,從該分區尾部劃出預設容量的空白區域。之后選中該區域,在右鍵菜單上點擊“新建簡單卷”項,按照提示完成新分區的創建操作,并為其分配盤符,本例假設為“L”。
當然,也可以使用“Diskpart”命令快速分區。在CMD窗口中執行“diskpart”命令,在提示符下執行“ListDisk”命令,顯示所有磁盤信息。如果安裝有多個硬盤,需要選擇目標磁盤,例如執行“selectdisk0”,選擇第一個磁盤。之后執行“ListPartition”命令,顯示該盤中的所有分區。磁盤假設最后一個分區盤符為“I”,其卷號為8,執行“selectPartition8”命令選中該區,執行“shrinkquerymax”命令查詢該分區中的可回收容量。假設該分區有10GB的自由空間,從中可以劃分5GB左右空間作為新的分區的話,可以執行“shrinkdesired=5000”命令,完成分區分割操作。之后在磁盤管理界面中為該空白區域進行格式化,創建盤符等操作。
在該分區中創建一個名為“Recovery”目 錄,在 其中再創建名為“WindowsRE”的子文件夾,將相關的“winre.wim”、“boot.sdi”、“install.wim”文件復制到“WindowsRE”文件夾中。以管理員身份啟動CMD窗口,執行“Reagmentc/disable”、“Reagentc/setreimage/pathL:RecoveryWindowsRE/bootkey4300”、“Reagentc/setosimage/pathL:RecoveryWindowsRE”、“Reagentc/enable”等命令,完成自定義WinRE啟動路徑,重設安裝源等操作,其中的“bootkey4300”參數表示將F9鍵設置為激活熱鍵。“4300”是F9鍵的代碼,此外,還可以設置其他的熱鍵,例如F10代碼為4400、F11代碼為8500、F12代碼為8600等。接著需要將“L”盤隱藏起來,最簡單的方法是借助于“diskpart”命令來實現。執行“diskpart”、“selvolL”、“removeletter=Ldismount”、“setid=27override”、“exit”等命令,就可以將L盤隱藏起來。當L盤處于隱藏狀態時,在Windows7的磁盤管理界面中是無法對其格式化和刪除操作的,這樣可以保護相關文件的安全。當Windows啟動時,點擊F9鍵進入WinRE環境,在彈出窗口中點擊“重新安裝Windows”項,就可以重裝系統了。
利用上面的方法,雖然可以在WinRE中恢復系統。但操作有些繁瑣。例如按照常規方式進入WinRE環境,必須先以本地管理員身份登錄系統才可以打開系統修復選項窗口。其實完全可以化繁為簡,讓系統恢復更加快捷。打開Windows 7安裝鏡像文件,在其中“Sources”文件夾中將“Boot.wim”提取出來,并將其更名為“Winre.wim”。之后在非系統盤上創建名為“Recovery”的文件夾,將該文件和“boot.sdi”文件復制進來。利用上面的方法,使用“Reagmentc”命令將WinRE的位置指向該文件夾。
運行Windows 7的備份和還原程序,在窗口左側點擊“創建系統鏡像”項,在操作向導下對系統盤進行備份操作,將創建的鏡像文件存儲到指定分區,假設盤符為K。該分區自由空間必須大于4GB。當備份完成后,在該分區中的“WindowsImageBackup”文件夾中可以看到具體的備份數據。以管理員身份啟動CMD窗口,執行“wbadmin get version –backuptarget:k:”, 獲 得該備份鏡像的版本標示符,其內容由備份時的具體時間日期信息組成。如“12/11/2014-16:29”等。使用記事本創建名為“recov.bat”的文件,其內容包含“Ping 127.0.0.1 –n 10>nul”、“Webadmin Start SYSRECOVERY–version:12/11/2014 -16:29–backupTarget:k: -quiet”、“Weputil reboot”三行命令。
其中第一行命令可延時10秒,讓用戶可以自由選擇所需操作。第二行命令將選定的備份鏡像文件恢復到系統盤。注意,使用“Webadmin”命令執行還原操作會覆蓋系統盤中的所有數據。因此最好事先將系統盤中的重要數據備份。最后一行命令執行重啟操作。之后當系統出現問題時,可以在啟動時按下F8鍵,選擇“修復計算機”項進入WinRE環境,注意此時的WinRE環境有些特別,會出現安裝系統的提示界面,在其中點擊“Shift+F10”鍵,打開命令提示符界面,在其中執行“f: ecover.bat”文件,就可以使用預設的備份鏡像文件來對系統盤執行恢復操作。這里假設“recover.bat”位于F盤根目錄下。這樣在WinRE環境中無需輸入登錄密碼,即可直接恢復系統活力了。