進階Raid 還原與運算方法 - 儲存設備

By Christine
at 2010-07-12T18:34
at 2010-07-12T18:34
Table of Contents
之前在版上寫過篇Raid 恢復文章
有人說 中文不好
確實不好. 所以後來有改寫圖文版
http://www.osslab.org.tw/Storage/Data_Recovery/Theory/Raid_Recovery
看本篇進階前請先把上面link看完跟想完
假設傻瓜Raid 分析程式出了問題
最近手癢寫了一點小program .
這篇就不要轉載了. 市面上書上其實也沒講某些概念
我們Lab做法目前也沒人公開.
準備東西Winhex
假設四顆硬碟 都在.只是Raid message掉失.
1.定位第一棵硬碟
MBR 為不錯定位方法 搜索55AA
2.P = A Xor B Xor C 反導 C = A Xor B Xor P (所以不能用這個去推那個為校驗塊)
基本上先以第一扇區. 隨便各找一個 同位置 Hex 玩玩
假設 為 BA,7E,00,C4
嗯 各位可能已忘了大學電概課 Xor算法.
沒關係 請拿出小算盤 切到程式設計師模式 再切到16進位
BA Xor 7E Xor 00= 換算出來為C4 表示此位置 資料正確
如果原硬碟都在 那是前端Sector 有毀,ECC校驗 有問題
各位可以用這方法去算算
只是 Raid 是一種交錯格式 所以前面壞了
後面不一定壞 各位可以先手算幾下. 確定好扇區比較沒問題後 再從此扇區做運算
3.簡單推斷Strip Size
分別以 64,128,256 Sectors 去觀察 1 Sectors =512 bytes , 1Kbytes=1024 bytes
如果 1~ 128 扇區看起來還像校驗塊 129扇區卻不是了 感覺是資料
(一般來講是比對其他硬碟同樣位置資料區 看資料連續性)
那此Raid Strip Size 就是64 *512 byte/1024= 32K
如果是少顆 4 pcs ..我確實就這樣Winhex瞄瞄就ok
但是如果是 6 pcs 以上. 我大腦吃不下hex 跟ascii code.
確實要有點補助工具
小弟寫的程式 只做啥?..很簡單
如果硬碟順序已不在 以文件 分區表 分析法
分算出順序.整出校驗碟 左循環 右循環 校驗塊大小
基本上不是程式笨的問題 (好吧 人笨.我拿VC 花幾小時亂寫好)
有時確實會算反左循環或右循環
不過關鍵排列"校驗塊" 跟"大小"幾乎都正確 傻瓜軟體就是少了 校驗塊排列法...
所以沒有邏輯思考. 是無法正確還原Raid.
切為人為判定
定義
校驗碟必為 第一或最後
比對第一顆資料硬碟 .後續其他顆校驗塊.
當看到正確校驗排列
此時正確的Raid 架構就出來了....
硬碟順序
架構
左循環同步 backward parity
左循環異步 backward dynamic
右循環同步 forward partity
右循環異步 forward dynamic
組錯Raid .小於Strip strip Size 內檔案會被掃出來
基本上就像你拿RStudio掃單顆Raid成員硬碟一樣..
其實我覺得電概課應該教Raid Recovery
如果我是教授, 小大一上完這種課 還排列不了 外面 10萬 case
那我會當死他... ><
有人說 中文不好
確實不好. 所以後來有改寫圖文版
http://www.osslab.org.tw/Storage/Data_Recovery/Theory/Raid_Recovery
看本篇進階前請先把上面link看完跟想完
假設傻瓜Raid 分析程式出了問題
最近手癢寫了一點小program .
這篇就不要轉載了. 市面上書上其實也沒講某些概念
我們Lab做法目前也沒人公開.
準備東西Winhex
假設四顆硬碟 都在.只是Raid message掉失.
1.定位第一棵硬碟
MBR 為不錯定位方法 搜索55AA
2.P = A Xor B Xor C 反導 C = A Xor B Xor P (所以不能用這個去推那個為校驗塊)
基本上先以第一扇區. 隨便各找一個 同位置 Hex 玩玩
假設 為 BA,7E,00,C4
嗯 各位可能已忘了大學電概課 Xor算法.
沒關係 請拿出小算盤 切到程式設計師模式 再切到16進位
BA Xor 7E Xor 00= 換算出來為C4 表示此位置 資料正確
如果原硬碟都在 那是前端Sector 有毀,ECC校驗 有問題
各位可以用這方法去算算
只是 Raid 是一種交錯格式 所以前面壞了
後面不一定壞 各位可以先手算幾下. 確定好扇區比較沒問題後 再從此扇區做運算
3.簡單推斷Strip Size
分別以 64,128,256 Sectors 去觀察 1 Sectors =512 bytes , 1Kbytes=1024 bytes
如果 1~ 128 扇區看起來還像校驗塊 129扇區卻不是了 感覺是資料
(一般來講是比對其他硬碟同樣位置資料區 看資料連續性)
那此Raid Strip Size 就是64 *512 byte/1024= 32K
如果是少顆 4 pcs ..我確實就這樣Winhex瞄瞄就ok
但是如果是 6 pcs 以上. 我大腦吃不下hex 跟ascii code.
確實要有點補助工具
小弟寫的程式 只做啥?..很簡單
如果硬碟順序已不在 以文件 分區表 分析法
分算出順序.整出校驗碟 左循環 右循環 校驗塊大小
基本上不是程式笨的問題 (好吧 人笨.我拿VC 花幾小時亂寫好)
有時確實會算反左循環或右循環
不過關鍵排列"校驗塊" 跟"大小"幾乎都正確 傻瓜軟體就是少了 校驗塊排列法...
所以沒有邏輯思考. 是無法正確還原Raid.
切為人為判定
定義
校驗碟必為 第一或最後
比對第一顆資料硬碟 .後續其他顆校驗塊.
當看到正確校驗排列
此時正確的Raid 架構就出來了....
硬碟順序
架構
左循環同步 backward parity
左循環異步 backward dynamic
右循環同步 forward partity
右循環異步 forward dynamic
組錯Raid .小於Strip strip Size 內檔案會被掃出來
基本上就像你拿RStudio掃單顆Raid成員硬碟一樣..
其實我覺得電概課應該教Raid Recovery
如果我是教授, 小大一上完這種課 還排列不了 外面 10萬 case
那我會當死他... ><
推 kimgtob :推! 一目了然!! 07/12 18:45
※ 編輯: laptop 來自: 210.17.22.180 (07/12 18:51) 推 chang0206 :...專業推! (我承認我END了... 07/12 23:18
推 BABU1990 :...專業推! (我承認我END了...睡覺先 07/13 00:34
推 kkkk123123 :大大!!!!! 05/28 04:22
Tags:
儲存設備
All Comments

By Caitlin
at 2010-07-15T13:18
at 2010-07-15T13:18

By Christine
at 2010-07-17T02:23
at 2010-07-17T02:23

By Hazel
at 2010-07-21T09:54
at 2010-07-21T09:54

By Mary
at 2010-07-22T06:35
at 2010-07-22T06:35
Related Posts
500GB硬碟推薦?

By Robert
at 2010-07-12T16:11
at 2010-07-12T16:11
消失的硬碟 但是Bios抓的到

By Necoo
at 2010-07-12T14:35
at 2010-07-12T14:35
請問格式化配置單位大小

By Joseph
at 2010-07-12T14:04
at 2010-07-12T14:04
Hitachi HDT721010SLA360 效能低落

By Isla
at 2010-07-12T10:28
at 2010-07-12T10:28
Raid備份?4顆250G HD在Bios下做成700G?

By Ophelia
at 2010-07-12T09:42
at 2010-07-12T09:42