I have run ddrescue on a failed SSD and have about 500KB of bad sectors. It looks like ddrutility is the best toolset available for finding out which files are not working. However, I am struggling to install it.
I am using Gparted live Linux, installed on a USB thumb drive, since I saw that recommended as a quick way to get a system that runs ddrescue.
This doesn't come with gcc / make etc., but I was able to install those correctly, I think.
I have been able to download the ddrutility tar.gz file, unzipped it and untarred it.
Following the installation instructions, I have cd to the resulting folder.
I have also installed sleuthkit and ntfs-3g.
Trying to sudo apt-get install gnuddrescue and sudo apt-get install gnu-fdisk returns an error (Unable to locate package). But I have ddrescue installed, and I was able to sudo apt-get install fdisk (without the "gnu-" prefix).
When I run make from the unzipped folder, I get a bunch of error messages. I am writing this from a different machine, so will try to paste them using the machine in a new message.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
user@debian:~/ddrutility-2.8$ makegcc -Wall -W ddru_ntfscommon.c ddru_ntfsbitmap.c -o ddru_ntfsbitmapddru_ntfsbitmap.c: In function 'processdata':ddru_ntfsbitmap.c:1174:46: warning: '%s' directive writing up to 254 bytes into a region of size between 221 and 240 [-Wformat-overflow=] 1174 | sprintf (command, "truncate -s %lld \'%s\'", (long long)ntfs_attribute.items.Attr.NonResident.n64RealSize, destination_file); | ^~ ~~~~~~~~~~~~~~~~ddru_ntfsbitmap.c:1174:8: note: 'sprintf' output between 17 and 290 bytes into a destination of size 255 1174 | sprintf (command, "truncate -s %lld \'%s\'", (long long)ntfs_attribute.items.Attr.NonResident.n64RealSize, destination_file); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x0): multiple definition of `start_time'; /tmp/ccQkohal.o:(.bss+0x0): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x4): multiple definition of `end_time'; /tmp/ccQkohal.o:(.bss+0x4): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x8): multiple definition of `tvBegin'; /tmp/ccQkohal.o:(.bss+0x8): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10): multiple definition of `tvEnd'; /tmp/ccQkohal.o:(.bss+0x10): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x18): multiple definition of `tvDiff'; /tmp/ccQkohal.o:(.bss+0x18): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x20): multiple definition of `ntfs_attribute'; /tmp/ccQkohal.o:(.bss+0x20): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x60): multiple definition of `p_ntfs_attribute'; /tmp/ccQkohal.o:(.bss+0x60): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x80): multiple definition of `mft_mft'; /tmp/ccQkohal.o:(.bss+0x80): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10078): multiple definition of `p_mft_mft'; /tmp/ccQkohal.o:(.bss+0x10078): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10080): multiple definition of `boot_sector'; /tmp/ccQkohal.o:(.bss+0x10080): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10280): multiple definition of `p_boot_sector'; /tmp/ccQkohal.o:(.bss+0x10280): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x102a0): multiple definition of `file_attribute'; /tmp/ccQkohal.o:(.bss+0x102a0): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104e0): multiple definition of `p_fileattribute'; /tmp/ccQkohal.o:(.bss+0x104e0): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104e4): multiple definition of `inode_count'; /tmp/ccQkohal.o:(.bss+0x104e4): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104e8): multiple definition of `outtype'; /tmp/ccQkohal.o:(.bss+0x104e8): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104ec): multiple definition of `inchar'; /tmp/ccQkohal.o:(.bss+0x104ec): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104f0): multiple definition of `inchar_start'; /tmp/ccQkohal.o:(.bss+0x104f0): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104f4): multiple definition of `converted'; /tmp/ccQkohal.o:(.bss+0x104f4): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104f8): multiple definition of `converted_start'; /tmp/ccQkohal.o:(.bss+0x104f8): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x104fc): multiple definition of `cd'; /tmp/ccQkohal.o:(.bss+0x104fc): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10500): multiple definition of `no_convert'; /tmp/ccQkohal.o:(.bss+0x10500): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10520): multiple definition of `file_name'; /tmp/ccQkohal.o:(.bss+0x10520): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10920): multiple definition of `mft_record_size'; /tmp/ccQkohal.o:(.bss+0x10920): first defined here/usr/bin/ld: /tmp/ccEKAKki.o:(.bss+0x10924): multiple definition of `file_name_type'; /tmp/ccQkohal.o:(.bss+0x10924): first defined herecollect2: error: ld returned 1 exit statusmake: *** [makefile:25: ddru_ntfsbitmap] Error 1
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Looking back through the releases, it appears that around v2.5 there was some work to refactor the code to use shared files. I was able to successfully download v2.4 and install that, which seems to be working as a workaround.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I am glad you found that you could use the older version. I no longer support ddrutility, so any issues will not be fixed. But since it is open source, maybe a fix could be found by yourself or someone else. I am sure I had information on here that stated it is no longer supported, but that information seems to be gone.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have run ddrescue on a failed SSD and have about 500KB of bad sectors. It looks like ddrutility is the best toolset available for finding out which files are not working. However, I am struggling to install it.
I am using Gparted live Linux, installed on a USB thumb drive, since I saw that recommended as a quick way to get a system that runs ddrescue.
This doesn't come with gcc / make etc., but I was able to install those correctly, I think.
I have been able to download the ddrutility tar.gz file, unzipped it and untarred it.
Following the installation instructions, I have cd to the resulting folder.
I have also installed sleuthkit and ntfs-3g.
Trying to
sudo apt-get install gnuddrescue
andsudo apt-get install gnu-fdisk
returns an error (Unable to locate package). But I have ddrescue installed, and I was able tosudo apt-get install fdisk
(without the "gnu-" prefix).When I run
make
from the unzipped folder, I get a bunch of error messages. I am writing this from a different machine, so will try to paste them using the machine in a new message.Looking back through the releases, it appears that around v2.5 there was some work to refactor the code to use shared files. I was able to successfully download v2.4 and install that, which seems to be working as a workaround.
I am glad you found that you could use the older version. I no longer support ddrutility, so any issues will not be fixed. But since it is open source, maybe a fix could be found by yourself or someone else. I am sure I had information on here that stated it is no longer supported, but that information seems to be gone.