Jak ustalić, który plik zajmuje dany sektor?


34

Mam dysk twardy z 3 uszkodzonymi sektorami. Znam numery sektorów i komputer nadal może uruchomić się w systemie Windows. Chcę uruchomić naprawę sektora z narzędzia diagnostycznego HDD od producenta, ale zanim to zrobię, chciałbym wiedzieć, na jakie pliki to wpływa. Czy istnieje sposób, aby dowiedzieć się, jaki plik lub pliki zajmują te sektory?


1
Edytor sektorów roadkil może być częścią drogi, po prostu nie wyświetla listy programów.
barlop

Zobacz także Jak dowiedzieć się, jaki plik znajduje się w określonym sektorze - to samo pytanie, ale dla systemu plików NTFS dostępnego z Linuksa.
sleske,

Odpowiedzi:


22

Oto proces z wykorzystaniem WinHex , poręcznego edytora szesnastkowego, który może bezpośrednio sprawdzać i edytować dyski. Bądź bardzo ostrożny; to narzędzie może uszkodzić system, jeśli zostanie użyte w niewłaściwy sposób. O ile to możliwe, otwieraj dyski tylko do odczytu .

  1. Ponieważ masz już uszkodzone lokalizacje sektorów, możesz bezpośrednio otworzyć dysk w WinHex ( przycisk paska narzędzi „Otwórz dysk” ), a następnie przejść do sektora, aby wyświetlić dane ( przycisk paska narzędzi „Idź do sektora” ). Zakładając, że lokalizacje sektorów są adresami sektorów fizycznych, w tym kroku musisz otworzyć dysk fizyczny .

    Nie spowoduje to bezpośredniej identyfikacji pliku, ale lewy panel powinien identyfikować partycję zawierającą ten sektor i odpowiadający mu względny adres sektora .

  2. Jeśli wskazana partycja jest partycją NTFS lub FAT, możemy ją otworzyć bezpośrednio ( „Otwórz dysk” ponownie). Spowoduje to otwarcie partycji w nowej karcie, dzięki czemu będziesz mógł w razie potrzeby przełączać się tam iz powrotem. Na karcie partycji ponownie użyj funkcji „Idź do sektora” , ale tym razem wprowadź przetłumaczony sektor ( „względny sektor” zidentyfikowany w widoku napędu).

    Teraz, w lewym panelu, powinieneś zobaczyć sekcję „Przydział widocznego miejsca na dysku” . Poniżej znajduje się klaster #, sektor fizyczny #, logiczny (względny) sektor # i nazwa pliku, jeśli ten sektor faktycznie należy do pliku.

Jeśli te kroki nie dadzą ci natychmiastowej odpowiedzi, twoje złe sektory mogą nie być w użyciu. Jeśli wyniki są niejasne, być może będziesz musiał zrobić trochę więcej, aby znaleźć odpowiedź.


1
wersja do pobrania twierdzi, że jest wersją ewaluacyjną, ale wydaje się bardzo zdolna. nie jestem pewien, jaki jest okres próbny. zobacz tutaj opcje licencji: x-ways.net/winhex/order.html
quack quixote

WinHex był bombą .... Znaleziono kilka plików, które dotknęły złe sektory (sektory absolutne ze skanowania powierzchni) w kilka minut. Niesamowity samouczek. Dzięki, zagłosowałbym za tobą „quack quixote”, ale nie mam 15 niezbędnej reputacji ......

Czy interfejs użytkownika można zmusić do ujawnienia tych informacji bez odczytywania sektora? Odzyskuję dane na dysku, który wyłącza się (odłącza i wyłącza się) podczas odczytywania poszczególnych sektorów.
sheldonh

Witryna Winhex wydaje się niedostępna / niedostępna ( i.imgur.com/1FAX5cN.png ) wypróbuj poniższe rozwiązanie nfi. prosty i prosty. wolny. „natychmiastowa odpowiedź”;)
Costin Guăă

21

Wypróbuj nfi.exe - Narzędzie informacji o sektorze plików w systemie Windows NT (NTFS). Pobierz z Microsoft OEM Support Tools 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.

Pamiętaj, że musisz pominąć „\\?” prefiks ścieżki urządzenia blokowego. Przykład:

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)

Zalogowałem się, aby to zagłosować. należy to oznaczyć jako odpowiedź!
Costin Gușă

Jeśli nie wiesz NT-device-path, możesz spróbować to znaleźć dd --list. (Uwaga dla użytkowników z narzędziami uniksowymi w PATH: ddtutaj C:\WINDOWS\system32\dd.exemoże być konieczne użycie pełnej ścieżki)
użytkownik

Windows 10 nie ma tego narzędzia w systemie32. c:\Windows\System32>dd.exe 'dd.exe' is not recognized as an internal or external command, operable program or batch file.
Aen Sidhe

1
Link do pobrania na stronie Microsoft jest martwy
dorzecze

1
Można go również znaleźć na maszynie powrotnej web.archive.org/web/20150329185738/http://…
mkey

8

Większość programów do defragmentacji pokazuje mapę dysku wyświetlającą wszystkie klastry na dysku, które można następnie kliknąć (poszukać tych oznaczonych jako złe ), aby wyświetlić pliki znajdujące się w tym klastrze.

Jak powiedział Walter, każda kombinacja dysku i systemu operacyjnego z ostatniej dekady zapewni automatyczne przeniesienie plików z uszkodzonych sektorów (oprogramowanie układowe dysku zwykle to obsługuje, ale narzędzia dyskowe chkdsklub defragmentatory zwykle to robią).


Defraggler:

wprowadź opis zdjęcia tutaj

Defrag-a-File:

wprowadź opis zdjęcia tutaj

Vopt:

wprowadź opis zdjęcia tutaj


Wygląda obiecująco, spróbuję.
ChrisWue,

6

DiskView z Sysinternals wykonuje dokładnie tę funkcję: wyświetla dysmapę dysku i pozwala zobaczyć, jakie pliki zajmują poszczególne klastry.

Niestety, wydaje się, że nie ma sposobu wyświetlania nazw plików systemowych.

Główne okno DiskView Plik systemowy DiskView



Dlatego opublikowałem go jako osobną odpowiedź, ponieważ jest to narzędzie stworzone specjalnie do tego celu, więc odpowiada na pytanie, ale jest ograniczone (nadal intensywnie używam FAT32), więc nie jest to wszechstronne wszystkie rozwiązania. (Jeszcze?)
Synetech

5

Możesz użyć fsutilz wiersza polecenia administratora. Podkomenda volumema queryclusterpodkomendę. Zobacz Odwołanie do wiersza polecenia systemu Windows Fsutil .

Fsutil przyjmuje numer klastra na dysku logicznym jako argument wejściowy zamiast numeru sektora. Ale powinno być łatwo obliczyć tę liczbę:
klaster # = (absolutny_sektor - start_w_sekcji_sektor) / sektory_per_cluster.

Przykładowe dane wyjściowe:

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

3

o ile wiem, gdy dysk napotka określoną liczbę błędów odczytu w sektorze, zostaje oznaczony jako zły, a jego zawartość jest kopiowana w inne miejsce na dysku. dzieje się tak zwykle, zanim dane dotyczące tego sektora staną się całkowicie nieczytelne.

Próbuję znaleźć dla tego źródło, po prostu przeczytam je wczoraj, ale nie pamiętam gdzie.

od man hdparm (8)

Zauważ również, że flaga --repair-sektor może być używana do przywracania (dowolnych) złych sektorów, gdy nie są już potrzebne, w tym sektorów, które były naprawdę złe (dysk prawdopodobnie przypisze je do nowego obszaru na nośniku).

Konkluzja: nie musisz przejmować się uszkodzonymi sektorami, oprogramowanie układowe na twarde dyski robi to za Ciebie. jedyne, co musisz zrobić, to zdobyć nowy dysk, zanim będzie ich zbyt wiele, a dysk zginie.


Jestem całkiem pewien, że realokacja odbywa się podczas zapisu, a nie odczytu. Dane SMART napędu wydają się to potwierdzać. Liczba oczekujących sektorów jest wysoka (większa niż 0), a liczba realokacji sektorów wynosi 0. Dla mnie oznacza to: Istnieją złe sektory oznaczone do realokacji, ale jeszcze nie zostały one ponownie przydzielone.
ChrisWue,

próbowałeś CHKDSK? en.wikipedia.org/wiki/CHKDSK
Baarn

spójrz na opcję / r
Baarn,

Wydawanie informacji o plikach przechowywanych w tym sektorze wydaje się jednak niemożliwe.
Baarn,

2

DiskExplorer RunTime pozwala na sprawdzenie dysku według sektora. Jest to oprogramowanie płatne (70 USD za wersję NTFS), ale można wypróbować za darmo. Posiadają wersje dla NTFS, FAT i Linux (ext2 / 3).

alternatywny tekst


Wyglądało to obiecująco, ale niestety nie działa. DiskExplorer wyświetla „Nieprawidłowy wpis MFT” dla każdego sektora dysku.

spodziewam się, że brakuje kroku konfiguracji, jeśli pokazuje to dla wszystkich sektorów, ale od dawna nie korzystałem z tego narzędzia, więc nie mogę dać ci bezpośrednich instrukcji. dodam inną odpowiedź za pomocą osobnego narzędzia; być może ktoś inny zagra z właściwym użyciem tego.
szarlatan

To nie jest problem z konfiguracją, to, że Disk Explorer jest po prostu bardzo skomplikowany i trudny w użyciu. To nie jest wystarczająco automatyczne. (Stary program DOS Norton Disk Doctor był podobny, ale o wiele łatwiejszy w użyciu, ponieważ automatycznie czytał i dostosowywał się do struktur systemu plików. Szkoda, że ​​nie obsługiwał NTFS i został przerwany.)
Synetech

0

Wiem, że wątek jest stary, ale dla przypomnienia wszystkim, którzy mają taki problem, jest sposób, aby to sprawdzić w systemie Linux. Zawsze można użyć linuksa na żywo na dysku CD / USB, jak slax, który jest bardzo łatwy do uruchomienia. Wracając do biznesu.

Znalazłem dzisiaj kilka logów smartdona diamona z nieczytelnymi ostrzeżeniami sektorowymi i postanowiłem to zbadać. Po badaniach w końcu uruchamiam (# wyświetla monit o uprawnienia administratora, zamiast tego można użyć sudo, jeśli jest uruchomiony jako zwykły użytkownik):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

Co wskazuje, że ten dysk jest nieco zdrowy, co jest dobre. Ale poszedłem za tym, zbadałem dalej i uciekłem badblocks.

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

271521948

Więc nie było pewne badblock który chciałem wiedzieć, który plik należy do i okazało się, że można to zrobić z debugfsproblemem było to, że moja partycja NTFS był więc użyłem ntfstools który jest kluczem:

# 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"ma pozbyć się wielu niepotrzebnych informacji wyświetlanych przez ntfscluster/

Więc w przypadku NTFS wystarczy tylko jedno ntfscluster -s $SECTOR.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.