Commit graph

106 commits

Author SHA1 Message Date
Andrea Mazzoleni
b78542685f Add portable 128-bit vector parity routines for gen1/gen2/genz to optimize non-x86 CPUs 2026-06-04 21:18:47 +02:00
Andrea Mazzoleni
03f92a7c96 Further conversions from 32 to 64 bits 2026-06-04 09:05:58 +02:00
Andrea Mazzoleni
d595072db2 Migrate block_off_t to 64-bit with updated CLI parsing, VLQ serialization, and format specifiers 2026-06-04 09:05:57 +02:00
Andrea Mazzoleni
8db4198694 Portability 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
af840808bc Secure the popen use 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
6cd0b85f39 Delete snapshot links in Windows 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
cb6edc4335 Automatically exclude the snapshot .snapraid directory and content files 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
06b19808c1 Secure external tools execution 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
0f37db8d20 Add Windows VirtualShadowCopy support for snapshots 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
681683bfd5 Add ZFS support 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
614513bab5 Rework snapshot interface 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
aa55b96aa8 Add Bcachefs support 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
4ed6f21823 Change the BLOCK_HASH_SIZE type to avoid potential overflow 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
2c854de501 Target Windows 7 instead of Windows Vista 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
2bac137218 Remove the requirement to snapshot content files
The new content file format now includes metadata for previous versions
of files. This allows the fix command to access historical file data from
snapshots as needed, ensuring recovery even if the live filesystem has
changed or the file was deleted during a sync.
2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
4fe0fe406e Add Btrfs snapshot support for atomic sync and recovery consistency 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
8e58348983 New Btrfs support using IOCTLs to get UUID and low level devices 2026-06-03 22:00:59 +02:00
Andrea Mazzoleni
81995ccc8d Use eaccess() instead of access() 2026-05-21 16:08:03 +02:00
Andrea Mazzoleni
b32fa703ba Import incomplete attributes from smartctl 2026-05-14 17:02:16 +02:00
Andrea Mazzoleni
0d0431a907 Simpler Copyright string 2026-04-09 17:56:49 +02:00
Christoph Hellwig
60269a1236 Use SPDX (https://spdx.dev/) tags to identify the license used for each
file, and a COPYING file explaining the licensing scheme, with the actual
licenses listed in the LICENSES/ directory.
2026-04-02 16:01:37 +02:00
Andrea Mazzoleni
1a55b23d8f Fix warning in macOS 2026-03-30 10:07:11 +02:00
Andrea Mazzoleni
c153898c9a Log devices mapping
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-03-16 12:43:23 +01:00
Andrea Mazzoleni
60c7b6baa3 New extra config option for additional disks to monitor 2026-03-11 16:05:39 +01:00
Andrea Mazzoleni
75ef786e29 Report stats also for low devices
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-03-03 12:41:16 +01:00
Andrea Mazzoleni
b3879f7f8e Rework the portable support 2026-03-02 09:56:27 +01:00
Andrea Mazzoleni
ed15ad23a4 Report more NVME SMART attributes 2026-02-26 12:53:55 +01:00
Andrea Mazzoleni
f5c07e07f5 Detect more SMART attributes for SCSI/NVME
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-02-21 18:46:21 +01:00
Andrea Mazzoleni
696ee97754 Log full SMART attributes 2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
2019aa4bb6 Log the normalized, worst and threshold value of SMART attributes 2026-02-17 02:02:48 +01:00
Andrea Mazzoleni
d3f7bf64c1 Differentiate messages in the log files if they are caused by an hardware issue 2026-02-01 20:44:36 +01:00
Andrea Mazzoleni
f134201438 Log more information about the filesystems 2026-01-31 16:30:15 +01:00
Andrea Mazzoleni
9f081f9c22 Log the filesystem type and label
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL Advanced / Analyze (c-cpp) (push) Has been cancelled
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
2026-01-29 19:34:33 +01:00
Andrea Mazzoleni
5a5668851d Log the interface of the device
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL Advanced / Analyze (c-cpp) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
2026-01-29 17:06:10 +01:00
Andrea Mazzoleni
3e62e22411 Beautification with unscrustify 2026-01-26 09:42:03 +01:00
Andrea Mazzoleni
c180015fdc Less confusing names of smartctl flags 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
ede99cbe80 Added wear level percentage to the SMART report 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
e99f43c8ca Log both protocol and medium errors 2026-01-22 16:13:25 +01:00
Andrea Mazzoleni
9f14dd94e5 Add support for ** in the patterns
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
2026-01-11 15:48:36 +01:00
Andrea Mazzoleni
13fae39eb3 New pseudo random number generator
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2026-01-06 09:34:29 +01:00
Andrea Mazzoleni
524733a6db Make the stat tag a disk level 2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
986d7464b4 Add disk usage detection based on access counters 2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
ea53954b41 Rework attributes 2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
efcdfb9118 When logging device attributes, also provide the split information 2026-01-04 18:01:19 +01:00
Andrea Mazzoleni
1f17ceca84 Log disk information info also in probe
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
2025-12-18 18:49:52 +01:00
Andrea Mazzoleni
d452b109bc More regression tests
Some checks are pending
Build / build-mac (push) Waiting to run
Build / build-linux (push) Waiting to run
Build / build-win (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
2025-10-28 12:15:50 +01:00
Andrea Mazzoleni
ac986579d7 During cooldown keep spinning down any disk that is spun up 2025-10-26 12:03:31 +01:00
Andrea Mazzoleni
649b3f1f0b Remove the SMART attribute 193 from the failure probability computation
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
2025-09-29 16:25:49 +02:00
Andrea Mazzoleni
906d215bf5 Add thermal protection options: temp_limit and temp_sleep
Some checks failed
Build / build-mac (push) Has been cancelled
Build / build-linux (push) Has been cancelled
Build / build-win (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
Introduce two new configuration directives to protect disks from overheating:

- temp_limit <TEMPERATURE_CELSIUS>
  Sets the maximum allowed disk temperature. When any disk exceeds this limit,
  SnapRAID stops all operations and spins down the disks.

- temp_sleep <TIME_IN_MINUTES>
  Specifies how long disks remain in standby after a temperature event.
  Defaults to 15 minutes.

These options allow SnapRAID to automatically pause activity and cool down
disks when a temperature threshold is reached, improving data safety and
hardware longevity.
2025-09-27 16:05:05 +02:00
Andrea Mazzoleni
fedeb99bdc Add a new probe command
Probe the power state of the disks in the system
2025-09-24 11:26:30 +02:00