2013年2月15日 星期五

[windows] Last Known Good

完整投影片:  Last_Known_Good.pptx (15 pages)
這部分的知識是從 Windows Internal 第六版 page 530 文章, 閱讀而來.
大家應該有過一個經驗, 那就是為了玩某個遊戲或軟體, 安裝後整個系統就不能開機了. 偏偏這種麻煩事又發生在明天要交報告的時候. 我以前的做法只有硬著頭皮重灌作業系統. 現在我才知道 Windows 早就有一個機制叫做 Last Known Good. 可以把最後一次成功開機的設定記起來. 危急時可以拿出來使用.

[使用時機系統至少要有一次成功開機才能使用若你的機器從一開始就沒有成功開機過那你可能要尋求其他的方法解決這個問題.

[為什麼與我有關] 我們都知道寫 Driver 常常會把系統搞掛掉, 我們可以使用 Last Known Good 機制, 讓系統快速恢復正常, 做出必要的措施.


Note:
Windows 8 提供了很多開機的方法 (System Restore, System Image Recovery, Automatic Repair etc.), 我們這裡提供的是 Last Known Good 方法. (在 Windows8 並非預設選項)



Outline
  • Introduction
  • How to enable Last Known Good option in Windows 8


重點: 
  • 系統會 crash 的原因, 大多是因為錯誤的 系統設定 或者是錯誤的 driver/service 設定所造成的.
  • 另外, 有問題的 driver 是主要發生無法開機的原因之一



Last Known Good 的原理
  1. [標記] 若之前因為開機失敗, 而使用 Last Known Good 方式開機, 你會發現在 System Select Setting Key 中看到 Failed = 1.
  2. [恢復新資料] HKLM\SYSTEM\CurrentControlSet 指向 LastknownGood 的上一次成功開機設定
  3. 因為在 LastKnownGood 的設定中沒有你剛剛裝的有問題 driver. 這樣你的系統就可以順利開機
下圖是我的機器的狀態

出問題時, 我怎麼選擇 Last Known Good 選項, 讓我的機器能夠正常開機呢?

  如果你的系統是 Windows 7, 你會看到下面的開機選項

但我的電腦是 Windows8, 怎麼都找不到 Last Known Good 選項. 該怎麼讓它出現呢?
詳細作法如下:

Step 1: 執行 regedit, 並在 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager], 建立一個 [LastKnownGood] 並且設定 Enabled = 1





Step 2: Configuration Manager , 新增 BackupCount = 2

Step 3: 利用 bcdedit 設定開機選項 
Step 4: 最後, 再利用 bcdedit 設定 BootMenuPolicy Legacy” 重新開機, 即完成設定


當你重新開機時, 按下 F8 鍵. 你就會看到 Last Known Good 選項!


如果你怎麼進入 Windows 8 Advanced Start up 選項有興趣. 可以參考下面的步驟.



Enjoy! 
by Jing.

References
  • http://blog.itbubble.ru/2012/11/how-to-enable-last-known-good.html
  • Windows Internal, 6th, pp. 530.