10 votes

Comment identifier et réparer les fichiers dont les blocs de disque sont corrompus ou inaccessibles ?

J'ai un Macbook Pro de fin 2011, fonctionnant sous Mavericks 10.9.2. Son seul disque dur est un disque de 750 Go, formaté avec Bootcamp. Il fonctionne encore raisonnablement bien, mais en exécutant une passe de défragmentation sur lui, j'ai identifié qu'il y a un tas de fichiers qui refusent d'être déplacés par le défragmenteur (iDefrag).

iDefrag rapporte un code d'erreur POSIX de 5 lors de l'accès aux fichiers. En choisir un au hasard et essayer de copier le fichier à un autre emplacement dans le shell signale également une erreur, ce qui me fait penser que le problème est réel et qu'il se situe au niveau du disque / FS. La sortie de cp est :

cp: unity_nophysx.nexe: Input/output error

Le code d'erreur 5 est "accès refusé" pour autant que je sache, mais le processus de défragmentation est exécuté en tant qu'administrateur et l'exécution de cp en utilisant sudo sur le fichier suspect ne fait aucune différence.

Disk Utility, fsck et Apple Hardware Test affirment tous que le disque est en bon état. Aucune erreur SMART n'a été signalée, et bien qu'il y ait eu quelques erreurs de permissions, elles ne concernaient pas les fichiers dont iDefrag se plaint, et Disk Utility affirme les avoir corrigées sans se plaindre.

Il y a peut-être une centaine de fichiers corrompus ou plus, mais cela ne représente qu'une très petite fraction du disque. Pour autant que je puisse dire, aucun fichier système ou données cruciales ne sont affectés. Bien qu'il serait agréable de récupérer les données, cela ne me dérange pas de réinstaller ou d'utiliser des sauvegardes. À ce stade, je ne sais pas si c'est vraiment le disque qui meurt, si ce ne sont que des secteurs défectueux dus au fait que le disque a été déplacé pendant l'écriture, ou si c'est une autre corruption mineure qui peut être contournée. Je suppose que c'est le pire des cas, et qu'il est fort probable que je doive acheter un disque dur légèrement plus grand et cloner le disque existant pour éviter de devoir reconstruire le système.

Ma question est vraiment comment faire pour marquer ces fichiers cassés comme étant correctement cassés et les réparer ou les purger ? afin qu'un clone du disque réussisse et ne soit pas bloqué par des fichiers ou des blocs auxquels il ne peut pas accéder. L'utilitaire de disque ne voit pas le problème, et je ne connais pas de ligne de commande ou d'outil tiers qui puisse faire le travail. Je ne veux pas effacer le disque entier et repartir de zéro, car le disque semble sain par ailleurs, je cherche donc des outils de réparation / diagnostic.

0voto

chillin Points 2767

Aussi déraisonnable que cela puisse paraître, avant de faire quoi que ce soit, vous devriez dupliquer toutes vos données sur un disque connu comme étant bon. Si le démarrage à partir du programme d'installation et la copie des données échouent, il existe un utilitaire de ligne de commande appelé 'dd' qui peut effectuer une duplication de bas niveau et d'une manière bien plus intransigeante.

 man dd

pour plus d'informations sur dd, y compris l'utilisation et la syntaxe correcte.


Un autre vote pour le post de Matt, démarrez en mode mono-utilisateur, et exécutez

 fsck -fy 

encore et encore jusqu'à ce que fsck arrête de rapporter des erreurs.


DiskWarrior est une application simple à utiliser mais très puissante qui signale les défaillances du disque dur, vérifie les erreurs dans les fichiers individuels et les répare si possible, et reconstruit et optimise les structures de répertoire.


Une autre solution possible, qui peut sembler déraisonnable mais qui constitue souvent une dernière tentative de récupération des données avec de nombreuses preuves de réussite, consiste à retirer le disque, à le protéger de l'humidité à l'aide de deux couches de sacs de congélation et à le placer dans votre congélateur pendant 30 à 45 minutes. Puis, pendant que le disque est froid, montez-le dans une station d'accueil USB externe et utilisez un autre système temporaire pour tenter à nouveau de copier les données corrompues sur un autre disque. Cette méthode est généralement utilisée en cas de problème matériel et de défaillance du disque. Si vous pouvez dupliquer le disque entier avec vos données intactes, c'est l'idéal, car souvent une répartition et un reformatage donneront au disque une nouvelle vie.

0voto

bleater Points 265

Pour un fichier unique qui ne peut pas être lu dans son intégralité en raison d'une erreur de lecture du disque, vous pouvez utiliser la commande dd pour dupliquer le fichier sur un volume externe, en remplaçant les blocs qui ne peuvent pas être lus par des octets NUL. Il est fortement recommandé de dupliquer sur un volume différent (par exemple, "Disque USB" dans l'exemple ci-dessous).

Exemple :

dd if=/path/to/damaged/file of=/Volumes/USB\ Disk/file bs=512 conv=noerror,sync

En utilisant des blocs de 512 octets, le nombre maximum de blocs lisibles sera récupéré.

La récupération peut prendre beaucoup de temps, car le noyau bloque pendant un certain temps à chaque échec de lecture.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X