Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a MPG file, 2.1 GB. I tried copying it from my windows machine to linux one. Only about 1GB of data got copied (the resulting file plays fine), and then I got a read error.

So, on the source machine, I tried to break it into multiple files, using RAR. (I used the mode "Store"). It went on till 48%, and again the rar process stopped with a "Read Error".

If I open the 2 GB file using VLC on source machine, I am able to fast forward to the later half of the video and it plays.

So how can I recover the whole video? Basically, I am thinking of splitting the file into two parts - say first 47% and last 51% (assuming that error will go away by cutting the problematic part). I don't know how to do it. Any help appreciated.


EDIT:

I have cygwin, so tried the "split" command (breaking into 100MB pieces). However, the split command hangs, in the relevant portion of the file (after creating 10 files). So basically, is there a way to to recover the later half of the file someway?

share|improve this question

2 Answers 2

up vote 0 down vote accepted

In Unix you might get away with the dd command, I have seen a windows implementation somewhere too. But since you already mentioned cygwin, then you should already have a dd.

But since it is still unclear where the error is on your hard disk drive, you may or may not be able to recover some more of the file.

What you really want is something like cygwin package ddrescue. Unlike dd this ignores read errors, but its command line syntax is different, so read the man page.

share|improve this answer
    
Thanks. dd with the conv=noerror option did the trick for me. –  tanon May 15 '11 at 8:42

Get a program called Drive Snapshot and use it to create a snapshot image of your hard drive:

  Drive Snapshot
  http://www.drivesnapshot.de/

When encountering read errors on the source disk, Drive Snapshot will handle it intelligently and the result for you should eventually be that you'll get your video file with a blank spot where the read error occurred on disk.

I use this program to recover data for users. If the file system is NTFS or FAT32, then the default option is to only copy data that's allocated (although you also get the option to copy all sectors, you don't need this option in your case). If the file system is something that Drive Snapshot doesn't recognize, then it will just copy all sectors for you.

You can use that image later to write onto a new (replacement) hard disk. If the new disk is larger, Drive Snapshot will provide you with an option to increase the size of the partition to fill the new disk as well (but only for FAT32 and NTFS partitions).

Alternatively, you'll be able to mount the image directly as a virtual drive letter and the simply copy your file directly from there.

share|improve this answer
    
Thanks. Didn't try this as dd worked but thanks for the solution –  tanon May 15 '11 at 8:43
    
You're welcome. –  Randolf Richardson May 15 '11 at 16:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.