Come posso determinare quale file occupa un determinato settore?


34

Ho un disco rigido con 3 settori danneggiati. Conosco i numeri di settore e il computer può ancora avviarsi in Windows. Voglio eseguire la riparazione del settore da uno strumento di diagnostica HDD del produttore, ma prima di farlo, vorrei sapere quali file sono interessati. C'è un modo per capire quale file o quali file occupano quei settori?


1
L'editor di settore di roadkil potrebbe fare parte del percorso, ma non elenca i programmi.
barlop

Vedi anche Come scoprire quale file si trova in un determinato settore - la stessa domanda, ma per un filesystem NTFS a cui si accede da Linux.
sleske,

Risposte:


22

Ecco il processo usando WinHex , un pratico editor esadecimale che può esaminare e modificare direttamente le unità. Essere molto attenti; questo strumento può danneggiare il sistema se utilizzato in modo inappropriato. Apri dischi di sola lettura quando possibile.

  1. Dato che hai già posizioni errate del settore, puoi aprire direttamente l'unità in WinHex ( pulsante della barra degli strumenti "Apri disco" ) e quindi navigare nel settore per visualizzare i dati ( pulsante della barra degli strumenti "Vai al settore" ). Supponendo che le posizioni dei settori siano indirizzi di settori fisici , in questo passaggio è necessario aprire l' unità fisica .

    Ciò non identificherà il file direttamente, ma il riquadro di sinistra dovrebbe identificare la partizione che contiene questo settore e il relativo indirizzo di settore relativo .

  2. Se la partizione che hai identificato è una partizione NTFS o FAT, possiamo aprire direttamente la partizione ( "Apri disco" ). Questo aprirà la partizione in una nuova scheda, quindi puoi passare avanti e indietro secondo necessità. Nella scheda delle partizioni, utilizzare nuovamente la funzione "Vai al settore" , ma questa volta immettere il settore tradotto (il "settore relativo" identificato nella vista unità).

    Ora, nel riquadro di sinistra, dovresti vedere una sezione su "Alloc. Di spazio su disco visibile" . Sotto questo è il cluster #, il settore fisico #, il settore logico (relativo) # e il nome file se questo settore appartiene effettivamente a un file.

Se questi passaggi non ti danno una risposta immediata, i tuoi settori danneggiati potrebbero non essere in uso. Se i risultati non sono chiari, potrebbe essere necessario scavare di più per trovare la risposta.


1
la versione scaricabile afferma di essere una versione di valutazione, ma sembra molto capace. non sono sicuro di quale sia il periodo di prova. vedi qui per le opzioni di licenza: x-ways.net/winhex/order.html
quack quixote

WinHex era la bomba .... Ho scoperto quali file sono stati colpiti dai settori danneggiati (settori assoluti dalla scansione di superficie) in pochi minuti. Tutorial fantastico. Grazie, vorrei votare "quack quixote" ma non ho la reputazione 15 necessaria ......

L'interfaccia utente può essere costretta a rivelare queste informazioni senza leggere il settore? Sto eseguendo il ripristino su un disco che si spegne (si stacca e si spegne) quando leggo determinati settori.
sheldonh,

Il sito Web winhex appare inattivo / non disponibile ( i.imgur.com/1FAX5cN.png ) prova la soluzione nfi di seguito. dritto e semplice. gratuito. "risposta immediata";)
Costin Gușă,

21

Prova nfi.exe - Utilità di informazioni sul settore dei file di file system (NTFS) di Windows. Scarica da Microsoft OEM Support Tools Fase 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.

Nota che devi omettere "\\?" prefisso del percorso del dispositivo a blocchi. Esempio:

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)

Ho effettuato l'accesso solo per votare questo. questo dovrebbe essere contrassegnato come risposta!
Costin Gușă,

Se non lo sai NT-device-path, puoi provare a trovarlo con dd --list. (Attenzione agli utenti con strumenti Unix in PATH: il ddqui è C:\WINDOWS\system32\dd.exe, potrebbe essere necessario utilizzare il percorso completo)
utente

Windows 10 non ha questa utilità in 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
Il link per il download sul sito di microsoft è dead
bacino

1
Può anche essere trovato sulla macchina del ritorno web.archive.org/web/20150329185738/http://…
mkey

8

La maggior parte dei programmi di deframmentazione mostra una mappa del disco che mostra tutti i cluster sul disco su cui è possibile fare clic (cercare quelli contrassegnati come non validi ) per visualizzare i file situati in quel cluster.

Come ha detto Walter, qualsiasi combinazione di disco e sistema operativo dell'ultimo decennio o giù di lì assicurerà di spostare automaticamente i file da settori danneggiati (il firmware dell'unità di solito lo gestisce, ma di chkdsksolito lo fanno anche strumenti come disco o deframmentatori).


Defraggler:

inserisci qui la descrizione dell'immagine

Defrag-a-File:

inserisci qui la descrizione dell'immagine

Vopt:

inserisci qui la descrizione dell'immagine


Sembra promettente, ci proverò.
ChrisWue,

6

DiskView di Sysinternals svolge esattamente questa funzione: visualizzare una diskmap dell'unità e farti vedere quali file occupano quali cluster.

Sfortunatamente, non sembra esserci un modo per visualizzare i nomi dei file di sistema.

Finestra principale di DiskView File di sistema DiskView



Ecco perché l'ho pubblicato come una risposta separata, perché è uno strumento creato appositamente per questo scopo, quindi risponde alla domanda, ma è limitato (uso ancora ampiamente FAT32), quindi non è il modello universale tutta la soluzione. (Ancora?)
Synetech il

5

È possibile utilizzare fsutildal prompt dei comandi dell'amministratore. Il sottocomando volumeha un queryclustersottocomando. Vedi Fsutil di riferimento alla riga di comando di Windows .

Fsutil accetta il numero di cluster nell'unità logica come argomento di input, anziché il numero di settore. Dovrebbe essere facile calcolare questo numero:
cluster # = (absolute_sector - start_of_partition_sector) / settori_per_cluster.

Esempio di output:

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

3

per quanto ne so quando un'unità colpisce un certo numero di errori di lettura su un settore, viene contrassegnata come non valida e il suo contenuto viene copiato in un'altra posizione sull'unità. questo di solito accade prima che i dati su quel settore siano diventati completamente illeggibili.

Provo a cercare una fonte per quello, ho appena letto ieri ma non ricordo dove.

da man hdparm (8)

Si noti inoltre che la bandiera --repair-sector può essere utilizzata per ripristinare (eventuali) settori danneggiati quando non sono più necessari, compresi i settori che erano realmente danneggiati (l'unità probabilmente rimappa quelli in un'area fresca sui media).

In conclusione: non devi preoccuparti di settori danneggiati, il firmware degli hard disk lo fa per te. l'unica cosa che devi fare è ottenere una nuova unità prima che ce ne siano troppe e la tua unità muoia.


Sono abbastanza sicuro che la riallocazione avviene in scrittura e non in lettura. I dati SMART dell'unità sembrano confermarlo. Il numero di settori in sospeso è elevato (maggiore di 0) mentre il conteggio di riallocazione dei settori è 0. Per me ciò significa: ci sono settori danneggiati contrassegnati per la riallocazione ma non sono stati ancora riallocati.
ChrisWue,

hai provato CHKDSK? en.wikipedia.org/wiki/CHKDSK
Baarn

guarda l'opzione / r
Baarn

tuttavia non è possibile ottenere informazioni sui file archiviati in quel settore.
Baarn,

2

DiskExplorer di RunTime consente di esaminare un'unità per settore. È payware ($ 70 per la versione NTFS) ma gratuito da provare. Hanno versioni per NTFS, FAT e Linux (ext2 / 3).

testo alternativo


Sembrava promettente, ma purtroppo non funziona. DiskExplorer visualizza "Voce MFT non valida" per ogni settore dell'unità.

mi aspetto che manchi un passaggio di configurazione se lo dimostra per tutti i settori, ma non uso questo strumento da molto tempo, quindi non posso darvi istruzioni dirette. aggiungerò un'altra risposta con uno strumento separato; forse qualcun altro interverrà con il corretto utilizzo di questo.
Quack Quixote,

Non è un problema di configurazione, è che Disk Explorer è solo molto complicato e difficile da usare. Non è abbastanza automatico. (Il vecchio programma DOS Norton Disk Doctor era simile, ma molto più facile da usare perché leggeva e si
adattava

0

So che il thread è vecchio ma per la cronaca di tutti coloro che hanno questo problema c'è modo di controllarlo da Linux. Si può sempre usare un po 'di live linux su cd / usb stick, come slax che è super facile da eseguire. Comunque, torniamo al lavoro.

Avevo trovato oggi alcuni log di deamon smartd con avvisi di settori illeggibili e ho deciso di indagare su questo. Dopo la ricerca alla fine corro (# è un prompt che indica i privilegi di root, sudo può essere usato invece se uno è in esecuzione come utente normale):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

Ciò indica che l'unità è in qualche modo sana, il che è positivo. Ma ho seguito e indagato ulteriormente e ho corso badblocks.

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

271521948

Quindi c'era un po 'di blocchi danneggiati che volevo sapere quale file a cui appartiene e ha scoperto che potrebbe essere fatto con debugfs, il problema era che la mia partizione ntfs era così ho usato ntfstools che è la chiave:

# 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"è quello di sbarazzarsi di molte informazioni inutili visualizzate da ntfscluster/

Quindi in caso di NTFS tutto ciò che serve è ntfscluster -s $SECTOR.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.