This is a script which will try to answer the question of what sort of data corruption ZFS might see.

If you have an unprotected ZFS file system and a file which consistently causes a checksum mismatch, then this script would help us to determine the extent of corruption. If you don't have that case, then it will remain quiet.

This version is very limited, unfortunately. The expected checksum and a tracemem of a portion of the mismatched buffer are printed. What is missing is the actual checksum and automatic sizing of the tracemem.

Usage: zcksummon.ksh [-p poolname]

-p poolname # only look at poolname

-s integer # tracemem the first <integer> bytes


zcksummon.ksh # default, monitors all pools

zcksummon.ksh -p rpool # monitor rpool only

zcksummon.ksh -s 1024 # tracemem the first 1024 bytes of the mismatched buffer


when a checksum mismatch is found, information is

printed which will show the expected checksum, calculated

checksum and a dump of the buffer. Otherwise, there is no