0

ext3 i ノード構造内のデータ ブロックの md5sum (または一意のチェックサム) を提供できるユーティリティ/ツールを探していました。

要件は、特定の操作の後、特定のデータ ブロックがゼロになるかどうかを確認することです。

私はファイル システムに慣れていないので、既存のツールでその作業ができるかどうかわかりません。または、このテスト ユーティリティを自分で作成する必要があります。

ありがとう...

4

1 に答える 1

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
于 2014-05-09T18:44:20.750 に答える