ext3 i ノード構造内のデータ ブロックの md5sum (または一意のチェックサム) を提供できるユーティリティ/ツールを探していました。
要件は、特定の操作の後、特定のデータ ブロックがゼロになるかどうかを確認することです。
私はファイル システムに慣れていないので、既存のツールでその作業ができるかどうかわかりません。または、このテスト ユーティリティを自分で作成する必要があります。
ありがとう...
同僚が非常に洗練されたソリューションを提供してくれました。これがスクリプトです。パラメータとしてファイルの名前が必要であり、ファイル システムのブロックサイズが 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