Windows – Determine filename at an LBA (NTFS)

filenameshard drivehard-drive-recoveryntfswindows 7

I ran Seagate's tools on my hard drive. It reports that there are errors and gives the LBA numbers. I would like to move the data at these locations to other locations on the drive.

How do I find out what files the data at those LBAs belong to?

The disk is 1TB, using NTFS.
I'm running Windows 7, 64-bit platform.
The drive is connected internally via SATA interface.

Due to the size of the drive, I'm having problems finding resources to back it up; so I only want to move the files that are in danger (i.e. residing on the bad LBAs).

Best Answer

If by LBA you mean the logical sectors:

  1. Convert them to filesystem clusters (e.g. my system has 8 sectors per cluster):

    C:\>fsutil fsinfo ntfsinfo c:
    ...
    Bytes Per Sector  :               512
    Bytes Per Cluster :               4096
    ...
    
    C:\>set/a 13091568 / (4096 / 512)
    1636446
    
  2. Use fsutil volume querycluster:

    C:\>fsutil volume querycluster c: 1636446
    Cluster 0x000000000018f85e used by ----D \Users\Mantas\example.txt::$DATA
    
  3. Optionally, verify using fsutil file queryextents or fsutil volume filelayout, both of which will show the complete start–end ranges of that file.

Related Question