注:方法總結(jié)寫在了最后,是探索過(guò)程。
升級(jí)了Windows 10開發(fā)者預(yù)覽版,Build版本號(hào)16193。升級(jí)之后由于重重原因,打算回退Windows 10 Creator正式版。進(jìn)行系統(tǒng)恢復(fù)時(shí)發(fā)現(xiàn),原可以引導(dǎo)系統(tǒng)的U盤,出現(xiàn)了錯(cuò)誤。
具體的錯(cuò)誤現(xiàn)象:停滯在windows Boot Manager界面,錯(cuò)誤代碼:0xc0e90002。查詢宏映射得知0xc0e90002被映射為:STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION。看來(lái)是權(quán)限的問(wèn)題。于是,關(guān)閉了secure boot,還是不行。
我想,是不是這個(gè)版本的windows 10修改了UEFI的RAM代碼,導(dǎo)致只能認(rèn)16193以及更高的版本。我的電腦上正好有Fedora 26 Alpha測(cè)試版,調(diào)整好啟動(dòng)項(xiàng),F(xiàn)edora順利開機(jī)。于是,排除了只認(rèn)windows的可能。進(jìn)而想到,應(yīng)該不是修改了UEFI的RAM代碼。(僅僅是應(yīng)該,不確定是不是只識(shí)別16193更高版本)那么問(wèn)題來(lái)了,怎么能把這個(gè)系統(tǒng)重裝……
Dism++這個(gè)軟件開發(fā)團(tuán)隊(duì)設(shè)計(jì)了一個(gè)功能,在windows RE中運(yùn)行Dism++。Windows RE是一個(gè)Windows應(yīng)急恢復(fù)環(huán)境。

圖1 RE中運(yùn)行Dism++選項(xiàng)
在Windows RE中果然恢復(fù)成功。(恢復(fù)的是我以前備份過(guò)的Creator正式版系統(tǒng))。出于好奇,我又試了一下U盤啟動(dòng),還是0xc0e90002。
是不是應(yīng)該更新一下U盤中的Windows PE。一天過(guò)去了,無(wú)論如何(U+,量產(chǎn))都不能正確引導(dǎo)。

圖2 Windows PE
我的電腦只有UEFI沒(méi)有BIOS,所以必須把U盤制作成FAT32格式,然而這個(gè)格式又不能放大于4G的文件,所以……很頭疼。先不管格式了,全盤格式成FAT32.
用UltraISO這個(gè)軟件進(jìn)行U+啟動(dòng)盤制作。所有的都試過(guò)了。仍然不好使。PE已經(jīng)用到了Creator更新的PE。
上網(wǎng)搜了一個(gè)制作U+的PE。微PE。這個(gè)PE在知乎上評(píng)價(jià)很高,在此也推薦給大家。

圖3 WEPE網(wǎng)站

圖4安裝界面
在安裝界面可以看到,直接安裝到硬盤是可以的。為了排除U盤的干擾,這里直接安裝到了硬盤。沒(méi)有時(shí)間點(diǎn)擊完成安裝,直接操作Win+X——U——R(意思是重啟)。屏幕上:Surface——進(jìn)度條——選擇一個(gè)操作系統(tǒng)——“winPE”——【重啟】——Surface——進(jìn)度條——Windows BOOT Management——0xc0e90002,再次GG。
既然是權(quán)限的問(wèn)題,那么就跟證書有關(guān)。進(jìn)入EFI分區(qū),看到若干證書,修改時(shí)間是升級(jí)Insider的時(shí)間,還有BCD文件,修改時(shí)間就是安裝微PE工具箱的時(shí)間。由于新版windows 10 Creator(Build版本號(hào)1703)沒(méi)辦法正常映射EFI分區(qū)。用磁盤工具DiskGenius強(qiáng)制映射一下,提示系統(tǒng)錯(cuò)誤,沒(méi)有指定權(quán)限……是不是權(quán)限不足?管理員身份運(yùn)行,“系統(tǒng)錯(cuò)誤”。于是用起了windows自帶的diskpart。
先看看圖,和圖下的文字說(shuō)明,沒(méi)什么可以打字的。

圖5 diskpart

圖6 DiskPart分配盤符

圖7表面上看起來(lái)很好的E盤


圖8,圖9迷惑性的可以取得權(quán)限

圖10傻眼了吧,根本沒(méi)有安全選項(xiàng)卡

圖11一鍵添加超級(jí)管理員權(quán)限的代碼

圖12驅(qū)動(dòng)器上根本沒(méi)有取得管理員權(quán)限選項(xiàng)
想到System權(quán)限嗎?Windows XP及以前的時(shí)代,可以直接System權(quán)限運(yùn)行個(gè)explorer.exe,方法大家上網(wǎng)搜吧。Windows Vista后,不能像XP那么簡(jiǎn)單獲取System權(quán)限了。Windows 7以前(windows 8 8.1沒(méi)有測(cè)試過(guò))可以通過(guò)創(chuàng)建服務(wù)的方式來(lái)取得System權(quán)限。代碼還是給你們放出來(lái)。
圖13 Win7 System權(quán)限獲取代碼

圖14 Microsoft :休想隨便取得System權(quán)限
糟糕,可是我還有一個(gè)最后的辦法取得System權(quán)限。替換講述人(Narrator.exe)。

圖15講述人的原型

圖16取得Narrator的超級(jí)管理員權(quán)限

圖17分配修改權(quán)限


圖18 19替換成功的Narrator.exe

圖20成功取得system權(quán)限

圖21休想在System權(quán)限運(yùn)行explorer.exe

圖22終于可以了(這個(gè)是現(xiàn)在正常的樣子,故障的時(shí)候哪里想得到截圖)
用C:\Windows\Boot替換EFI分區(qū)里面的關(guān)鍵文件
替換完成后,心驚膽戰(zhàn)的重啟了一下,進(jìn)入系統(tǒng)了,長(zhǎng)舒一口氣。
測(cè)試PE,仍然0xc0e90002。
嘗試bcdboot

圖23想用bcdboot修復(fù)EFI分區(qū)

圖24正常狀態(tài)下可以修復(fù)的EFI分區(qū)(故障的時(shí)候這個(gè)直接提示權(quán)限不足)

圖25 System權(quán)限下也不能修復(fù)
真正的解決方案——mountvol

圖26 mountvol界面
看了一眼說(shuō)明之后,mountvol H: /s
奇跡出現(xiàn)了,EFI分區(qū)可以進(jìn)去了,我把它備份了一下,徹底格式化(因?yàn)楫吘挂祻S了,無(wú)所謂了),在一連串bcdboot c:\windows /l zh-cn /s h: /f UEFI
重啟
果然,不能進(jìn)系統(tǒng)了。
抱著碰碰運(yùn)氣的心里關(guān)閉了“安全啟動(dòng)”(secure boot)。
Surface——進(jìn)度條——選擇一個(gè)操作系統(tǒng)——Windows 10——正在尋找你——歡迎
哇!
重啟——Surface——進(jìn)度條——選擇一個(gè)操作系統(tǒng)——Windows PE——重啟——Surface——Windows Boot Management——Loading Files——進(jìn)度條——Windows PE正在啟動(dòng)
!!!
插入以前做好的U盤,Surface——Windows Boot Management——Loading Files——進(jìn)度條——Windows PE正在啟動(dòng)
塵埃落定。
總結(jié)一下:步驟
1.用mountvol這個(gè)微軟自帶工具,將EFI分區(qū)映射為本地磁盤。
在以管理員身份運(yùn)行的命令提示符窗口輸入mountvol H: /s
H就是待映射的盤符,這里舉個(gè)例子為H盤。
給出mountvol官方文檔:
Mountvol創(chuàng)建、刪除或列出卷裝入點(diǎn)。
用法
MOUNTVOL [drive:]path VolumeName
MOUNTVOL [drive:]path /D
MOUNTVOL [drive:]path /L
MOUNTVOL [drive:]path /P
MOUNTVOL /R
MOUNTVOL /N
MOUNTVOL /E
MOUNTVOL drive: /S
path 指定裝入點(diǎn)將駐留的現(xiàn)有NTFS目錄。VolumeName 指定裝入點(diǎn)的目標(biāo)的卷名稱。
/D 從指定的目錄中刪除卷裝入點(diǎn)。
/L 列出指定目錄的已裝入的卷名稱。
/P 從指定目錄刪除卷裝入點(diǎn),卸下此卷并使此卷無(wú)法裝入。您可以創(chuàng)建
一個(gè)卷來(lái)再次使此卷可以裝入。
/R 刪除不在系統(tǒng)中的、卷的裝入點(diǎn)目錄和注冊(cè)表設(shè)置。
/N 禁用新卷的自動(dòng)裝入。
/E 再次啟用新卷的自動(dòng)裝入。
/S 將EFI系統(tǒng)分區(qū)裝載到提供的驅(qū)動(dòng)器。
2.用DiskGenius格式化EFI分區(qū),格式FAT32
3.在以管理員身份運(yùn)行的命令提示符窗口輸入bcdboot c:\windows /l zh-cn /s H: /f UEFI
C:\Windows要替換成你安裝的Windows所在磁盤
H替換成你映射EFI的盤符
給出bcdboot官方文檔
Bcdboot - Bcd啟動(dòng)文件創(chuàng)建和修復(fù)工具。
bcdboot.exe命令行工具用于將關(guān)鍵啟動(dòng)文件復(fù)制到系統(tǒng)分區(qū)以及創(chuàng)建新的系統(tǒng)BCD存儲(chǔ)
bcdboot[/l
[/m [{OS Loader ID}]]
source 指定windows系統(tǒng)根目錄的位置。
/l 指定在初始化BCD存儲(chǔ)時(shí)使用的可選區(qū)域設(shè)置參數(shù)。
默認(rèn)值為“簡(jiǎn)體中文”。
/s 指定一個(gè)可選的卷號(hào)參數(shù),該參數(shù)用于指定要將啟動(dòng)環(huán)境文件復(fù)到
的目標(biāo)系統(tǒng)分區(qū)。默認(rèn)值為固件標(biāo)識(shí)的系統(tǒng)分區(qū)。
/v 啟用詳細(xì)模式。
/m 如果提供了操作系統(tǒng)加載器GUID,則此選項(xiàng)可以將給定的加載器
對(duì)象與系統(tǒng)模板合并起來(lái),以產(chǎn)生可啟動(dòng)條目。否則,只合并全局
對(duì)象。
示例: bcdboot c:\windows /l en-us
bcdboot c:\windows /s h:
bcdboot c:\windows /m {d58d10c6-df53-11dc-878f-00064f4f4e08}
4.重啟計(jì)算機(jī)
|