Linux

雙盤故障後Software Raid 10損壞的超級塊,如何恢復?

  • December 15, 2012

我有一個帶有 6 x 2tb 硬碟的軟體 raid 10(raid 1 用於 /boot),作業系統是 ubuntu 10.04。

我有一個raid控制器故障,導致2個驅動器不同步,系統崩潰,最初作業系統沒有啟動並進入initramfs,說驅動器很忙,但我最終設法通過停止和組裝驅動器來啟動raid .

作業系統啟動並說存在文件系統錯誤,我選擇忽略,因為如果出現問題,它將以只讀模式重新掛載 fs。

一切似乎都執行良好,2 個驅動器開始重建,我確信這是 sata 控制器故障,因為我的日誌文件中有 dma 錯誤。

此後不久,作業系統因 ext 錯誤而崩潰。

現在它沒有啟動突襲,它說 /dev/sda2 上沒有超級塊,即使我使用所有設備名稱手動組裝。

除了其他所有東西,我還做了一個 memtest 並更換了主機板。

編輯:這是我的分區佈局

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x0009c34a

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        2048      511999      254976   83  Linux
/dev/sdb2          512000  3904980991  1952234496   83  Linux
/dev/sdb3      3904980992  3907028991     1024000   82  Linux swap / Solaris

所有 6 個磁碟具有相同的佈局,分區 #1 用於 raid 1 /boot,分區 #2 用於 raid 10 far plan,分區 #3 是交換,但 sda 沒有啟用交換

EDIT2:這是 mdadm –detail /dev/md1 的輸出

Layout : near=1, far=2
Chunk Size : 64k

UUID : a0feff55:2018f8ff:e368bf24:bd0fce41
Events : 0.3112126

Number Major Minor RaidDevice State
0      8     34    0          spare rebuilding /dev/sdc2
1      0     0     1          removed
2      8     18    2          active sync /dev/sdb2
3      8     50    3          active sync /dev/sdd2
4      0     0     4          removed
5      8     82    5          active sync /dev/sdf2

6      8     66    -          spare /dev/sde2

EDIT3:我執行了 ddrescue,它從 sda 複製了所有內容,除了一個 4096 字節的扇區,我懷疑它是 raid 超級塊

EDIT4:這裡有一些資訊太長,不適合這裡

lshw: http ://pastebin.com/2eKrh7nF

mdadm –detail / dev / sd

$$ abcdef $$1 (raid1): http://pastebin.com/cgMQWerS mdadm –detail / dev / sd

$$ abcdef $$2(raid10): http: //pastebin.com/V5dtcGPF /dev/sda2 的 dumpe2fs(來自 ddrescue 複製驅動器): http: //pastebin.com/sp0GYcJG

我嘗試使用命令根據此資訊重新創建 md1

mdadm --create /dev/md1 -v --assume-clean --level=10 --raid-devices=6 --chunk=64K --layout=f2 /dev/sda2 missing /dev/sdc2 /dev/sdd2 missing /dev/sdf2

但我無法安裝它,我也嘗試根據我最初的 mdadm –detail /dev/md1 重新創建它,但它仍然沒有安裝

它還警告我 /dev/sda2 是一個 ext2fs 文件系統,但我猜是因為 ddrescue

EDIT5:我發現 /dev/sdb 實際上是 /dev/sdc ,反之亦然,我也犯了一個重大錯誤,因為我使用的較新的 live cd 預設為 1.2 元數據,這可能已經破壞了這些磁碟上的數據,好事是我將它們複製到其他 6 個驅動器。

EDIT6:我終於設法通過重新創建它來恢復我的數組,這次使用正確的 –metadata 選項。如果有人處於我的情況並閱讀此內容,那麼鏡像您的數據非常重要,這樣您就可以像我一樣從錯誤中恢復,還請確保 mdadm –examine 所有驅動器,因為它們的名稱會在啟動 live cd 時更改並且以正確的順序重新創建很重要,任何標記為備用的驅動器都必須設置為失去。

作為專業數據恢復公司的所有者,重建損壞的 RAID 的正確方法是創建每個驅動器的複製或映像。切勿使用原件。獲得驅動器映像後,您需要在 X-Ways 等某種軟體中重新創建 RAID。請務必保持驅動器的正確順序!重建 RAID 陣列可能非常複雜,如果數據很重要,您應該標記驅動器並將它們發送給信譽良好的公司,但大多數 RAID 恢復並不便宜。

引用自:https://serverfault.com/questions/454759