Raid重組復習


Raid重組復習

今天看了下這次2021長安杯的手冊,有考RAID重組知識點,所以復習下。一般需要手動分析偏移、條帶、盤序的都是硬Raid,我們這里就重點看硬Raid的重組。至於軟Raid以前美亞也考過,取證大師能直接重組,而且對性能其實沒啥提升,大家做個了解即可。

image

RAID5簡介

現在用的Raid一般都是Raid5,什么是Raid5呢?

image

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 中的校驗塊的走向,一種是左循環,一種是右循環。

左循環

image

即校驗塊P0,P1....Pn從左至右旋轉而下

右循環

image

即校驗塊P0,P1....Pn從右至左旋轉而下

異步與同步

在 RAID5 中,數據塊的寫入有兩種方式,一種是異步,一種是同步

異步

寫滿一個條帶需要轉入下一個條帶寫入時,直接回到 0 號盤進行寫入。也就是每個條帶內都是由低號盤開始寫入,寫滿一個塊后轉向高號盤繼續寫入,這種方式不考慮校驗塊的位置,稱為異步。

image

D0 D1 D2 P0

D3 D4 P1 D5

D6 P2 D7 D8

P3 D9 D10 D11

同步

寫滿一個條帶,需要將數據寫入下一個條帶時,先判斷下一個條帶的校驗塊位於哪個磁盤,然后將數據寫入校驗塊所在的磁盤的下一個磁盤,寫滿一個數據塊后轉向高號盤,直至該條帶內編號最大的數據塊寫滿后,再回到同條帶內的 0 號盤寫入,直至本條帶內的校驗塊所在的磁盤的前一個磁盤。

也就是說,一個條帶內的第一個數據塊總是跟在本條帶內的校驗塊之后。

image

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都可以

image

image

這個案例中首個扇區就是MBR,所以偏移為0

image

還有一點就是,這樣能夠通過右上方的箭頭直接看分區大小,一個是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)簽名。

image

有時可能經過多次格式化硬盤會殘留一些以前$MFT和它的mirror備份,要注意區別,文件記錄假如是連續的,那基本能確定是$MFT。

當然,最穩的就是從DBR中確定$MFT的位置

image

030H-037H 代表$MFT在該分區的偏移

接下來我們就通過$MFT在每個磁盤相同扇區的ID來判斷條帶大小

001在2336796扇區的ID為14

image

002在2336796扇區的ID為78,003在2336796扇區的ID為46,004在2336796扇區的ID為110

image

我們發現ID是個等差數列,為什么會等差,我們回去看看Raid5的原理圖,就知道為什么這里是等差的。

他們的ID依次等差32,說明塊與塊之間依次差32個$MFT,一個$MFT為1KB,那么條帶大小就是32KB

image

Step3.確定盤序

條帶確定好了,接下來通過校驗塊確定盤序

校驗塊怎么確定?根據Raid5的校驗原理:p=x1^x2^x3,如果x1,x2,x3存儲的是明文,那么p異或兩次后會是亂碼。所以,我們可以從$MFT的明文部分Filename,來判斷校驗塊。

image

image

如果文件名是明文,他一定不是校驗塊。

一個扇區可能不是只有一個Filename是亂碼,我們通常需要查看多個條帶組才能判斷

一個條帶是32KB,於是就要向下跳轉64扇區=2,336,860

image

按照上面的方法,依次分析,一般幾塊硬盤就分析幾個條帶組

image

把校驗塊排好,我們假設出一個左同步的盤序

image

這還不是最終的順序,只是中間某一段的順序

最終的順序我們要通過前偏移確定,MBR從哪個盤找到的,就把那個盤當做第一個盤

由於檢驗原理,可能出現兩個盤有MBR,最簡單的方法就是猜,無非就兩種可能嘛。比如我這里的案例,MBR在1和4中,一種是1324,一種是4132

Step4.RStudio 重構

打開4個鏡像

image

四個鏡像都檢測到了,創建虛擬塊RAID和自動檢測

image

image

我們4132順序試一下

image

編輯好盤序、偏移、RAID level 和條帶大小(數據塊大小)

點擊應用,識別出兩個分區

image

隨便打開一個分區

image

說明順序不對,那么就應該是另一種1324

image

應用,點進一個分區

image

可以看到磁盤的內容,找一個大於4條帶大小的文件打開,能打開就說明重組成功了

這時候就可以創建一個鏡像了,這個鏡像就可以用來做后面的仿真

image

總結

看一遍不如做一遍,感覺是不一樣的。重組RAID的關鍵在於找到文件系統的某些規律,通過同一扇區不同磁盤出現的不同規則來確定條帶大小和校驗塊。但願明天比賽出現了Raid重組能熟練的做出來。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM