Hello,
It appears that there is a bug that affects both the MacPorts version
(and versions 1.28 and 1.29 and when I build from source on an M2
ARM64 silicon Mac) in which the non-tried blocks value is expressed in
petabytes regardless of the size of the media when read in forward
mode. However, image rescuing seems to work fine. This doesn't affect
versions on Linux as far as I know. Please see erroneous values
indicated by >> and <<
> Press Ctrl-C to interrupt
> GNU ddrescue 1.29.1
> ipos: 31457 kB, non-trimmed: 0 B, current rate: 9109 kB/s
> opos: 31457 kB, non-scraped: 0 B, average rate: 10485 kB/s
>> non-tried: 9223 PB, bad-sector: 0 B, error rate: 0 B/s
> rescued: 31457 kB, bad areas: 0, run time: 2s
> pct rescued: 0.00%, read errors: 0, remaining time: n/a <<
time since last successful read:
n/a
Copying non-tried blocks... Pass 1 (forwards)^C
This also seems to affect prior versions as well:
GNU ddrescue 1.28
Press Ctrl-C to interrupt
> ipos: 114950 kB, non-trimmed: 0 B, current rate: 6750 kB/s
> opos: 114950 kB, non-scraped: 0 B, average rate: 10450 kB/s
>> non-tried: 9223 PB, bad-sector: 0 B, error rate: 0 B/s
> rescued: 114950 kB, bad areas: 0, run time: 10s
> pct rescued: 0.00%, read errors: 0, remaining time: n/a <<
time since last successful read: n/a
Copying non-tried blocks... Pass 1 (forwards)^C
Interrupted by user
If you also use a map file from forward mode, then you can see there
is a clear overflow in the 64 bit integer block size at. It also seems
to happen early in the read position, perhaps from the start (this
affects 1.29 as well):
# Mapfile. Created by GNU ddrescue version 1.28
# Command line: ./ddrescue /dev/disk5 test.img map.txt
# Start time: 2025-09-12 10:23:03
# Current time: 2025-09-12 10:23:08
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos current_status current_pass
0x03830000 ? 1
# pos size status
0x00000000 0x03830000 +
0x03830000 0x7FFFFFFFFC7CFFFF ?
Here is a similar map file backwards
# Mapfile. Created by GNU ddrescue version 1.28
# Command line: ./ddrescue --reverse /dev/disk5 test.img map1.txt
# Start time: 2025-09-12 10:44:36
# Current time: 2025-09-12 10:44:44
# Copying non-tried blocks... Pass 1 (backwards)
# current_pos current_status current_pass
0x7FFFFF4400530000 ? 1
# pos size status
0x00000000 0x02400000 +
0x02400000 0x7FFFFF43FE130000 ?
Any help would be greatly appreciated.
Alex S.