用于获取ext3中数据块的哈希值的实用程序/工具

时间:2014-04-30 15:22:17

标签: hash md5sum ext3

我一直在寻找一个实用程序/工具,它可以在ext3 inode结构中提供数据块的md5sum(或任何唯一的校验和)。

要求是在特定操作之后验证某些数据块是否归零。

我是文件系统的新手,不知道是否有任何现有工具可以完成这项工作,或者我需要自己编写这个测试工具。

...谢谢

1 个答案:

答案 0 :(得分:0)

一位同事提供了一个非常优雅的解决方案。这是脚本。 它需要文件名作为参数,并假定文件系统blockize为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