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 : chkdsk
a 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.
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
$BadClus
fichier clairsemé n'est pas déplacé - je ne peux pas bouger
$BadClus
alors 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.
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é.
Comment puis-je désélectionner un cluster comme mauvais dans NTFS?
CreateFile
pour 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.Réponses:
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
$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 ).chkdsk -f
à la main ou omettez-d
de 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:$Bad
pour l' écriture)la source
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.
la source
cmd
fenêtre. Ensuite, exécutezchkdsk d: /f
ce qui va direCHKDSK discovered free space marked as allocated in the volume bitmap.
et suivreWindows has made corrections to the file system.
.Tout d'abord, la meilleure façon de procéder consiste à cloner le lecteur. Ensuite, utilisez
chkdsk /B
sur le nouveau disque de travail.Maintenant, en ce qui concerne le marquage d'un vrai mauvais secteur, c'est délicat. Vous pouvez utiliser:
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 /B
gé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.
la source
Pending Sector Count
de zéro et unReallocated Sector Count
de zéro.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.
la source
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.
la source
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.
la source