2014-04-30 67 views
0

我一直在尋找一種實用工具/工具,它可以提供ext3 inode結構中的數據塊的md5sum(或任何唯一的校驗和)。實用工具/工具來獲取ext3中的數據塊的散列值

要求是驗證某些數據塊是否在特定操作後歸零。

我是新來的文件系統,不知道現有的工具是否可以完成這項工作,或者我需要自己編寫這個測試工具。

謝謝...

回答

0

一位同事提供了一個非常完美的解決方案。這是腳本。 它需要文件作爲參數的名稱,並假定文件系統的塊大小爲4K

  • 這一理念的進一步延伸:

如果你知道與文件相關聯的數據塊( stat),您可以使用'dd'命令的'skip'選項並構建小文件,每個文件大小爲1個塊大小。此外,你可以得到這些塊的md5sum。所以,這樣你可以直接從塊設備獲得md5sum。不是每天都想做的事,而是一個很好的分析技巧。

============================================== ====================================

#!/bin/bash 

absname=$1 
testdir="/root/test/" 
mdfile="md5" 
statfile="stat" 
blksize=4096 
fname=$(basename $absname) 
fsize=$(ls -al $absname | cut -d " " -f 5) 
numblk=$((fsize/blksize)) 
x=1 
#Create the test directory, if it does not exist already 
if [[ ! -d $testdir ]]; 
then 
     `mkdir -p $testdir` 
fi 
#Create multiple files from the test file, each 1 block sized 
while [[ $x -le $numblk ]] 
do 
     ((s=x-1)) 
     `dd if=$absname of=$testdir$fname$x bs=4096 count=1 skip=$s` 
     `md5sum $testdir$fname$x >> $testdir$mdfile` 
     ((x=x+1)) 
done