Commit graph

93 commits

Author SHA1 Message Date
Andrea Mazzoleni
c843812bb0 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-08-04 09:47:59 +02:00
Andrea Mazzoleni
cd2ac8439f Add Btrfs snapshot support for atomic sync and recovery consistency 2026-08-04 09:47:58 +02:00
Andrea Mazzoleni
ee6acba9a9 New Btrfs support using IOCTLs to get UUID and low level devices 2026-08-04 09:47:58 +02:00
Andrea Mazzoleni
b7dcf8659e Enable lock file support on Windows using CreateFileW with exclusive share mode 2026-08-04 09:46:55 +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
Andrea Mazzoleni
8cef686d26 Adds a new smartignore option to ignore specific SMART attributes
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-09-15 16:57:22 +02:00
Nasado
3c87474aa2 Use volume UUIDs on macOS 2025-02-13 11:21:26 +01:00
Andrea Gelmini
2dacb15516 Fix typos
Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
2022-07-21 14:48:48 +02:00
Andrea Mazzoleni
53801b407a Remove the need of the MingW pthread layer on the Windows port
Now everything is implemented usign Windows native calls.
2021-05-26 00:21:52 +02:00
Andrea Gelmini
986e9b4131 Fix typos 2020-05-26 12:50:15 +02:00
Andrea Mazzoleni
5bac3d64a6 Fix build errors due new gcc 10 default for -fno-common 2020-05-18 15:28:55 +02:00
Andrea Mazzoleni
37b0064d60 Remove a build warning about major/minor defined in sysmacros.h
The new glibc 2.26 shows a warning if the code uses major/minor
from sys/types.h. Unfortunalte the autoconf macro used do not trigger
sysmacros.h inclusion because major/minor are already defined in sys/types.h.
2018-11-12 21:27:34 +01:00
Andrea Mazzoleni
f778fb691f Apply new hardlink behaviour also to NTFS in nix platforms
This is a specific NTFS behaviour, not limited to Windows.
2017-10-29 18:43:53 +01:00
Andrea Mazzoleni
04dfeea107 Tentative fix for major/minor missing 2017-01-04 00:44:20 +01:00
Andrea Mazzoleni
a90f8db3c0 Ingnore the SMART Command Timeout for Seagate SMR disks 2016-10-13 18:57:14 +02:00
Andrea Mazzoleni
00cd931fad Add partial support for SCSI smart attributes
SCSI disks report information in a different way.
2016-10-05 00:12:26 +02:00
Andrea Mazzoleni
20cd1f86f8 Fix typos in comments
No functional change.
2016-05-23 22:37:18 +02:00
Andrea Mazzoleni
3c6c5c07c7 More extensive use of data_off_t
This avoids the need of some type cast.
2016-05-18 20:58:41 +02:00