■四川 賴文書
公司為了規范終端應用軟件安裝,通過SCCM(System Center Configuration Manager,系統中心配置管理器)統一部署和更新軟件。
在掃描網內計算機軟件資產時,發現部分新納入域管理的機器安裝了其他防病毒軟件,于是通過SCCM將其卸載并推送了360 防病毒和安全衛士。大部分計算機正常運行,但發現一臺聯想一體機ideacentre 運行發生了故障。在更新防病毒軟件后的第二天,用戶開機報告無法連接無線網絡,問題就發生在安裝新的防病毒軟件和安全衛士之后,排查時自然就恢復之前狀態,卸載360 防病毒軟件重啟后就正常連接了WiFi。沒想到第三天用戶又報故障,Windows系統無法啟動了,更無法開展工作辦公,看來推送安全軟件問題更嚴重了。

圖1 Windows 無法驗證此文件的數字簽名
到現場查看,屏幕顯示“最近的硬件或軟件更改可能安裝了未正確簽名或損壞的文件,或者可能是來至未知來源的惡意軟件。文件:windows/system32/winload.efi ;狀態:0xc0 000428;信息:windows 無法驗證此文件的數字簽名”如圖1 所示。重啟系統時按F8 鍵無法進入安全模式,仍然是上面的報錯提示,根據提示按回車鍵還提示“Error 1962:No operating system found,Boot sequence will automatically repeat”。
這可不是一般常規就能解決的,面對系統故障排查分析很耗費時間,最高效快捷的辦法就是重裝操作系統。
但用戶不接受重裝系統,擔心已安裝的財務等特殊軟件還需要聯系廠商來裝,影響當前工作進展。由于沒有該故障的解決經驗,只能從網絡搜索處理經驗。而網上看到的多是關于UEFI+GPT模式下Windows 10 更換Windows 7 系統的情況下,安裝后啟動失敗報“Winload.efi 文件無法驗證數字簽名”的解決方法。該問題主要計算機固件里的安全啟動沒有關閉造成,默認新機型不支持直接重裝Windows 7,而且新機型普遍采用UEFI+GPT引導模式,所以除了一鍵重裝系統工具軟件支持GPT 修復磁盤分區格式外,還要在計算機的BIOS 系統關閉安全啟動。
這和我們所遇到的場景不同,為了排除固件BIOS設置上的可能原因,按照網上的辦法檢查確認BIOS 里BOOT 項里的Secure Boot設置為“Disable”,也就是關閉了安全啟動;CSM 設置為“Enable”,開啟兼容傳統引導模式。使用U 盤PE 系統引導啟動計算機,通過磁盤工具軟件Disk Genius 檢查確認該計算機的磁盤是GPT分區表格式,基本掌握了磁盤的分區信息。
用戶認為是我們安裝了新的防病毒軟件導致系統啟動故障,我們初步判斷也可能是360 安全衛士更新系統補丁所致,出現這種情況也完全是意外,其他機器安裝都沒有問題,而分析系統故障并解決該問題則需要更多的時間去研究測試。為了不影響用戶工作,商定好兩小時內找不到解決辦法就只能重新安裝操作系統。

圖2 替換并備份winload.efi 文件
通過網絡搜索了解到UEFI 引導操作系統啟動過程分為三個步驟,首先UEFI BIOS 啟動時,自動查找硬盤下ESP 分區的bootx64.efi;其次由bootx64.efi 引導EFI 下的bcd 文件;最后由bcd 引導指定系統文件(一般為c:windowssystem32winload.efi)。
也就是我們看到的故障現象正是出在最后引導Windows 系統的環節,根據報錯信息提示,如果解決了winload.efi 文件的數字簽名問題,也就能正常啟動系統了,可是這文件的數字簽名又為什么無法驗證呢?
查找到一篇博客文章:https://blog.csdn.net/wdjhzw/article/details/24402521,是“winload.exe 無法驗證其數字簽名的解決方法”,和我們的“winload.efi 無法驗證其數字簽名”極其相似,再查詢相關資料了解到不同計算機固件版本下Windows引導的區別,BIOS 下引導文件是winload.exe,UEFI 下引導文件是winload.efi,兩者都是pecoff(PE 可移植可執行文件和COFF 通用目標文件格式文件)格式的,但UEFI 用的是各種固件接口,而BIOS 使用的是中斷。他就以替換法成功解決了難題,這讓我們看到了一個解決問題的思路。
由于涉及到系統安全,我們試著從正常電腦Windows 10 里復制該文件,再通過U盤PE 系統啟動故障電腦進行替換,對原文件進行了重命名備份,如圖2。
重啟聯想一體機,但還是看到了之前的故障畫面,還是不能驗證該文件的數字簽名,看來Windows 10 和Windows 7 還有是有很大的區別的。再從同事Windows 7 64 位操作系統的電腦里復制了winload.efi 和winload.exe,如法泡制替換了故障系統的文件,重啟聯想一體機就看到了熟悉微軟圖標的啟動畫面,一會兒就正常啟動到登錄界面,進入桌面無任何異常。
到此花了近2 小時的網絡查詢、故障分析、測試確認,終于解決了我們從未遇到的問題。用戶擔心明天再出現問題,于是我們反復斷電重啟了幾次一體機,Windows 均正常穩定運行,也就打消了用戶的顧慮。
為了防止用戶的一體機以后出現其他故障,我們配置了Windows自帶的工具“控制面板 所有控制面板項備份和還原”,定期將系統盤備份到D 盤,且只保留最近兩個副本。
后來又發現聯想一體機ideacentre 在更新補丁后無法啟動,我們使用上述方法成功解決,避免了重裝系統帶來不好的用戶體驗。