Comment déterminer quel fichier occupe un secteur donné?


34

J'ai un disque dur avec 3 secteurs défectueux. Je connais les numéros de secteur et l'ordinateur peut toujours démarrer sous Windows. Je souhaite exécuter la réparation de secteur à partir d'un outil de diagnostic de disque dur fourni par le fabricant, mais avant cela, j'aimerais savoir quels fichiers sont affectés. Existe-t-il un moyen de savoir quel fichier ou quels fichiers occupent ces secteurs?


1
L'éditeur de secteurs de roadkil pourrait faire partie du processus, mais ne répertorie pas les programmes.
barlop

Voir aussi Comment savoir quel fichier se trouve sur un secteur particulier - la même question, mais pour un système de fichiers NTFS accessible depuis Linux.
Sleske

Réponses:


22

Voici le processus utilisant WinHex , un éditeur hexadécimal pratique qui permet d'examiner et de modifier directement des lecteurs. Soyez très prudent; Cet outil peut endommager votre système s’il n’est pas utilisé correctement. Ouvrez les disques en lecture seule chaque fois que possible.

  1. Comme vous avez déjà les emplacements de secteur défectueux, vous pouvez ouvrir le lecteur directement dans WinHex ( bouton de la barre d’outils "Ouvrir le disque" ), puis naviguer dans le secteur pour afficher les données ( bouton de la barre d’outils "Aller au secteur" ). En supposant que les emplacements de secteur soient des adresses de secteur physiques, vous devez ouvrir votre lecteur physique à cette étape.

    Cela n'identifiera pas directement le fichier, mais le volet de gauche devrait identifier la partition contenant ce secteur et l' adresse de secteur relative correspondante .

  2. Si la partition que vous avez identifiée est une partition NTFS ou FAT, nous pouvons ouvrir la partition directement ( "Open Disk" à nouveau). Cela ouvrira la partition dans un nouvel onglet, de sorte que vous pourrez basculer au besoin. Dans l'onglet Partition, utilisez à nouveau la fonction "Aller au secteur" , mais cette fois, entrez le secteur traduit (le "secteur relatif" identifié dans la vue du lecteur).

    À présent, dans le volet de gauche, vous devriez voir une section sur "Allocation d'espace disque visible" . Sous cela se trouvent le numéro de cluster, le secteur physique #, le secteur logique (relatif) et le nom de fichier si ce secteur appartient réellement à un fichier.

Si ces étapes ne vous donnent pas une réponse immédiate, vos secteurs défectueux peuvent ne pas être utilisés. Si les résultats ne sont pas clairs, vous devrez peut-être creuser davantage pour trouver votre réponse.


1
la version téléchargeable prétend être une version d'évaluation, mais semble très capable. Je ne sais pas quelle est la période d'essai. voir ici pour les options de licence: x-ways.net/winhex/order.html
Quack Quichote

WinHex était la bombe .... On a trouvé quels fichiers étaient affectés par les secteurs défectueux (secteurs absolus à partir de l’analyse de surface) en quelques minutes. Tutoriel génial. Merci, je te voterais "quack quixote" mais je n'ai pas la 15 réputation nécessaire ......

Peut-on forcer l'interface utilisateur à révéler cette information sans lire le secteur? J'effectue une récupération sur un disque qui s'arrête (se détache et se met hors tension) lorsque je lis des secteurs particuliers.
Sheldonh

Le site Web de winhex apparaît en bas / indisponible ( i.imgur.com/1FAX5cN.png ). Essayez la solution nfi ci-dessous. droit et simple. libre. "réponse immédiate";)
Costin Gușă

21

Essayez nfi.exe - Utilitaire d'informations sectorielles sur les fichiers du système de fichiers Windows NT (NTFS). Télécharger depuis Outils de support OEM Microsoft 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.

Notez que vous devez omettre le "\\?" préfixe du chemin du périphérique de bloc. Exemple:

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)

Je me suis connecté juste pour upvote cela. cela devrait être marqué comme réponse!
Costin

Si vous ne le savez pas NT-device-path, vous pouvez essayer de le trouver avec dd --list. (Attention aux utilisateurs avec des outils Unix dans PATH: ddvoici C:\WINDOWS\system32\dd.exe, vous devrez peut-être utiliser le chemin complet)
utilisateur le

Windows 10 n'a pas cet utilitaire dans 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
Le lien de téléchargement sur le site de Microsoft est dead
basin

1
Peut aussi être trouvé sur la machine à remonter le chemin web.archive.org/web/20150329185738/http://…
mkey

8

La plupart des programmes de défragmentation affichent une carte de disque affichant tous les clusters du disque sur lesquels vous pouvez cliquer (recherchez ceux marqués comme étant défectueux ) pour afficher le (s) fichier (s) situé (s) dans ce cluster.

Comme Walter l'a dit, tous les disques et systèmes d'exploitation de la dernière décennie veilleront à déplacer automatiquement les fichiers de secteurs défectueux (le micrologiciel du lecteur gère généralement cette opération, mais les outils de disque tels que les chkdskdéfragmenteurs le font également).


Défraggleur:

entrez la description de l'image ici

Défragmenter un fichier:

entrez la description de l'image ici

Vopt:

entrez la description de l'image ici


Cela semble prometteur, je vais essayer.
ChrisWue

6

DiskView de Sysinternals remplit exactement cette fonction: afficher une diskmap du lecteur et voir quels fichiers occupent quels clusters.

Malheureusement, il ne semble pas y avoir de moyen d’afficher les noms des fichiers système.

Fenêtre principale de DiskView Fichier système DiskView



C’est la raison pour laquelle j’ai posté la réponse séparément, parce que c’est un outil spécialement conçu à cet effet. Elle répond donc à la question, mais elle est limitée (j’utilise toujours beaucoup le FAT32), elle n’est donc pas la solution ultime. toute solution. (Pourtant?)
Synetech

5

Vous pouvez utiliser fsutildepuis l'invite de commande de l'administrateur. La sous-commande volumea une sous-sous- queryclustercommande. Voir Référence de la ligne de commande Windows Fsutil .

Fsutil prend le numéro de cluster dans le lecteur logique comme argument d'entrée, au lieu du numéro de secteur. Mais il devrait être facile de calculer ce nombre:
cluster # = (absolute_sector - start_of_partition_sector) / secteurs_per_cluster.

Exemple de sortie:

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

3

Autant que je sache, lorsqu'un lecteur rencontre un certain nombre d'erreurs de lecture sur un secteur, il est marqué comme défectueux et son contenu est copié dans un autre emplacement du lecteur. cela se produit généralement avant que les données de ce secteur ne soient complètement illisibles.

J'essaie de trouver une source pour cela, lisez-la hier, mais je ne me souviens plus où.

de l' homme hdparm (8)

Notez également que le drapeau --repair-sector peut être utilisé pour restaurer (tous) les secteurs défectueux lorsqu'ils ne sont plus nécessaires, y compris les secteurs véritablement défectueux (le lecteur remappera probablement ceux-ci vers une nouvelle zone du support).

En bout de ligne: vous n’avez pas à vous soucier des mauvais secteurs, le microprogramme des disques durs le fait pour vous. La seule chose que vous devez faire est d’obtenir un nouveau disque avant qu’ils ne soient trop nombreux et que votre disque meure.


Je suis à peu près sûr que la réaffectation se fait en écriture et non en lecture. Les données SMART du lecteur semblent confirmer cela. Le nombre de secteurs en attente est élevé (supérieur à 0), tandis que le nombre de réaffectations de secteurs est égal à 0. Pour moi, cela signifie: Il existe des secteurs défectueux destinés à la réallocation, mais ils n'ont pas encore été réaffectés.
ChrisWue

avez-vous essayé CHKDSK? fr.wikipedia.org/wiki/CHKDSK
Baarn

Regardez l'option / r
Baarn

Obtenir des informations sur les fichiers stockés dans ce secteur ne semble cependant pas possible.
Baarn

2

DiskExplorer de RunTime vous permet d'examiner un lecteur par secteur. C'est un payware (70 $ pour la version NTFS) mais gratuit à essayer. Ils ont des versions pour NTFS, FAT et Linux (ext2 / 3).

texte alternatif


Cela semblait prometteur, mais malheureusement cela ne fonctionne pas. DiskExplorer affiche "Entrée MFT non valide" pour chaque secteur du lecteur.

Je suppose qu'il vous manque une étape de configuration si elle le montre pour tous les secteurs, mais je n'ai pas utilisé cet outil depuis longtemps et je ne peux donc pas vous donner d'instructions directes. Je vais ajouter une autre réponse avec un outil séparé; peut-être que quelqu'un d'autre ajoutera l'utilisation appropriée de celui-ci.
Quack Quichotte

Ce n'est pas un problème de configuration, c'est que Disk Explorer est très compliqué et difficile à utiliser. Ce n'est pas assez automatique. (L'ancien programme DOS Norton Disk Doctor était similaire, mais beaucoup plus facile à utiliser car il était automatiquement lu et ajusté aux structures de système de fichiers. Dommage qu'il ne supporte pas NTFS et qu'il soit interrompu.)
Synetech

0

Je sais que thread est vieux, mais pour le compte rendu, tout le monde a un tel problème, il existe un moyen de le vérifier à partir de Linux. On peut toujours utiliser un linux en direct sur clé USB / cd, comme slax, qui est très facile à utiliser. Quoi qu'il en soit, retour aux affaires.

J’avais trouvé aujourd’hui des journaux smartd deamon avec des avertissements de secteurs illisibles et j’ai décidé d’enquêter. Après des recherches, j’ai fini par exécuter (# est une invite indiquant les privilèges root, sudo peut être utilisé à la place s’il est exécuté en tant qu’utilisateur ordinaire):

# smartctl -H /dev/sda2

SMART overall-health self-assessment test result: PASSED

Ce qui indique que ce disque est en bonne santé, ce qui est bien. Mais j'ai suivi et étudié plus loin et couru badblocks.

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

271521948

Il y avait donc une badblock que je voulais savoir quel fichier il appartient et a constaté que cela pourrait se faire avec debugfs, le problème était que ma partition était ntfs si je ntfstools qui est la clé:

# 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"est de se débarrasser de beaucoup d'informations inutiles affichées par ntfscluster/

Donc, dans le cas de ntfs, tout ce dont on a besoin est ntfscluster -s $SECTOR.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.