# linux/mfs util to check/repair disks?



## grins (Feb 2, 2001)

Hey y'all. I've been having some trouble with my HDTivo. For a while now every couple of months it gets flakey or crash-ey, so I would pull the two drives and run the manufacturer utilites on them, and then it would be fine for a couple of months. The utilities don't find any errors, but somehow the process of pulling them, doing a full scan and replacing them seemed to fix (or hide ;-) ) the problem.

This time, it's not working, so I'm wondering if there is a linux (or MFS) utility to scan or repair the disks.

I don't have enough disk space laying around to do a ddrestore, so I'm wondering if there's an "in-place" version of the same thing.

Thanks for your help!

t


----------



## grins (Feb 2, 2001)

Okay, how about this. I have the original 250 Gb drive that came with the HDTivo. Can I:

dd_rescue the current A drive, a 250, to the original 250, then
dd_rescue the current B drive, a 160, to the previous A drive (a 250), then
mfsAdd the extra 90 Gb?

How do I dd_rescue from a smaller to a larger device? Do I need to format the larger destination drive first?


----------



## HomeUser (Jan 12, 2003)

> dd_rescue the current A drive, a 250, to the original 250, then


 Probably a bad plan the original drive is a known working backup do you really want to loose it if the data can not be recovered?



> dd_rescue the current B drive, a 160, to the previous A drive (a 250), then
> mfsAdd the extra 90 Gb?


 That would work altho if you are going to all this trouble you can get 400G drives for around $100 and there are some good deals on 500G drives.



> How do I dd_rescue from a smaller to a larger device? Do I need to format the larger destination drive first?


 dd_rescue is binary copying the drive sector by sector and formatting is not needed. dd_rescue will continue copying until it runs out of drive. MFSAdd is used to fill the drive with the extra partitions.

Suggest you try running SpinRite at level 3 or 4 on both drives SpinRite may even recover the lost data. Then replace the failing drive(s) with a new drive.

Are you sure the problem is not heat or power supply related?


----------



## grins (Feb 2, 2001)

thanks, HomeUser!

I can't afford spinrite, so I went with the free tools.

I also didn't mention that I have an InstantCake image of the HDTiVo, so I wasn't worried about using the original drive from the HDTiVo that I still had on the shelf as a backup.

I tried to dd_rescue the current A 250 to the backup 250. It got within a few meg of the end and ran out of disk space. There were no errors at that point, so I ass-umed that the current A disk was okay.

Then I did a dd_rescue from the current B (the 160Gb) to the backup 250, and by the time it was complete there had been a lot of errors reading the 160Gb, but dd_rescue claimed it succeeded. 

Then I did an mfs_add -x /dev/hda /dev/hdb, buttoned it all up again and have been running fine since.

What am I missing that the full surface scan using the manufacturer utility was able to read every block without error, but dd_rescue showed lots of errors?


----------



## HomeUser (Jan 12, 2003)

> I tried to dd_rescue the current A 250 to the backup 250. It got within a few meg of the end and ran out of disk space. There were no errors at that point, so I ass-umed that the current A disk was okay.


 You might want to check the source drive with cat/proc/partitions verify there is some extra unused space at the end. There should be some extra space depending on the tools you originally used when you copied the original drive before. If there is not any free space you need a larger drive to copy the image to.



> What am I missing that the full surface scan using the manufacturer utility was able to read every block without error, but dd_rescue showed lots of errors?


 Don't know, if the diag reads the drive sector by sector it should see the same hard errors as the binary copy. There may be an EIDE cable problem if dd_rescue is using one of the faster EIDE modes.


----------

