| ▲ | homebrewer 18 hours ago | |
the most basic solution that will work for every filesystem and every type of block device without even mounting anything, but won't actually check much except device-level checksums:
or even just:
and it's pretty inefficient if the device doesn't actually have much data, because it also reads (and discards) empty space.for copy-on-write filesystems that store checksums along with the data, you can request proper integrity checks and also get the nicely formatted report about how well that went. for btrfs:
or zfs:
for classic (non-copy-on-write) filesystems that mostly consist of empty space I sometimes do this:
the `cat` and redirection to /dev/null is necessary because GNU tar contains an optimization that doesn't actually read anything when it detects /dev/null as the target. | ||
| ▲ | medoc 18 hours ago | parent [-] | |
Just as a note, and I checked that it's not the case with the GNU coreutils: on some systems, cp (and maybe cat) would mmap() the source file. When the output is the devnull driver, no read occurs because of course its write function does nothing... So, using a pipe (or dd) maybe a good idea in all cases (I did not check the current BSDs). | ||