What would be the best way for me to recover data from my old laptop's hard drive, which seems to have a bad superblock?
I got an external hard drive enclosure for the purpose of recovering some of the files from my old laptops hard drive. The hard drive and all of it's partitions show up in both disks and gparted but it wont mount. When I tried to mount it manually, it gave the error message stating that it can't read the superblock. I've never had to deal with this issue before, so the only things I've tried so far were fsck and the data recovery option in GParted, and neither of them helped.
I tried searching about it online but all of the solutions I found online either didn't work or required methods that are currently not possible for me. The hard drive had Ubuntu (22.04 if I remember correctly) installed on it and I just need access to the files in the sdd3 partition, which was formatted in ext4.
First step, in case you didn't do that yet: Create a disk image of the partition - you don't want to try data recovery on the actual data. Easiest is just using dd to dump the disk to another drive.
Next try running testdisk on the image to see if it can find the backup superblocks - if it does you can feed that to fsck to restore the filesystem.
If you know the blocksize of the filesystem you can also run mke2fs with the -S parameter - this will just write the superblocks. Again, only do that on a disk image, not the actual drive.
If the disc is corrupted it may be failing, recommending ddrescue over dd is probably a better call not knowing anything else about this situation. Essentially, no reason not to use it.
I swear by ddrescue. It's a situation I strive to never be but i've been there before. I used it once to rescue an employees masters capstone project from their dead work laptop.
After reading about it - true. Disadvantage of doing this stuff for a long time - you miss new developments. Only reason I'm aware of testdisk is that I lost the sources of my own superblock search tool, my old binaries broke with a newer glibc, and before reimplementing it I checked if sombody else had done that in a more usable form in the meantime.
The hard drive should be connected by SATA or eSATA when making the image. Connecting over USB is just asking for more trouble when the drive is not working correctly.
That has changed over the last few years - I'd prefer a proper usb3 to sata bridge over a shitty sata controller - and the quality of integrated sata controllers isn't that great nowadays.
You can decide yourself if the data in that disk is more valuable than the price of a new disk to store the backup image. If it's not that valuable I guess you can one-shot it.
You can do all of that on the device - but you only get one shot. If you mess up that's it - so no sensible person would try any form of data rescue directly on the device. Storage is cheap, if you don't have sufficient space on your computer just get another external disk.
I know you wont understand where I'm coming from so I wont bother explaining it. If I need another storage device than I'll just have to wait until next year to get another storage device.
Edit: I don't understand why I'm getting downvoted but it proves to me that I made the right choice in not explaining my situation.
I don't think I can use that mostly because my internet package has a data cap and I don't want to risk exceeding that.
Also, I know it's not really the time or place for this type of discussion but I've noticed recently (within the last few months) that for some reason the Lemmy community has changed. I don't know if anyone else feels that way but it sometimes seems like some users are unnecessarily hostile/judgemental towards me. I wont say anything more because once again, this is not the time or the place but Lemmy wasn't like this when I first started using it over two years ago.
Another tool that has helped me when the others couldn't was RecuperaBit. It has the same restrictions though, you have to do it on an image of the drive.