開發與維運

談談Windows遷移上雲經常會遇到的問題 (一)

作者:江冉

最近在處理了幾例Windows遷移上雲的問題,問題還是比較有典型性的。分享一下具體的處理方法以及原理。

第一類問題是磁盤引起的,我們的雲遷移工具支持遷移系統盤和數據盤。當我們機器上有至少兩塊磁盤的時候,在遷移之後,有時我們會發現系統在雲上有很多奇怪的現象。如果此時我們做一些排查工作,典型現象如下:

機器有時是能夠啟動的,但是登錄之後發現很多程序不能使用。
IE瀏覽器是打不開的,點擊之後沒有反應。
所有和MMC相關的程序都打不開,比如事件查看器,服務管理器和計算機管理等等。
打開某些業務程序時會報告文件找不到。
運行sfcscan會報如下錯誤:

image.png

原因其實很簡單,Windows在辨認磁盤時是有自己的順序,但是在某些情況下可能會出現遷移之後的磁盤卷順序和遷移之前不同。這種情況可能會導致系統盤沒有被辨識為C盤,比如辨識為D盤。這本身並不會導致啟動問題,原因是因為Windows系統本身是從環境變量裡來尋找啟動時所需要的驅動的。比如如下註冊表:

image.png

我們可以發現Windows是用路徑%SystemRoot%來找到相應的DLL或者SYS的。而當系統盤符變為D:盤之後SystemRoot也會相應地調整為D:Windows,因此大部分系統文件都是可以被找到的。

然而有些安裝在其他目錄組件就不是這樣了,比如如下註冊表:

image.png

IE相關的文件是安裝在C:Program Files下面,而很多在註冊表裡的路徑是直接指向C:Program Files,並沒有環境變量。從而導致這些程序啟動失敗。

解決方法非常簡單,簡單地來說,我們需要將系統盤符改回C:盤。但是如果我們直接修改是無法做到這一點的,因為Windows系統會阻止這一行為。因此我們可以直接修改如下註冊表:

image.png

只要將鍵值名字的C:和D:對換即可解決該問題。注意重啟依然是必須的。

Leave a Reply

Your email address will not be published. Required fields are marked *