- Cause: The scripts were not granted execution permissions.
- Fix: Run
chmod +x main.sh core_sync.sh auditor.py
- Cause: You may have replaced a hard drive, leaving the old UUID in
config.env. - Fix:
- Plug in the new drive.
- Run
lsblk -forsudo blkidin the terminal to find the new UUID. - Open
config.envand update the respectiveUUID_1TB/UUID_2TB/UUID_4TB.
- Cause: You recently ran a massive folder restructuring. While
auditor.pyattempts to intelligently resolve moves, if you also touched themtimeor simultaneously modified the files during the move, it handles them as brand new files. - Fix: This is normal expected behavior during massive restructures. Allow the auditor to rebuild baseline hashes. To reduce noise in the future, try to move directories without modifying their contents before the next audit.
- Cause: Ext4 (Linux) allows characters strictly prohibited by NTFS (Windows), such as
:,?,<,>, and*. - Fix/Workaround: Before syncing laptop data to the external drives, use a utility like
detoxto sanitize filenames, or pipe afindcommand to strip invalid characters. Currently,rsyncwarns but may stall on these files. We advise reviewingrsynclogs for any skipped files due to invalid NTFS naming conventions.
- Cause: By default, the Python hashing auditor reads files in 4096-byte chunks.
- Fix:
- Ensure the drive is plugged into a USB 3.0+ port.
- Adjust
AUDITOR_EXT_FILTERinconfig.envto only target high-value binary files like.jpg,.mp4, or.pdfto vastly reduce the scope of the hash calculations.
- Scenario: You are moving to a new laptop and want to take the backup utility along.
- Action: Ensure you copy
auditor.db(usually sitting in thebackup-utility/root) along withconfig.env. The SQLite database is fully portable. If you loseauditor.db, the auditor will simply rebuild the baseline hashes from scratch on its next run.
- Scenario: You decided to change your system's drive mount points. For example, you were mounting the 1TB drive at
/mnt/1tbbut now you want to mount it at/mounts/1tb_hdd. - The Problem: Because the SQLite database (
auditor.db) stores absolute file paths, simply changingconfig.envand running the script will cause the auditor to think every single file was deleted from/mnt/1tband millions of brand new files were just added to/mounts/1tb_hdd. It will forcefully rehash everything. - The Solution (SQLite Query): You can manually modify the file paths in the database instantly using a single SQL
REPLACEstring function!
Step-by-Step Guide:
- First, update
config.envto your new mount path (MOUNT_1TB="/mounts/1tb_hdd"). - Do not run the backup script or auditor yet!
- Open the database in your terminal:
sqlite3 auditor.db
- Run the following
UPDATEquery to instantly rewrite the/mnt/1tb/prefix to/mounts/1tb_hdd/for all rows:UPDATE file_hashes SET file_path = REPLACE(file_path, '/mnt/1tb/', '/mounts/1tb_hdd/') WHERE file_path LIKE '/mnt/1tb/%';
- Verify it worked:
SELECT file_path FROM file_hashes WHERE file_path LIKE '/mounts/1tb_hdd/%' LIMIT 3;
- Type
.exitto close SQLite. - You can now safely run the auditor, and it will flawlessly map to the new mount path without rehashing a single byte!