Raid重組復習
今天看了下這次2021長安杯的手冊,有考RAID重組知識點,所以復習下。一般需要手動分析偏移、條帶、盤序的都是硬Raid,我們這里就重點看硬Raid的重組。至於軟Raid以前美亞也考過,取證大師能直接重組,而且對性能其實沒啥提升,大家做個了解即可。
RAID5簡介
現在用的Raid一般都是Raid5,什么是Raid5呢?
RAID 5的特點、原理
RAID5 應該是目前最常見的 RAID 等級。校驗數據分布在陣列中的所有磁盤上,校驗原理 A1^A2^A3=Ap。假如此時Disk2損壞了,那么用Disk0、1、3互相異或,A1^A2^Ap=A3,可以還原磁盤數據。
即損壞一塊硬盤不影響數據完整。
當陣列磁盤 數量增加時,並行操作量的能力也隨之增長,可比 RAID4 支持更多的磁盤,從而擁有更高的容量以及更高的性能。
Raid5的存儲效率=(m-1)/m(m為硬盤數量)。
Raid陣列參數:
前偏移:物理磁盤所在扇區號(MBR偏移)
條帶:塊的大小
盤序:物理磁盤組成Raid時的順序
Raid Level:Raid5、Raid6....
循環方式(Raid5、6、HP)
RAID5的左異步、左同步、右異步、右同步
左循環與右循環
所謂“左右”即循環方向,是指 RAID 中的校驗塊的走向,一種是左循環,一種是右循環。
左循環
即校驗塊P0,P1....Pn從左至右旋轉而下
右循環
即校驗塊P0,P1....Pn從右至左旋轉而下
異步與同步
在 RAID5 中,數據塊的寫入有兩種方式,一種是異步,一種是同步
異步
寫滿一個條帶需要轉入下一個條帶寫入時,直接回到 0 號盤進行寫入。也就是每個條帶內都是由低號盤開始寫入,寫滿一個塊后轉向高號盤繼續寫入,這種方式不考慮校驗塊的位置,稱為異步。
D0
D1
D2
P0
D3
D4
P1
D5
D6
P2
D7
D8
P3
D9
D10
D11
同步
寫滿一個條帶,需要將數據寫入下一個條帶時,先判斷下一個條帶的校驗塊位於哪個磁盤,然后將數據寫入校驗塊所在的磁盤的下一個磁盤,寫滿一個數據塊后轉向高號盤,直至該條帶內編號最大的數據塊寫滿后,再回到同條帶內的 0 號盤寫入,直至本條帶內的校驗塊所在的磁盤的前一個磁盤。
也就是說,一個條帶內的第一個數據塊總是跟在本條帶內的校驗塊之后。
D0
D1
D2
P0
D4
D5
P1
D3
D8
P2
D6
D7
P3
D9
D10
D11
NTFS的RAID重組案例
剛才說到,Raid陣列的參數有:
前偏移
、條帶
、盤序
、Raid Level
、循環同步方式
Raid Level已經確定。
Step1.確定前偏移
首先,我們要確定前偏移
:
我們初始拿到的檢材是四個鏡像,簇視圖非常難分析,我們首先要將他們掛載起來,用FTK Imager、Encase都可以
這個案例中首個扇區就是MBR,所以偏移為0
還有一點就是,這樣能夠通過右上方的箭頭直接看分區大小,一個是350MB,一個是17.8GB,這個案例每個盤容量是6GB,350MB+17.8GB=18gb=(4*6-6)/4*6,可以確定這確實是個Raid5陣列
Step2.確定條帶大小
眾所周知,NTFS文件系統有$MFT(文件記錄表),它是NTFS中通用規律性最強的一個文件,其中的記錄ID對於我們判斷條帶的大小和盤序有很大的幫助
尋找$MFT
最簡單的一個方法就是Ctrl+F5FILE(46 49 4C 45)
簽名。
有時可能經過多次格式化硬盤會殘留一些以前$MFT和它的mirror備份,要注意區別,文件記錄假如是連續的,那基本能確定是$MFT。
當然,最穩的就是從DBR中確定$MFT的位置
030H-037H 代表$MFT在該分區的偏移
接下來我們就通過$MFT在每個磁盤相同扇區的ID來判斷條帶大小
001在2336796扇區的ID為14
002在2336796扇區的ID為78,003在2336796扇區的ID為46,004在2336796扇區的ID為110
我們發現ID是個等差數列,為什么會等差,我們回去看看Raid5的原理圖,就知道為什么這里是等差的。
他們的ID依次等差32,說明塊與塊之間依次差32個$MFT,一個$MFT為1KB,那么條帶大小就是32KB
Step3.確定盤序
條帶確定好了,接下來通過校驗塊確定盤序
校驗塊怎么確定?根據Raid5的校驗原理:p=x1^x2^x3,如果x1,x2,x3存儲的是明文,那么p異或兩次后會是亂碼。所以,我們可以從$MFT的明文部分Filename
,來判斷校驗塊。
如果文件名是明文,他一定不是校驗塊。
一個扇區可能不是只有一個Filename
是亂碼,我們通常需要查看多個條帶組才能判斷
一個條帶是32KB,於是就要向下跳轉64扇區=2,336,860
按照上面的方法,依次分析,一般幾塊硬盤就分析幾個條帶組
把校驗塊排好,我們假設出一個左同步的盤序
這還不是最終的順序,只是中間某一段的順序
最終的順序我們要通過前偏移確定,MBR從哪個盤找到的,就把那個盤當做第一個盤
由於檢驗原理,可能出現兩個盤有MBR,最簡單的方法就是猜,無非就兩種可能嘛。比如我這里的案例,MBR在1和4中,一種是1324,一種是4132
Step4.RStudio 重構
打開4個鏡像
四個鏡像都檢測到了,創建虛擬塊RAID和自動檢測
我們4132順序試一下
編輯好盤序、偏移、RAID level 和條帶大小(數據塊大小)
點擊應用,識別出兩個分區
隨便打開一個分區
說明順序不對,那么就應該是另一種1324
應用,點進一個分區
可以看到磁盤的內容,找一個大於4條帶大小的文件打開,能打開就說明重組成功了
這時候就可以創建一個鏡像了,這個鏡像就可以用來做后面的仿真
總結
看一遍不如做一遍,感覺是不一樣的。重組RAID的關鍵在於找到文件系統的某些規律,通過同一扇區不同磁盤出現的不同規則來確定條帶大小和校驗塊。但願明天比賽出現了Raid重組能熟練的做出來。