六月 18 2013

無法啟動Hyper-V虛擬機器的0x80070490錯誤事件

分類:Servers

前陣子又到恆逸資訊教育訓練中心進修,因為這次選擇的課程不是最新的產品及技術,但是以微軟原廠教材授課,所以課程提供的虛擬機器也不太可能是講師自己做的,大多由官方在編製教材時同時製作;因此講師在一開始,先請學員將實體主機的日期調至 2011 年,避免 LAB 環境中的憑證有過期問題,導致無法將教材中的模擬操作給正常做完。

但一改完實體主機的日期,我們就發現,所有的 Hyper-V 虛擬機器都無法正常啟動,會出現類似如下的錯誤訊息:
「嘗試啟動選取的虛擬機器時發生錯誤。
'虛擬機器名稱' 無法初始化。' (0x80070490)。
找不到可使用的憑證。錯誤: '元素找不到。' (0x80070490)。」

當下,講師立刻採取另一種方式處置虛擬機器的時間設定問題(請容後述)。儘管講師的處理方式更是妥當,但看著錯誤狀況就在眼前發生,我突然有種柯南上身的感覺,就好像已經看到案發現場,不找出兇手似乎不行,決定犯賤嘗試利用下課跟中午休息時間找出問題發生的可能原因。

從錯誤訊息來看,應該是實體主機的時間回到過去,導致憑證超出有效期,所以使用憑證的服務也跟著出問題;於是將除錯方向鎖定在憑證上,但我不管怎樣從 MMC 的憑證管理單元,移除或匯入「使用者帳戶」或「電腦帳戶」上的可能憑證,甚至找方法重新產生本機的伺服器憑證,卻仍然會有錯誤狀況。

重新思考了一下,最後不斷研究測試才發現,我似乎把問題的解決方向給複雜化了。

同樣開啟 MMC,但這次要嵌入的憑證管理單元為「服務帳戶」。

找到「Hyper-V 虛擬機器管理」。

就會發現 Hyper-V 虛擬機器管理的個人項目中,無論使用者或電腦帳戶的憑證怎麼刪除,有兩張伺服器憑證仍在此文風不動。

再測試確認,日期只要不在名稱為 10508a 的憑證有效期內,就會發生錯誤。另一張 w2k8ch-r2 憑證的有效期為 2012/11/2 至 2013/11/2,因此可以直接排除問題是由他產生。

而解決方式其實很簡單,不需要用繁複的動作重新產生憑證,只要直接「刪除」10508a 這張憑證。

再重新啟動 Hyper-V 虛擬機器管理的服務,或者重新開機。
請務必在執行此動作前,將日期改至期望的時間

就能發現該服務所需使用的憑證會重新產生,並且是以新設定的日期起算一年之後到期。

這時,再啟動虛擬機器就沒有發生任何狀況了。

儘管上面的解決方式能解決問題,但我不認為這是一個很好的方法。主要在於:
1. 實體主機的日期時間應該要是正確無誤的。因為在同一台硬體上的虛擬機器,預設會透過整合元件及服務,與實體主機的時間進行同步,稍不注意也會影響到虛擬機器的運作。
2. 實體主機的時間若與外部環境差異過大,有可能會影響 Windows 更新甚至是其他服務。

回到一開始講師的處理方式,假使要滿足這次課程的 LAB 環境需求,我認為最正確的作法應該參考下圖,到所有虛擬機器的設定內容中,取消「時間同步化」的整合服務

在取消後,請優先開啟 LAB 環境的 DC,並從 DC 上更改期望的日期時間;這樣其他為同一網域的虛擬機器在正常啟動後,就會從 DC 自動同步校時。另外,據我進一步實驗觀察,虛擬機器若沒取消「時間同步化」的整合服務,即便虛擬機器是加入網域的狀態,日期時間仍會以整合服務為優先,而不是所屬網域的 DC。

雖然解決這次事件了......但日期改成兩年前,還是碰上憑證有效期失效啊!!! (抱頭)

目前有 13 個回應 , 標籤:


目前有 13 個回應

  1. geotom66 說道:

    Dear 蘇老:
    不知這種問題你有沒有碰過。
    Hyper-V 欲新增虛擬網路,但是卻新增失敗。
    錯誤訊息是 interface已經繫結到其他虛擬網路。
    但是interface從沒設定過虛擬網路,

    • AskaSu 說道:

      之前有做過或發生什麼事情嗎?
      有試過重開後再新增虛擬交換器是否正常呢?
      該 Interface 目前有勾了哪些通訊協定?
      網卡是哪一個廠牌的晶片及型號?

      • geotom66 說道:

        還沒有試過重開因為有AP SERVER掛著。
        該Interface之前沒有設定過,連網路線都沒接。
        型號是 INTER 82576。

  2. geotom66 說道:

    通訊協定只勾了Microsoft虛擬網路交換器通訊協定

    • AskaSu 說道:

      如果該網路卡並沒有被掛入任何的虛擬交換器,
      那麼網卡的通訊協定只被勾了「虛擬交換器」應該是不正常的,
      試著重新勾選讓他變成一般網卡該有的協定。

  3. wei 說道:

    Dear 蘇老:
    有個問題想請教一下。
    Hyper-V 欲新增虛擬機失敗。
    錯誤訊息是 無法在D:\Hyper-v建立外部設定存放區:系統找不到指定的路徑。
    (0x80070003)

    • AskaSu 說道:

      「D:\Hyper-v」這個資料夾是在 Host 上的實體磁碟嗎?
      還是掛在網路磁碟機上?
      有對該資料夾做過什麼 NTFS 權限修改嗎?
      嘗試修改預設的 VM 設定檔存放位置看看。

      • wei 說道:

        蘇老:
        D:\Hyper-v是Host上的實體磁碟
        該資料夾權限沒有修改過,權限與預設資料夾一樣
        有修改過,也是出現一樣的錯誤訊息系統找不到指定的路徑。
        (0x80070003)

        • AskaSu 說道:

          其實我沒遇過這樣的錯誤狀況,
          如果嘗試換另一個同樣具有Administrator權限的帳號,
          登入也是一樣的話,
          我會建議你把問題發到 TechNet 論壇
          說不定會有其他網友遇過類似狀況可以給予解決方向。

  4. ZUYAN 說道:

    請問憑證都只會有一年嗎??如果上線的機器哪天突然發生這事,又突然沒頭緒...真的會很慘的..

    • AskaSu 說道:

      我覺得,正常使用狀況下應該不會遇到這個問題,
      除非有特別去調整時間。

      而且我有用同樣的方式去查看 Windows Server 2012 R2 (Hyper-V 3.0 R2) 的環境,
      憑證並沒有如圖中 Server 2008 R2 的僅有一年的狀況。

      即使真的遇到,相信你也一定有方向可以解,
      因為你已經看過這篇文章了 /:)/

  5. shinyyo 說道:

    想請教一下
    會有裝Hyper-V 的2012 SERVER 加入網域之後
    去點開自己Hyper-V的VM
    會出現憑證無效的情況嘛
    但是只要一退出網域就可以恢復正常使用
    請問遇到這個問題該從哪個方向解決呢?

    • AskaSu 說道:

      加入網域後,確認一下該主機的時間是否與 DC 是一致的

發表迴響

*