Server 2008 HyperV(或Core)上設置的RAID5命令行修復
我有一個 HyperV 盒子,它在其中一個磁碟上顯示壞塊。我從diskpart得到這個;
DISKPART> list disk Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 148 GB 4096 MB Disk 1 Online 1863 GB 0 B * Disk 2 Online 1863 GB 0 B * Disk 3 Errors 1863 GB 0 B *
我打字;
sel disk 3 offline disk online disk
現在它顯示為線上。夠了嗎?大概它可以解決一兩個壞塊。有什麼方法可以重新格式化失敗並從命令行將其與數組重新同步。我必須立即更換嗎?
更新 - 修復後仍顯示“Failed Rd”
所以使用備用電纜,我插入了一個全新的附加硬碟。顯然我應該將現有單元留在原處,因為它無法修復缺少磁碟的陣列(我不知道為什麼 - 這似乎是重點)。然後我做了以下初始化它;
sel disk 4 convert dynamic
然後修復陣列;
sel vol 0 repair disk=4
據我了解,這應該是
4
在沒有故障磁碟的情況下使用新磁碟來修復陣列3
。正如預期的那樣,我明白了;DISKPART> list vol Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- * Volume 0 E E_RAID5_4TB NTFS RAID-5 3726 GB Rebuild Volume 1 C C_BOOT(MIR) NTFS Partition 39 GB Healthy System Volume 2 D D_DATA(MIR) NTFS Partition 52 GB Healthy Volume 3 G G_IMAGES(MI NTFS Partition 52 GB Healthy Boot
然而,大約 12-24 小時後,陣列恢復到
Failed Rd
新磁碟上的 1863 個可用空間。我現在已經嘗試了兩次,結果相同。我現在正在嘗試更簡單的recover
命令,但我期待相同的結果。在過去十年左右的時間裡,這一直是我對 RAID 的體驗。對於驅動器故障頻率相對較小的個人伺服器(平均每 2-3 年一次),我當然認為 Windows RAID 比任何在我之前似乎總是被棄用的硬體控制器更容易。需要用它來恢復。然而,我認為我從來沒有成功地用硬體或軟體輕鬆地恢復 RAID 陣列並按照承諾的方式實現夢想。
當(如我所料)
recover
命令無法修復磁碟時,我將嘗試將新的 HDD 物理放置在故障磁碟的位置並嘗試以這種方式使其聯機。我似乎隱約記得上次做過類似的事情。不過,即使是為了提醒我更換物理磁碟的步驟,我也將不勝感激。
因此,按照我的經驗,恢復過程似乎不適用於記錄的方式。
我通過將故障磁碟複製到一個全新的磁碟然後物理插入它來代替故障磁碟來解決它。然後,我發出了 diskpart
recover
命令(我相信它是repair
.我設法在沒有 ISO 引導恢復 CD 和外部硬體的情況下做到這一點,如下所示;
1)插入新磁碟(使用備用埠)。並記下磁碟 ID。確保它處於離線狀態。
- 乾淨地使 RAID 卷離線;選擇卷 0
REM Remove drive letter association - you may need to shut... REM ...down any services using this remove offline vol
- 找到造成故障的物理磁碟。
detail vol
將告訴您卷中有哪些磁碟,list vol
將顯示哪個磁碟 ID 有錯誤。我所有的磁碟都是相同的型號,所以我將 SATA 電纜拔出,等了幾秒鐘,然後list disk
再次發出,看看哪個磁碟 ID 失去了。並記下了這一點。然後在我的情況下;sel disk 3 offline disk
4)為了複製磁碟足以讓Windows誤以為新磁碟只是修復過的舊磁碟,我懷疑它需要具有相同的磁碟“簽名”,所以我需要一個低級扇區副本。
大多數使用 VSS 或複製文件的複製工具都不會這樣做,所以我發現了這個:http ://hddguru.com/software/HDD-Raw-Copy-Tool/它非常棒,並且有一個看起來像的零安裝 EXE它被設計為在 WinPE 下執行,因此在從命令行啟動時可以在 HyperV 伺服器(所以大概是伺服器核心)下完美執行。
然而,我再次非常需要知道哪些磁碟是源磁碟和目標磁碟,但該工具顯示磁碟型號和序列號而不是磁碟元件 ID,因此我使用了相同的技巧,即拔出我(現在已知)HDD 上的物理電纜並重新啟動HDD Guru 工具,直到我寫下我需要從中複製的兩個磁碟的標識符。
然後我只執行了即使在讀取錯誤後仍繼續的副本。我懷疑我只需要複製前幾個扇區,但無論如何我讓它執行完成(12 小時)。
- 現在拉出兩條 SATA 電纜,移除故障驅動器,然後將新複製的磁碟插回原來的位置。重新聯機後,Windows 應該會在它認為故障磁碟所在的同一插槽中看到具有相同簽名的驅動器。
6)然後只需重建陣列(另外12小時)並將其重新上線即可;
sel disk 3 online disk sel vol 0 online vol recover
12小時後……
sel vol 0 assign letter=e
然後我重新啟動,因為它比重新啟動我停止的所有服務(即 Hyper-v)更容易;
c:\> shutdown /r /t 0
當我再次查看時,Hyper-V 現在正在執行一個健康的磁碟,並且我的虛擬機已恢復。似乎 HyperV 不會在故障磁碟陣列上執行虛擬機。看起來我可能在其中一個 VHD 上損壞了驅動器,但這是另一回事。
令人難以置信的是,RAID 恢復過程並沒有更智能,但我注意到,從 Windows 備份到 ISA 備份/恢復這些年來,即使使用 Windows 備份產品,它們似乎也假設您將恢復完全相同的硬體,即使該硬體有故障 - 這使得備份幾乎毫無意義。
現在我已經恢復正常執行了——我希望這份成績單可以幫助處於類似位置的其他人。
RAID 陣列將附帶它自己的軟體。大多數控制器將允許您在核心下執行軟體。如果沒有,您可以在 BIOS 下執行一些,而在 CD 上執行一些。對於 RAID 陣列,您通常需要引入一個新硬碟作為熱備件,然後它會將其添加到 RAID 本身並重新同步。更改的硬碟驅動器現在是關於 RAID 陣列的新硬碟驅動器。否則,您可能會失去整個陣列。閱讀有關 RAID 控制器的 Fine Manual。