Як визначити, який файл займає даний сектор?


34

У мене жорсткий диск з 3 поганими секторами. Я знаю номери секторів, і комп'ютер все ще може завантажуватися в Windows. Я хочу запустити ремонт сектора з інструмента діагностики жорсткого диска від виробника, але перш ніж це зробити, я хотів би знати, на які файли впливає. Чи є спосіб зрозуміти, який файл чи файли займають ці сектори?


1
Редактор сектору roadkil може пройти частину шляху, але не перераховує програми.
барлоп

Див. Також Як дізнатися, який файл знаходиться в певному секторі - те саме питання, але для файлової системи NTFS, доступ до якої має Linux.
sleske

Відповіді:


22

Ось процес використання WinHex , зручний шестигранний редактор, який може безпосередньо перевіряти та редагувати диски. Будьте дуже обережні; цей інструмент може пошкодити вашу систему при неправильному використанні. Відкривайте диски лише для читання, коли це можливо.

  1. Оскільки у вас вже є погані місця в секторі, ви можете відкрити накопичувач у WinHex безпосередньо ( кнопка панелі інструментів «Відкрити диск» ), а потім перейти до сектору для перегляду даних ( кнопка «Перейти в сектор» ). Якщо припустити, що у вашому секторі є адреси фізичного сектора, вам потрібно відкрити свій фізичний привід на цьому кроці.

    Це не буде ідентифікувати файл безпосередньо, але ліва панель повинна ідентифікувати розділ, який містить цей сектор, та відповідний його відносний сектор .

  2. Якщо розділ, який ви визначили, є розділом NTFS або FAT, ми можемо відкрити розділ безпосередньо (знову "Відкрити диск" ). Це відкриє розділ на новій вкладці, тож ви можете перемикатися вперед і назад за потреби. На вкладці розділу знову використовуйте функцію "Перейти до сектору" , але цього разу введіть перекладений сектор ( "відносний сектор", визначений у поданні диска).

    Тепер на панелі зліва ви побачите розділ "Виділення видимого простору диска" . Під цим кластером #, фізичний сектор #, логічний (відносний) сектор # та ім'я файлу, якщо цей сектор насправді належить до файлу.

Якщо ці кроки не дадуть вам негайної відповіді, ваші погані сектори можуть не використовуватися. Якщо результати незрозумілі, вам, можливо, доведеться ще трохи викопати, щоб знайти свою відповідь.


1
версія для завантаження стверджує, що є оціночною версією, але здається дуже спроможною. Я не впевнений, що таке пробний термін. дивіться тут варіанти ліцензії: x-ways.net/winhex/order.html
шарлатан

WinHex був бомбою .... Знайшов, які файли, де постраждали погані сектори (абсолютні сектори від поверхневого сканування) за лічені хвилини. Дивовижний підручник. Дякую, я хотів би проголосувати за "шарлатанний кіхот", але у мене немає 15 необхідних репутацій ......

Чи можна примусити користувальницький інтерфейс до розкриття цієї інформації, не читаючи сектор? Я виконую відновлення на диску, який вимикається (відключається та вимикається), коли я читаю окремі сектори.
sheldonh

З'являється веб-сайт winhex вниз / недоступний ( i.imgur.com/1FAX5cN.png ), спробуйте рішення nfi нижче. прямий і простий. безкоштовно. "негайна відповідь";)
Костін Гуша

21

Спробуйте nfi.exe - Утиліта інформаційного файлового сектору Windows NT (NTFS). Завантажити з інструментів підтримки Microsoft OEM Phase 3 SR2 .

> nfi.exe
Dumps information about an NTFS volume, and optionally determines
which volume and file contains a particular sector.

Usage: nfi drive-letter [logical-sector-number]

        Drive-letter can be a single character or a character followed
        by a colon (i.e., C or C: are acceptable).

        Logical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the volume
        whose drive letter is given by drive-letter. If not
        specified, then information about every file on the volume
        is dumped.

   nfi NT-device-path physical-sector-number

        Determines which volume a given physical sector on a drive is
        within, and then which file on the volume it is in.

        NT-device-path is the NT-style path to a physical device.
        It must not include a partition specification.

        Physical-sector-number is a decimal or 0x-prefixed hex
        number, specifying a sector number relative to the physical
        drive whose device path is given by NT-device-path.

    nfi full-win32-path

        Dumps information about a particular file. full-win32-path
        must start with a drive letter and a colon.

Зауважте, що ви повинні пропустити "\\?" префікс блоку шляху пристрою. Приклад:

C:\Users\admin\Downloads>nfi \Device\Harddisk0\DR0 28521816
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.


***Physical sector 28521816 (0x1b33558) is in file number 5766 on drive C.
\IMAGES\win7HDD.vhd
    $DATA (nonresident)
        physical sectors 32863720-34098663 (0x1f575e8-0x2084de7)
        physical sectors 28519912-32863719 (0x1b32de8-0x1f575e7)
        physical sectors 25727944-26291143 (0x18893c8-0x1912bc7)
        physical sectors 95163976-115106143 (0x5ac1648-0x6dc615f)

Я увійшов, щоб підтвердити це. це слід позначити як відповідь!
Costin Gușă

Якщо ви не знаєте NT-device-path, можете спробувати знайти його dd --list. (Увага для користувачів з інструментами Unix в PATH: ddось що C:\WINDOWS\system32\dd.exe, можливо, вам потрібно буде використовувати повний шлях)
користувач

Windows 10 не має цієї утиліти в system32. c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
Aen Sidhe

1
Посилання для завантаження на сайті microsoft мертве
басейн

1
Також можна знайти на зворотній машині web.archive.org/web/20150329185738/http://…
mkey

8

Більшість програм дефрагментації показують карту диска, на якій відображені всі кластери на диску, які ви можете натиснути (шукайте ті, позначені як погані ) для перегляду файлів, що знаходяться в цьому кластері.

Як зауважив Уолтер, будь-який диск та ОС з минулого десятиліття або близько того, переконайтеся, що автоматично переміщувати файли з поганих секторів (звичайно це справляється з прошивкою дисків, але chkdskзазвичай це роблять і дискові інструменти, як дефрагментатори).


Дефрагментатор:

введіть тут опис зображення

Дефрагмація файлу:

введіть тут опис зображення

Голос:

введіть тут опис зображення


Виглядає багатообіцяюче, я підкажу.
ChrisWue

6

DiskView від Sysinternals виконує саме таку функцію: відображає диск-карту накопичувача і дозволяє вам бачити, які файли займають кластери.

На жаль, схоже, не існує способу відображення імен системних файлів.

Головне вікно DiskView Системний файл DiskView



Ось чому я опублікував це як окрему відповідь, тому що це інструмент, створений спеціально для цієї мети, тому він відповідає на питання, але він обмежений (я все ще широко використовую FAT32), тому це не найкраще- все рішення. (Ще?)
Synetech

5

Ви можете використовувати fsutilкомандний рядок адміністратора. Підкоманда volumeмає queryclusterпідкоманду. Див . Розділ Довідник командного рядка Windows Fsutil .

Fsutil приймає номер кластера на логічному диску як вхідний аргумент, а не номер сектора. Але слід легко обчислити це число:
кластер # = (абсолютний_сектор - старт_о_розділ_сектор) / сектори_пер_кластер.

Приклад виводу:

c:\tmp> fsutil volume querycluster C: 5235
Cluster 0x0000000000001473, verwendet von
 ----D \Program Filesx86)\LibreOffice 4\program\fwilo.dll::$DATA

3

наскільки я знаю, коли диск накопичує певну кількість помилок читання в секторі, він позначається як поганий, а його вміст копіюється в інше місце на диску. зазвичай це відбувається до того, як дані про цей сектор стануть абсолютно нечитабельними.

Я намагаюся викопати джерело для цього, просто прочитав його вчора, але не можу пригадати, де.

від людини hdparm (8)

Зауважте також, що прапор --repair-сектора може бути використаний для відновлення (будь-яких) поганих секторів, коли вони більше не потрібні, включаючи сектори, які були справді поганими (накопичувач, швидше за все, переставить їх у свіжу область на носіях).

Підсумок: вам не потрібно дбати про погані сектори, прошивка жорстких дисків робить це за вас. єдине, що вам потрібно зробити, це отримати новий привід, перш ніж їх буде занадто багато, і ваш привід вмирає.


Я майже впевнений, що перерозподіл відбувається в режимі запису, а не при прочитанні. Здається, дані SMART накопичувача підтверджують це. Кількість відкладених секторів велика (більша за 0), тоді як кількість перерозподілу секторів становить 0. Для мене це означає: Існують погані сектори, відмічені для перерозподілу, але вони ще не були перерозподілені.
ChrisWue

ви пробували CHKDSK? en.wikipedia.org/wiki/CHKDSK
Baarn

дивіться на / r варіант
Baarn

отримати інформацію про файли, що зберігаються в цьому секторі, здається, неможливо.
Baarn

2

DiskExplorer RunTime дозволяє вивчити диск за сектором. Це програмне забезпечення (70 доларів за версію NTFS), але спробувати безкоштовно. Вони мають версії для NTFS, FAT та Linux (ext2 / 3).

alt текст


Це виглядало перспективно, але, на жаль, це не працює. DiskExplorer відображає "Недійсний запис MFT" для кожного сектора накопичувача.

я думаю, що вам не вистачає кроку конфігурації, якщо він показує, що для всіх секторів, але я давно не використовував цей інструмент, тому я не можу дати вам прямих інструкцій з ним. я додам ще одну відповідь окремим інструментом; можливо, хтось інший задзвенить при правильному використанні цього.
хитаючий кіхот

Це не проблема конфігурації, це те, що Провідник дисків просто дуже складний і важкий у використанні. Він недостатньо автоматичний. (Стара програма DOS Norton Disk Doctor була схожа, але набагато простіша у використанні, оскільки вона автоматично читалася та підлаштовувалася під структури файлової системи. Соромно, що вона не підтримує NTFS і була припинена.)
Synetech

0

Я знаю, що нитка стара, але для запису для всіх, хто має таку проблему, є спосіб перевірити її з Linux. Завжди можна використовувати деякий живий Linux на cd / usb stick, як slax, який дуже легко запускати. У будь-якому випадку, повернутися до справи.

Я знайшов сьогодні кілька розумних журналів Deamon з нечитабельними попередженнями секторів і вирішив це дослідити. Після дослідження я врешті-решт запускаю (# підказує кореневі привілеї, замість них можна використовувати sudo, якщо він працює як звичайний користувач):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

Що вказує на те, що цей привід дещо здоровий, що добре. Але я слідував і досліджував далі і бігав badblocks.

# badblocks -v /dev/sda2 > ~/log/sda2.badsectors
# cat ~/log/sda2.badsectors

271521948

Так була деяка badblock , які я хотів би знати , який файл він належить і виявив , що це може бути зроблено з debugfs, проблема полягала в тому , що мій розділ був NTFS , тому я використав ntfstools , який є ключовим:

# ntfscluster -s 271521948 /dev/sda2 > 271521948.secinfo 2>&1
# cat 271521948.secinfo | grep -v "extent"

Searching for sector 271521948
Inode 142427 /tmp/dl/setup_torch_2.exe/$DATA
* one inode found

/ grep -v "extent"полягає в тому, щоб позбутися безлічі непотрібної інформації, яку відображає ntfscluster/

Тож у випадку ntfs все, що потрібно, є ntfscluster -s $SECTOR.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.