2017年8月25日 星期五

[重灌] 如何解決0xc0000428 錯誤訊息: 無法驗證此檔案的數位簽章

根據這篇文章https://neosmart.net/wiki/0xc0000428/的解釋,是檔案BOOTMGR(放在啟動分割區)出問題。

甚麼是啟動分割區(active partition)的概念?根據這篇文章第二篇回覆http://www.makeuseof.com/answers/what-is-an-active-partition/ 啟動分割區就是一顆硬碟上,被設為可開機且含作業系統的分割區,每顆硬碟都只能設定一個分割區(partition)作為啟動分割區或叫可開機分割區(bootable partition)。電腦從此分割區開機。

有時當使用者升級現存系統到更新版本的windows或安裝service pack時,BOOTMGR的內容沒有適當的更新,於是顯示以下畫面:


發生此錯誤的原因:
1. 系統升級後BOOTMGR過時了
2. 使用舊的啟動硬碟(boot disk)截入更新版的windows
有時使用者可能在一顆硬碟安裝更新版的windows,然後插入另一顆裝著更舊版本的windows的硬碟來設定雙系統開機模式,在這情況下,舊版的BOOTMGR會被使用,於是開機程序中止。
3. service pack更新後,BOOTMGR過時了

由於這項啟動錯誤經常是因為過期的BOOTMGR,將它換成正確的版本通常有效。也就是把更新版的作業系統的BOOTMGR複製到啟動分割區


解決方法:買它的軟體或手動更新BOOTMGR

***重點來了,手動更新BOOTMGR必須有剛剛新安裝的作業系統的安裝光碟(或安裝usb),然後學習怎麼使用應用程式diskpart.exe(微軟開發內建的硬碟分割工具),要成功完成這項工作只要知道以下的diskpart命令:list是列出清單,select是選擇,disk是硬碟,partition是硬碟分割區,disk和partition全部都是以數字編號、選擇,detail是顯示詳細資訊就可以了。

首先要進入新安裝的作業系統安裝光碟的命令行修復模式(同場加映:如何用光碟開機),找出新安裝的作業系統所在分割區(partition)的label(就是平常說的C槽D槽,一個英文字母,或者叫「已掛載分割區英文代號」,但不知道為什麼diskpart命令detail partition裡面顯示的資訊是用Ltr, letter這個詞),因為命令行(同場加映:甚麼是命令行)修復模式下,似乎所有windows認得出來的分割區都會被自動掛載(包括平常進作業系統時會被隱藏的那100M系統保留區),且label都和平時正常進作業系統時不同,那100M的系統保留區在筆者桌機上變成C:,因此要用diskpart(很不方便)一個一個搜。
*如何分辨分割區:看label和size這兩項,如果大小都一樣或者分割區太多、混有ext系格式的分割區diskpart認不出來,就用平常的方式正常進作業系統把分割區的名稱改成容易辨認的,例如:win 7 ultimate x64 C、win 8.1 pro x64 C、Warehouse等等。


然後要找出啟動分割區(就是detail命令列出來的資訊中active(或使用中)那一欄是yes的分割區)的label,再下bcdboot X:\windows /s C: 命令,這個命令的作用是把更新版的作業系統安裝資料夾X:\Windows內的BOOTMGR複製到後面的啟動分割區C。
X:\Windows是我們的更新版的windows安裝資料夾,C:是我們的啟動分割區。此為舉例,請隨具體情況更改。
*這張圖是從網路隨便抓的範例圖,可以不用理volume

因為detail 命令只能一次顯示一個所選的硬碟/分割區資訊,遍歷一顆硬碟最簡單的方法是從0號分割區開始,不停的重複下列倒數最後兩條命令,直到搜到為止。筆者用從0號硬碟的0號分割區、0號硬碟的1號分割區......依序找到此硬碟最後一個分割區,再換1號硬碟0號分割區、1號硬碟1號分割區......以此類推的方式尋找。每搜到一個,就拿出紙筆,在便條上記下disk 0 partition(或簡寫為p) 1 F: Warehouse 等資訊,方便等等下命令。

*每次進去命令修復模式下disk和partition的編號都是固定的,因此記過一次就不用重記。寫好貼在機箱旁以後就不用重查,方便。

($後面加一個半形空格是linux系教學文的命令行寫法,用來表示半形空格後面接的是命令,因此$和半形空格不用打進去。)

列出所有實體硬碟
$ list disk
選擇硬碟0號
$ select disk 0
列出所有硬碟分割區
$ list partition

選擇分割區0
$ select partition 0
顯示選擇的分割區詳細資訊,檢查是否為啟動分割區,
$ detail partition

參考 https://superuser.com/questions/449717/finding-which-partition-on-a-particular-disk-is-active-from-the-command-line

沒有留言:

張貼留言

請保持網路禮儀! 謝謝!

注意:只有此網誌的成員可以留言。