# fschksum

## checksum tool for filesystems

Choices for filesystems which have built-in checksums to ensure data integrity are limited and come with their own drawbacks, in particular, they are often times still not considered as stable and mature as other filesystems. In other cases, such as storage on (virtual) servers, there is not even any choice of the underlying filesystem.

While software is often distributed, in particular, in the open-source community with accompanying MD5SUMS files containing checksums, this approach is not scalable for entire filesystem structures.

fschksum tries to fill this gap: It generates a database with checksums, modification dates, and file sizes for entire filesystem structure. Amongst others, a database can be updated for new/modified files only, database updates (or two separate database files) can be compared very fast, and files can be checked for their integrity.

### Limitations

Currently, fschksum is only available for POSIX-compatible operating systems and relies on the inode to be a unique identifier for each file. This also implies that fschksum should not cross filesystem boundaries, as inode numbers might not be unique anymore. (There is currently no automatic test implemented to prevent this use scenario!)

Porting to other operating systems should be straighforward with a few targeted modifications in a few places. (E.g., replace the use of inodes by another unique identifier which typically exists for every filesystem and operating system.)