How to determine which sectors a file occupies on Windows?

8

3

I want to determine which sectors a file occupies on an HDD. I want to know if a file is split into different non-sequential sectors.
Is there any way to do this on Windows 10?

The ideal solution would be to have a map of all the sectors of a hard drive and then, after selecting a file, it will mark or color all the sectors this file occupies.

churchill

Posted 2019-10-17T08:53:47.953

Reputation: 147

1Just a note that SSDs store data differently and often "hide" the real sectors the files exist on from the OS as the drive controllers work to maintain wear leveling and other features of the drive. – music2myear – 2019-10-19T01:49:05.810

Answers

17

Tools can use the Defrag API, specifically FSCTL_GET_RETRIEVAL_POINTERS, to get a list of extents (sector ranges) for a given file. You can use it on the command line through fsutil which comes built into Windows:

fsutil file queryextents C:\MyFile.ext

Various other third-party defragmentation apps also frequently have a function to analyze just a single file. For example, SysInternals Contig:

contig -a C:\MyFile.ext

As another example, Piriform Defraggler automatically lists the most fragmented files; selecting one file will show its locations in a graphical view and vice versa.

enter image description here enter image description here


The Linux equivalent is the FIEMAP ioctl which returns a list of file "extents" (and the older FIBMAP which returns a list of blocks). It can be used through tools such as filefrag or xfs_io.

user1686

Posted 2019-10-17T08:53:47.953

Reputation: 283 655

+1 this is the correct answer. DiskView and the Microsoft NFI tool might be helpful too (though good luck finding the latter); they can go in the reverse direction.

– user541686 – 2019-10-17T21:36:52.000

0

Perfect Disk (Raxco) does this on hard drives. It does an automatic defrag of the disk and shows a summary of fragmentation.

If you adopt an SSD at some point, the issue becomes irrelevant

John

Posted 2019-10-17T08:53:47.953

Reputation: 5 395