12/05/22 22:28:52.43 UDqTDYqA
>>682
>>684
簡単な検証をしてみたが次のようになった。
1. dd で 1GB のファイル(disk.raw)を作成、mkfs.ext4 でファイルをフォーマット
2. loop オプションでマウント
3. 64KB のファイルを作成。 中身は全部 0xC1 (00とかFFでなければ何でも良かった)
4. 一旦アンマウント。
5. disk.raw を 16進ダンプして C1 が 16個 並ぶ行をカウント → 4096 行
5. fseek と fwrite(C言語) 使って 7000(0x15B8)番地から 12000バイト適当なパターンを書き込み
6. アンマウント
7. disk.raw を 16進ダンプして C1 が 16個 並ぶ行をカウント → 3345 行
(4096-3345)*16(1行16バイトでダンプ)=12016 (12000 バイト + 16の倍数では無いところから開始分)
1GBを32MBにするとブロックサイズは 4KB から 1KB になるけど結果は同じ。
このとき 16進ダンプ自体を比較したが変更されたのは 832 行 (13376 Byte) だけ。
# diff -u pre.txt post.txt | egrep -e '^[+]' | wc -l --> 832
diff の結果を詳しく見ると書き込んだパターンの前のデータはすべて C1 の行で、
どう好意的に解釈しても >>684 の言う動作をしているとはいえない結果だった。