Corrupted NTFS files (no such file or directory); can I fix them under Linux?

I'm writing this after the OP repaired the filesystem with chkdsk. This answer gathers useful information from comments to give some insight to future users with similar problems.

The ll output reports size 0 for the file that should have some data in it. This, as well as the encountered error, indicates damaged file or filesystem.

Linux is not well equipped to fix corrupted NTFS. There is ntfsfix tool, however its manual says:

ntfsfix is a utility that fixes some common NTFS problems. ntfsfix is NOT a Linux version of chkdsk. It only repairs some fundamental NTFS inconsistencies, resets the NTFS journal file and schedules an NTFS consistency check for the first boot into Windows.

As you can see the tool leaves the hard work for Windows to do. It seems there is no way to repair serious NTFS issues from under Linux only.

The right tool is Windows chkdsk with /f option. To use it you can either:

  • boot to some Windows repair disk which provides chkdsk;
  • or connect the drive to working Windows machine and run chkdsk from there;
  • or (cumbersome way, still it may be useful if you cannot remove the drive nor boot to repair disk) clone the drive to another one (with dd or ddrescue), then connect the clone to working Windows, fix the filesystem and get to your files.