2016年1月21日 星期四

電腦主機或虛擬機無法啟動進入作業系統時,如何進行問題排除。

        一般當主機無法啟動時,我們會進行二種簡單的判斷,確認當下是否可以進入作業系統,如果可以進的話,基本上我們會有比較多的方式可以進行處理,但如果遇到無法進入Windows時,除非是硬體問題,進行更換後可能可以進入,否則你也沒有相關的Log可以得知資訊,通常往往只能透過重灌的方式進行解決,本篇提出幾個不同的作法,如Registry Hive、RegBack等觀念與方法,希望可以進一步的進行處理,或許可以讓你的主機恢復生機。

PS:在無法進入作業系統時,其實你還是可以透過Live Kernel-Mode Debugging來進行處理,但可惜就算連結成功了,但如果沒有熟悉底層作業系統的運作,你可能還是無法查出問題為何,所以本篇也不詳加說明,關於設定的詳細說明可以參考下列的網址。

Live Kernel-Mode Debugging Using WinDbg
https://msdn.microsoft.com/en-us/library/windows/hardware/hh451166(v=vs.85).aspx
How to Setup a Live Debug Using Physical Machines
http://blogs.technet.com/b/askcore/archive/2013/07/08/how-to-setup-a-live-debug-using-physical-machines.aspx

一開始我們先簡單的說明一下Registry Hive是什麼,如同底下的截取說明,你可以把他當作一個儲存登錄檔資訊的檔案結構,其實簡單的說也就是登錄檔存放的位置,當問題發生時,我們可以嘗試從登錄檔中找出可能的問題點,另外也可以嘗試進行登錄檔的手動還原。

A hive is a logical group of keys, subkeys, and values in the registry that has a set of supporting files containing backups of its data.

Registry Hives
https://msdn.microsoft.com/zh-tw/library/windows/desktop/ms724877(v=vs.85).aspx


另外通常如果電腦有問題時,我們也通常會先參考Windows中的事件檢示器看系統到底發生了什麼事,但是當系統無法正常開機時,通常也無從下手,所以下列我們就來看如何進行處理。

當電腦無法進入作業系統時,我們可以嘗試進行下列的動作。

a. 透過Live Kernel-Mode Debugging,但是難度太高,跳過。
b. 透過登錄檔修復還原與事件檢示器進行問題排除。


問題排除:

1、掛載虛擬機至本機磁碟
其實當作業系統無法進入時,如果是實體機,我們可以將硬碟取下,然後裝到另一台主機上確認問題,如果是虛擬機的話,也很簡單,只需將硬碟掛上Host主機上即可進一步處理,下列我們就以虛擬機掛載的方式進行

掛載VM Disk至本機磁碟上(掛載前請確認為關機的狀態)。

點選 Administrative Tools -> Computer Management -> Attach VHD。

選擇你要掛載的VHD。

掛載完成後,即可以透過檔案的方式進行存取。

2、下載雲端虛擬機磁碟至本機
另外這個方法也可以同樣的運用在雲端系統上,以Azure為例,我們可以透過下列的方式將VHD檔從雲端下載到本地端進行。

先確認VM放在那一個儲存體上,點選虛擬機器(傳統) -> 磁碟 -> 選擇你要磁碟 -> VHD位置

選擇目的儲存體帳戶

進入目的儲存體後即可找到你的VHD的檔案,然後再點選下載即可。


3、檢查問題磁碟上的事件檢示器
預設事件檢示器上有二個常進行確認的事件,對應到的登錄檔分別為:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System

對應到的實際路徑位址:
%SystemRoot%\system32\winevt\Logs\Application.evtx
%SystemRoot%\system32\winevt\Logs\System.evtx

How to move Event Viewer log files to another location in Windows 2000 and in Windows Server 2003
https://support.microsoft.com/en-us/kb/315417

4、還原備份的登錄檔
在很多的情況下,可能是由於使用者安裝了軟體或登錄檔毀損所造成,但通常的情況下只能嘗試從之前的還原點或是透過系統進行自動修復,所以我們來介紹一個內建自動進行備份登錄的方機制。

Registry Marriage
http://blogs.technet.com/b/mrsnrub/archive/2010/03/01/registry-marriage.aspx

在預設的情況下,系統會自動進行備份,名稱為RegBack,不同的作業系統有不同的備份行為,如在Windows 2003是在你進行ntbackup時進行,如果是Windows 2008/Vista則是每12個小時進行一次,到了Windows 2008 R2/Windows 7則是每10天進行一次,所以當有問題發生其實我們是可以透過此機制進行手動還原。

路徑位址:
C:\Windows\System32\config\RegBack

工作排程器資訊:

手動還原登錄檔程序:
a. 手動備份C:\Windows\System32\config下的所有檔案
b. 將所有C:\Windows\System32\config\RegBack底下的檔案還原到C:\Windows\System32\config的目錄下。

5、手動掛載Registry Hive到本機登錄檔上:
5-1 開啟regedit.exe -> 請先點選一個根節點(HKLM為例) -> File -> Load Hive,然後選擇已掛載磁碟上的登錄檔。

掛載磁碟:Disk M
掛載位址:M:\Windows\System32\config


5-2 輸入掛載後的暫時名稱。

5-3 完成後,你就可以看到在選擇的根目錄上即有一個暫時新增的登錄節點。


關鍵字:Registry Hiveunable to start vm instance

沒有留言:

張貼留言