Как в Windows (NTFS) по имени или пути файла определить, каким именно кластерам/секторам на диске этот файл соответствует?

Иногда полезно определить, в какой части диска находится сбойный сектор<br/> <br/>Какие существуют программы для Windows, позволяющие по имени файла на файловой системе NTFS узнать его физическое расположение (координаты) на диске?
  • 3 мая 2026 г. 1:00
Ответы на вопрос 4
Коротко — это возможно. NTFS хранит отображение виртуальных кластеров файла (VCN) в логические кластеры на диске (LCN). Чтобы получить соответствие «файл → кластеры/сектора», можно:

1) Встроенными средствами Windows
- fsutil (требуются права администратора).
  - Узнать параметры ФС (байт в кластере и т. п.):
    fsutil fsinfo ntfsinfo C:
  - Получить список экстентов (отображение VCN→LCN) для файла:
    fsutil file queryextents C:\путь\к\файлу
  Выход показывает начальный VCN, следующую VCN/длину и начальный LCN — по ним можно вычислить физический смещение.

2) Порядок вычисления сектора/смещения
- Получите BytesPerCluster (из fsutil fsinfo ntfsinfo) и StartingOffset раздела (в байтах):
  - PowerShell: (Get-Partition -DriveLetter C).StartingOffset
  - или Disk Management / diskpart
- Формулы:
  - Смещение в байтах = LCN * BytesPerCluster + PartitionStartingOffset
  - Номер сектора (LBA) = Смещение в байтах / BytesPerSector
(BytesPerSector обычно 512 или 4096; узнаётся через Get-Disk / свойства диска.)

3) Программы/утилиты для Windows (GUI / CLI)
- fsutil — встроенная CLI (см. выше).
- Sysinternals DiskView — графическое отображение распределения кластеров на томе; можно искать файлы и подсвечивать соответствующие кластеры.
- Sysinternals Contig — утилита для дефрагментации, в режиме вывода отображает экстенты файла.
- nfi.exe (NTFS File Sector Info) — старый инструмент из комплектов MS/Resource Kit, показывает MFT-запись и соответствие кластеров.
- WinHex / X-Ways Forensics / FTK Imager / R-Studio / Active@ Disk Editor и др. — форензик/hex-редакторы, которые умеют читать MFT и переводить файл в физические адреса (LCN/LBA).
- Коммерческие утилиты восстановления/анализа дисков (например, DMDE, DiskInternals) — часто показывают список кластеров файла и позволяют перейти к сектору.

4) Программный путь
- Если нужно автоматизировать — использовать DeviceIoControl с кодом FSCTL_GET_RETRIEVAL_POINTERS (WinAPI). Это даёт VCN→LCN для заданного дескриптора файла. Можно вызвать из C/C++/C#/.NET/PowerShell (P/Invoke) или взять готовые скрипты с GitHub.

5) Замечания и ограничения
- Требуются права администратора.
- Для сжатых/сжатых NTFS-файлов, sparse-файлов и некоторых случаев отображение может быть «логическим» (файл может храниться не подряд или быть фрагментирован/сжат), и преобразование в физические сектора сложнее.
- Если сектор физически повреждён, chkdsk /r покажет информацию о сбоях и пометит плохие сектора, но не всегда напрямую свяжет конкретный файл с конкретным сектором — лучше сначала получить LCN файла, затем вычислить LBA и сверить с отчётом SMART / утилитой проверки поверхности.

Если хотите, могу:
- Привести точные примеры команд и пример вывода fsutil и показать, как посчитать LBA на вашем диске;
- Подготовить PowerShell-скрипт, который по пути файла вернёт список LCN и LBA.
Есть программа defraggler позволяет дефрагментировать не весь диск а отдельные файлы и папки. У нее есть карта раздела и после анализа он показывает количество фрагментов и их расположение если покликать по ячейкам на карте
<code>fsutil file queryextents "T:\DOWNLOAD\имя_файла"</code> в cmd — выдаёт VCN→LCN маппинг, т.е. точные кластеры файла на диске. Сравниваешь с координатами сбойного сектора из сканера. <br/> <br/> p.s. если задача обратная — найти файл по номеру сектора — WinHex помогает: Navigate to Sector и видно какому файлу принадлежит.
Учитывая, что в примере папка DOWNLOAD, то повреждение диска вообще может быть не при чём. <br/> Имя файла и положение файла на диске никак не связаны (точнее, файл может находится где угодно). А если речь идёт про SSD, то в принципе о положении файла нет смысла говрить, его в любой момент контроллер может в менее изношенные сеткора перенести. <br/> <br/> Не знаю, какую конкретно цель ты преследуешь, но есть только один хороший совет: если на диске появляются битые сектора, то срочно покупай новый диск, переноси на него файлы, а старый продавай на авито :)
Похожие вопросы