Я хочу определить, какие сектора занимает файл на жестком диске. Я хочу узнать, разбит ли файл на разные непоследовательные сектора.
Есть ли способ сделать это в Windows 10?
Идеальным решением было бы иметь карту всех секторов жесткого диска, а затем, после выбора файла, отмечать или раскрашивать все сектора, которые занимает этот файл.
решение1
Инструменты могут использоватьAPI дефрагментации, конкретноFSCTL_GET_RETRIEVAL_POINTERS, чтобы получить список экстентов (секторных диапазонов) для заданного файла. Вы можете использовать его в командной строке, fsutil
которая встроена в Windows:
fsutil file queryextents C:\MyFile.ext
Различные другие сторонние приложения для дефрагментации также часто имеют функцию анализа только одного файла. Например, SysInternalsКонтиг:
contig -a C:\MyFile.ext
В качестве другого примера Piriform Defraggler автоматически составляет список наиболее фрагментированных файлов; при выборе одного файла будет показано его расположение вграфический види наоборот.
Эквивалентом Linux являетсяFIEMAPioctl, который возвращает список "экстентов" файла (и старый FIBMAP, который возвращает список блоков). Его можно использовать с помощью таких инструментов, какфайлфрагментилиxfs_io.
решение2
Perfect Disk (Raxco) делает это на жестких дисках. Он делает автоматическую дефрагментацию диска и показывает сводку фрагментации.
Если вы в какой-то момент перейдете на SSD, эта проблема станет неактуальной.