Comment désélectionner un cluster NTFS comme mauvais?

14

Comment puis-je désélectionner les clusters comme étant défectueux dans NTFS?

Contexte

J'ai couru par erreur

>chkdsk /R

sur mon SSD, où

/ R : localise les secteurs défectueux et récupère les informations lisibles (implique / F)
/ F : corrige les erreurs sur le disque

Et maintenant, j'ai un cluster marqué comme mauvais sur mon disque. J'ai besoin d'annuler ce cluster comme étant mauvais.

Remarque : chkdska une option pour réévaluer un cluster et le retourner à utiliser:

/ B : NTFS uniquement: réévalue les clusters défectueux sur le volume (implique / R)

Malheureusement, cette option ne désélectionnera le cluster que s'il n'est plus mauvais. J'ai besoin que le cluster soit non marqué malgré tout.

Comment annuler le marquage d'un cluster NTFS comme mauvais?

Pourquoi fais-tu ça?

Peu importe pourquoi moi, et des centaines d'autres, posons la question. Mais le problème est qu'il y a un mauvais secteur sur mon disque. Il est temps de remplacer le lecteur par un nouveau. La façon de procéder consiste à mettre en miroir le SSD sur un autre SSD à l'aide de la mise en miroir du logiciel Windows .

Malheureusement, un bogue connu dans la mise en miroir Windows NTFS empêche le miroir de se terminer, comme indiqué dans KB325615 :

Impossible de créer un miroir logiciel si le disque contient des blocs défectueux

DMIO fonctionne sous le système de fichiers et s'il détecte des erreurs d'E / S lors de la lecture d'un secteur sur le disque source ou lors de la tentative d'écriture des données sur le disque de destination, il abandonne l'opération de mise en miroir.

La solution de contournement évidente était de réduire le volume du système d'exploitation, de sorte que le secteur défectueux soit passé la fin du volume. Dans Windows 7, lorsque vous tentez de réduire un volume, il déplacera automatiquement les fichiers.

entrez la description de l'image ici

C'est une bonne chose. Dans les temps anciens, si vous vouliez réduire un volume, vous deviez utiliser un outil de défragmentation qui pousserait tous les fichiers vers l'avant du lecteur; laissant un espace libre à la fin.

Malheureusement , il y a maintenant un inébranlables fichier de la façon suivante : $BadClus. L' opération de défragmentation Shrink note le fichier inamovible dans le journal des événements:

Une analyse de réduction du volume a été lancée sur le volume OS (C :). Cette entrée du journal des événements détaille les informations sur le dernier fichier non amovible pouvant limiter le nombre maximal d'octets récupérables.

Détails de diagnostic:

  • Le dernier fichier inamovible semble être: \ $ BadClus: $ Bad: $ DATA
  • Le dernier cluster du fichier est: 0xdc1ded
  • Rétrécir la cible potentielle (adresse LCN): 0xa91bd9
  • Les drapeaux de fichiers NTFS sont: -S - D
  • Phase de rétrécissement: <analyse>

Donc:

  • Je ne peux pas refléter le volume tant que les mauvais secteurs ne sont pas supprimés
  • la réduction du volume supprimera les secteurs défectueux
  • je ne peux pas réduire le volume tant que le $BadClusfichier clairsemé n'est pas déplacé
  • je ne peux pas bouger $BadClusalors qu'il occupe physiquement de mauvaises grappes
  • $BadClus occupera physiquement les clusters défectueux tandis que NTFS pense que le cluster est mauvais

Comment annuler le marquage d'un cluster comme mauvais?

Pour les gens qui fantômes conduisent aussi

La solution à mon problème fonctionnerait également pour le cas le plus courant:

Quelqu'un fantôme un lecteur contenant des secteurs défectueux sur un nouveau lecteur, puis le bon lecteur a toujours ces clusters marqués comme mauvais, même s'ils sont bons. Il se trouve qu'ils ont une solution de contournement à leur disposition:

>chkdsk /B

Sauf que ça ne marche pas dans mon cas. (Et même si cela a fonctionné dans mon cas, ce n'est pas la question que je pose.)

Bonus Chatter

Bien sûr, le SSD Kingson ne gère pas de secteurs de rechange. Si c'était le cas, cela pourrait remapper le secteur de rechange de manière transparente pour moi, et je n'aurais pas NTFS essayant de trop penser.

SpinRite

j'ai essayé SpinRite'ing le lecteur SS. Il rencontre le secteur défectueux, mais ne parvient pas à obtenir de valeurs du lecteur:

══════════════════╤═══════════════════════════╤═════════════════════════════════
cylinder : 7,183  │     data samples : 1,999  │  first uncertain bit : · · · · ·
  sector :    17  │   unique samples :     0  │   last uncertain bit : · · · · ·
    head :   187  │  discarded sples :     0  │   uncertain bit span : · · · · ·

Le nombre d' échantillons de données compte jusqu'à 2 000, puis revient à zéro et continue.

entrez la description de l'image ici

Après environ 20 boucles (soit 40 000 échantillons de données), j'ai abandonné.

Clonage

Encore; ne confondons pas la question avec l'exemple. La question est de savoir comment désélectionner les clusters comme étant défectueux dans NTFS. Bien après avoir abandonné et jeté le SSD, la question restera. Ne confondez pas mon problème avec la question. Cela ne signifie pas que je pourrais essayer de résoudre mon problème:

DriveImageXML atteint le secteur défectueux et abandonne.

GParted ne parvient pas à se charger. Un écran de démarrage graphique apparaît, puis une fenêtre de console fait défiler le texte, suivie d'un écran noir rien

Clonezilla refuse de cloner mon SSD:

Ce disque contient des partitions GPT et MGR incompatibles: / dev / sdb
Cela confondra Clonezill et pourrait rendre l'image enregistrée inutile ou échouer à cloner le disque.

Veuillez corriger ce problème puis redémarrez Clonezilla à nouveau.
Programme terminé.

entrez la description de l'image ici

Comment puis-je désélectionner un cluster comme mauvais dans NTFS?

Ian Boyd
la source
Voulez-vous une solution Windows ou utiliser Linux serait-il correct?
Thomas Weller
2
@ThomasW. cela ne me dérange pas un outil d'auto-démarrage; en utilisant le système d'exploitation qu'il aime. Bien sûr, je préférerais un outil GUI. je me suis fatigué d'utiliser les lignes de commande en 1990. j'ai commencé à chercher à utiliser CreateFilepour ouvrir le volume directement; mais j'ai réalisé que je devrais recommencer à zéro, en analysant toutes les structures de données non documentées. J'ai ouvert le volume directement pour l'édition dans mon éditeur hexadécimal préféré, mais j'avais le même inconvénient, devant analyser manuellement les structures hexadécimales.
Ian Boyd
@ThomasW. pourquoi même demander si vous ne pouvez pas répondre à la façon de le réparer sous linux? si tout ce que vous voulez dire, c'est que si le réparer à partir d'un live cd linux est correct, vous ne savez pas comment, mais il devrait ajouter une balise linux.
barlop
Si vous utilisez MBR pour la partition de disque, sgdisk -z / dev / sdb effacera le GPT et le clonezilla le copiera. backup-utility.com/articles/…
cybernard

Réponses:

7

Je ne répondrai plus à la question du titre. 1

Tout d'abord, notez que si le secteur est vraiment mauvais, le désélectionner ne le rendra pas lisible. Votre logiciel de clonage risque donc de s'étouffer en le lisant à la place.

Dans NTFS, un cluster est marqué comme mauvais en l'attribuant à un flux spécial$BadClus:$Bad , un fichier clairsemé.

Ce dont vous avez besoin est de

  • modifier sa liste de diffusion pour supprimer le ou les blocs alloués correspondants
  • marquez les grappes correspondantes comme libres dans $Bitmap.

  • Pour désélectionner tous les blocs défectueux, il y a ntfsfix -b -d( -b= effacer la liste des blocs défectueux, -d= effacer / ne pas définir l'indicateur "sale") ( une autre méthode avecntfstruncate fait exactement la même chose 2 ).

    • Cela pourrait introduire des incohérences mineures dans les métadonnées (dans mon cas, quelques indices sont apparemment non triés), je ne sais pas pourquoi, alors exécutez-le chkdsk -fà la main ou omettez -dde le déclencher au démarrage de Windows si / dans le cas où vous obtenez des erreurs FS.
  • Effacer un bloc spécifique est beaucoup plus difficile car je n'ai trouvé aucun logiciel existant qui puisse le faire hors de la boîte 3 . Résolution des secteurs défectueux NTFS: le métafichier $ BadClus - le code de Katy décrit la manière - en gros, il édite la liste de diffusion et le bitmap à la main.


1 Uniquement parce que la gestion des secteurs défectueux + NTFS + clonage est un sujet trop large. Je répondrai avec plaisir à ceux qui sont directement liés à l'affaire en question.
2 vérifié le code source de ntfsfix v2015.3.14.
3 pour les insistantes, ceux - ci ne peuvent pas le faire: ntfscat(ne peut pas lire les secteurs illisibles), ntfscp(ne peut pas écrire offset), ntfstruncate, ntfsfallocate, dd(ne peut pas ouvrir $BadClus:$Badpour l' écriture)

ivan_pozdeev
la source
Cela devrait être sélectionné comme meilleure réponse.
Hashim
1

J'avais un disque dur qui a développé de mauvais clusters. Je l'ai remplacé par un bon disque connu. Le processus de restauration a restauré les données de cluster incorrectes ainsi que les autres données. C'était sur un ordinateur Windows 7 Enterprise.

Ma solution était d'exécuter "chkdsk d: / b" (comme cela a été suggéré précédemment). Le / b lui indique (pour NTFS uniquement) de réanalyser les clusters défectueux précédemment marqués. Au moins dans mon cas (et je soupçonne toutes les versions qui prennent en charge / b), cela efface la mauvaise liste de cluster immédiatement avant de commencer l'analyse de lecture. Une fois que vous voyez le message "Suppression des clusters X du fichier Bad Clusters", vous devriez pouvoir tuer le processus chkdsk (car il ne fait que lire les données).

Remarque: il existe un potentiel pour que chkdsk mette à jour le fichier de clusters défectueux au moment où vous tuez le processus s'il arrivait à trouver un secteur défectueux au début du lecteur. J'ai pris le risque et il a réussi à réinitialiser le fichier des clusters défectueux sans avoir à télécharger un tas d'autres programmes qui nécessitent un chkdsk complet par la suite. YMMV.

CasaDeRobison
la source
Cela a réellement fonctionné. Après l'étape 2, vous fermez simplement la cmdfenêtre. Ensuite, exécutez chkdsk d: /fce qui va dire CHKDSK discovered free space marked as allocated in the volume bitmap.et suivre Windows has made corrections to the file system..
Davor Josipovic
0

Tout d'abord, la meilleure façon de procéder consiste à cloner le lecteur. Ensuite, utilisez chkdsk /Bsur le nouveau disque de travail.

Maintenant, en ce qui concerne le marquage d'un vrai mauvais secteur, c'est délicat. Vous pouvez utiliser:

  • SpinRite , ou
  • mhdd (activer le remappage)

L'un ou l'autre produit doit remapper le secteur défectueux, puis CHKDSK / B doit le décocher.

Téléchargez l' ISO gparted ou partedmagic . Démarrez-le et réduisez la partition.

Cela va fonctionner parce que les fenêtres ne fonctionne pas si ce logiciel rétrécir la partition , peu importe quoi. Puis chkdsk /Bgérera le reste.

Si tout cela échoue, vous êtes maintenant dans une vilaine route de douleur. Vous devez obtenir un éditeur de secteur et modifier manuellement le système de fichiers. Malheureusement, cela dépasse la portée de mes connaissances pour NTFS. Pour FAT ou FAT32, c'est super simple.

cybernard
la source
En tant que SSD, il n'y a pas de secteurs de rechange à reconfigurer. C'est pourquoi le SMART du lecteur continue de noter un Pending Sector Countde zéro et un Reallocated Sector Countde zéro.
Ian Boyd
Katy Coe a un excellent blog qui commence à plonger dans les tripes de NTFS. Mais mes yeux se sont posés quand j'ai dû commencer à calculer les décalages, les numéros de cluster logique, les numéros de cluster virtuel et le fait que $ BadClus est un fichier de rechange qui est en fait la taille de tout le volume. je détruirais presque certainement mon (fonctionnement) lecteur.
Ian Boyd
2
En fait, un SSD a des tonnes de secteurs de rechange. En fait, un ssd de 120 Go a probablement jusqu'à 8 Go de secteurs de rechange. Je ne sais pas pourquoi votre lecteur ne l'a pas remappé automatiquement. Utilisez gparted et réduisez la partition.
cybernard
Il se pourrait très bien qu'il s'agisse d'un ancien disque Kingston de 64 Go, désormais abandonné et non pris en charge. Ou peut-être que c'est juste un bug dans le firmware du lecteur où ils ont oublié d'implémenter le remappage du secteur.
Ian Boyd
De plus, le clonage de lecteur échoue lorsqu'ils rencontrent le mauvais secteur (du moins DriveImageXML l'a fait).
Ian Boyd
0

Puisque vous essayez de mettre en miroir votre disque (et il semble que vous utilisez Windows 7), il existe une autre approche:

Utilisez l'outil intégré pour créer une sauvegarde à restaurer sur un bon disque. Accédez à Panneau de configuration, Système et sécurité, Sauvegarde. Là, créez une image système et également un disque de réparation système.

Après cela, vous pouvez remplacer l'ancien disque défectueux par un bon, puis restaurer le système à son état à l'aide du disque de réparation du système et de la sauvegarde effectuée.

João Paulo
la source
0

le paquet gddrescue (gddrescue - outil de récupération de données GNU) devrait faire le travail pour vous.

Prenez une distribution autonome basée sur Debian (CD ou clé USB) installez gddrescue avec "sudo apt-get install gddrescue" puis clonez le SSd en ouvrant une fenêtre de terminal et en émettant:

ddrescue -f / dev / sda / dev / sdb ./ddrescue.log

(où / dev / sda est la source et / dev / sdb est le SSD cible)

ddrescue essaiera de récupérer le bloc défectueux et s'il est incapable de le sauter.

Une fois terminé, chkdsk / f / b devrait terminer le travail.

visnotjl
la source
0

Il semble que votre objectif soit de réduire la taille de la partition et que Windows ne la réduise pas à cause du fichier $ BadClus, qui existe en raison de clusters incorrects.

J'ai une autre solution pour vous qui devrait réduire le lecteur sans avoir à traiter directement le fichier $ BadClus. Utilisez l'assistant de partition pour réduire la partition. L'assistant de partition est facile à utiliser, est gratuit pour une utilisation non commerciale, peut être exécuté à partir de Windows avec une interface graphique, ou à partir d'un CD ou d'un démarrage USB qui exécute un petit Linux puis vous donne la même interface graphique. Ce programme peut également récupérer des partitions effacées et convertir entre les tables de partition MBR et GPT.

J'ai rencontré des problèmes avec Windows ne réduisant pas une partition au-delà d'un certain point, alors j'essaierai l'assistant de partition sur la même partition, ce qui le fait sans problème. Je suppose que l'assistant de partition est prêt à ignorer le fichier $ BadClus. J'utilise ce programme depuis plus de 8 ans et j'ai finalement acheté la version Pro, car ils l'ont gagnée. J'ai trouvé ce programme en remplacement de PQMagic que j'ai acheté en 1996, qui était un fabuleux programme de partitionnement DOS pour les petits disques.

Erik
la source