Comment faire un checkdisk?


84

Je soupçonne qu'il peut y avoir un secteur défectueux sur un disque. J'ai utilisé le système de fichiers ext3.

Quel outil est le meilleur équivalent de l'outil de vérification d'erreur de Windows?


@PabloBianchi: Cette question a exactement la même portée. Je leur demande un mod pour les fusionner.
David Foerster

Réponses:


101

Les disques

Pour rechercher les secteurs défectueux, vérifiez les données SMART, probablement les meilleures accessibles, en lançant l' utilitaire Disks ( Palimpsest ). Même si vous ne voyez pas de blocs défectueux, lancez un auto-test pour en être sûr.

Le programme est fourni dans le gnome-disk-utilitypackage. Courirgksudo gnome-disks

SMART de Palimpseste

Ou dans la version Ubuntu 16.04 (3.18):

SMART from Disks

Badblocks

Vous pouvez aussi utiliser badblocks

sudo badblocks -sv /dev/sda

pour simplement vérifier ou pour vérifier et corriger d’abord écrire le résultat dans un fichier temporaire:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

vérifiera tout le disque et imprimera tous les blocs défectueux rencontrés sur / dev / sda .

De badblocksmanuel:

Remarque importante: si la sortie des badblocks doit être alimentée par les programmes e2fsck ou mke2fs, il est important que la taille du bloc soit correctement spécifiée, car les numéros de bloc générés dépendent fortement de la taille de bloc utilisée par le système de fichiers. . Pour cette raison, il est vivement recommandé aux utilisateurs de ne pas exécuter les badblocks directement, mais d'utiliser l'option -c des programmes e2fsck et mke2fs.

fsck

fscklui-même ne vous aidera pas à trouver les secteurs défectueux, pire encore, s'il y a beaucoup de secteurs défectueux, cela peut endommager davantage vos données. Utilisez-le uniquement lorsque le disque est en bon état.


1
En réalité, le manuel de badblocks déconseille de l’utiliser directement et dirige les utilisateurs vers e2fsck avec l’option "-c" (vérification en lecture seule) ou "-cc" (vérification en lecture-écriture).
mardi

2
en note, le 13.04, vous exécutez palimpseste en exécutant simplement "des disques" dans le menu Ubuntu, cependant ... Je ne vois pas d’option permettant de lancer un autotest (peut-être parce que je n’ai qu’un seul lecteur, et c’est celui-ci qui tourne Ubuntu ...)
rogerdpack

2
@ mrówa le manuel ne dit que faire cela si "la sortie des badblocks doit être alimentée par les programmes e2fsck ou mke2fs"
Jon

1
Mettez info que pour lister tous les disques, utilisez sudo fdisk -l
Kangarooo le

2
cela s'appelle maintenant gnome-disques
endolithe

74

Tout au long de cette réponse, je supposerai qu'un lecteur de stockage apparaît comme un périphérique bloc sur le chemin /dev/sdc. Pour trouver le chemin d'un lecteur de stockage dans notre configuration actuelle, utilisez:

  • Gnome Disks Installer des disques Gnome (anciennement Utilitaire de disque Gnome, également appelé palimpsest), si une interface graphique est disponible, ou
  • sur le terminal, regardez la sortie de lsblket ls -l /dev/disk/by-idessayez de trouver le bon périphérique en fonction de la taille, du partitionnement, du fabricant et du nom du modèle.

Contrôle de base

  • détecte uniquement les supports qui ne répondent pas
  • presque instantanée (à moins que le support ne soit essoré ou cassé)
  • sûr
  • fonctionne sur un support en lecture seule (p. ex. CD, DVD, BluRay)

Parfois, un support de stockage refuse tout simplement de fonctionner. Il apparaît toujours comme un périphérique de bloc pour le noyau et dans le gestionnaire de disques, mais son premier secteur contenant la table de partition n'est pas lisible. Ceci peut être vérifié facilement avec:

sudo dd if=/dev/sdc of=/dev/null count=1

Si cette commande génère un message relatif à une «erreur d'entrée / sortie», notre lecteur est en panne ou ne parvient pas à interagir avec le noyau Linux comme prévu. Dans le cas précédent, avec un peu de chance, un spécialiste en récupération de données doté d'un laboratoire correctement équipé peut récupérer son contenu. Dans ce dernier cas, un système d'exploitation différent vaut la peine d'essayer. (J'ai rencontré des clés USB fonctionnant sous Windows sans pilotes spéciaux, mais pas sous Linux ou OS X).

Auto-test SMART

  • minutie réglable
  • instantanée à lente ou plus lente (dépend de la minutie de l'essai)
  • sûr
  • met en garde contre l'échec probable dans un proche avenir

Les appareils qui le prennent en charge peuvent être interrogés sur leur état de santé via SMART ou sur instruction d'effectuer des auto-tests d'intégrité de différentes minuties. C’est généralement la meilleure option, mais elle n’est généralement disponible que sur des disques durs (non anciens) et à semi-conducteurs. La plupart des supports flash amovibles ne le prennent pas en charge.

Autres ressources et instructions:

Vérification en lecture seule

  • détecte uniquement certaines erreurs de support flash
  • assez fiable pour les disques durs
  • lent
  • sûr
  • fonctionne sur un support en lecture seule (p. ex. CD, DVD, BluRay)

Pour tester l’intégrité de lecture de l’ensemble du périphérique sans y écrire, nous pouvons utiliser badblocks(8)comme suit :

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Cette opération peut prendre beaucoup de temps, surtout si le lecteur de stockage est réellement endommagé. Si le nombre d'erreurs dépasse 0, nous saurons qu'il existe un bloc incorrect. Nous pouvons interrompre l'opération en toute sécurité à tout moment (même avec force, comme lors d'une panne de courant), si le nombre exact (et peut-être même l'emplacement) des blocs défectueux ne nous intéresse pas. Il est possible d'abandonner automatiquement en cas d'erreur avec l'option -e 1.

Remarque pour l'utilisation avancée: si nous voulons réutiliser la sortie e2fsck, nous devons définir la taille de bloc ( -b) à celle du système de fichiers contenu. Nous pouvons également modifier la quantité de données ( -cen blocs) testées simultanément pour améliorer le débit; 16 Mo devrait convenir à la plupart des appareils.

Contrôle lecture-écriture non destructif

  • très complet
  • le plus lent
  • assez sûr (sauf coupure de courant ou panique intermittente du noyau)

Parfois, en particulier avec le support Flash, une erreur ne se produit que lorsque vous essayez d’écrire. (Cela ne permettra pas de détecter de manière fiable les supports (flash), qui annoncent une taille plus grande qu’ils ne l’ont réellement; utilisez plutôt Fight Flash Fraud .)

  • Ne l' utilisez JAMAIS sur un lecteur avec des systèmes de fichiers montés ! badblocksrefuse de fonctionner sur ceux de toute façon, sauf si vous le forcez.

  • N'interrompez pas cette opération avec force ! Ctrl+ C(SIGINT / SIGTERM) et l’attente d’une fin prématurée harmonieuse est acceptable, mais pas killall -9 badblocks(SIGKILL). En cas de résiliation forcée, badblocksne peut pas restaurer le contenu original de la plage de blocs actuellement testée et le laissera écrasé par des données indésirables, ce qui risquerait de corrompre le système de fichiers.

Pour utiliser des contrôles de lecture-écriture non destructifs, ajoutez l' -noption à la badblockscommande ci-dessus .

Contrôle destructif en lecture-écriture

  • très complet
  • Ralentissez
  • Efface toutes les données sur le lecteur

Comme ci-dessus, mais sans restaurer le contenu du lecteur précédent après le test d'écriture, le processus est donc un peu plus rapide. Comme les données sont effacées de toute façon, la résiliation forcée reste sans conséquence négative (supplémentaire).

Pour utiliser des contrôles destructifs en lecture-écriture, ajoutez l' -woption à la badblockscommande ci-dessus .


43

fsck - vérifie et répare un système de fichiers Linux. Invoquez-le en utilisant

fsck /dev/sda1

où / dev / sda1 est le lecteur à vérifier. Voir 'man fsck' pour plus de détails.

Il y a aussi la commande 'badblocks' qui vérifie un périphérique, vous l'aurez deviné, de mauvais blocs.

Le lecteur doit être démonté une fois coché. Pour vérifier la partition racine, vous devez créer un fichier 'forcefsck' dans la racine de la partition et redémarrer. Le périphérique sera vérifié lors du prochain démarrage:

sudo touch /forcefsck
sudo reboot

Vous pouvez également démarrer à partir d'un Live CD et lancer la vérification à partir de là.


Merci, la machine fonctionne sans moniteur, existe-t-il un moyen d'accéder à la sortie de la vérification après le redémarrage?
Guillaume Coté

J'ai créé le fichier et redémarré, mais c'était vraiment rapide et il n'y a rien de nouveau dans le fichier boot.log.
Guillaume Coté

fsck juste faire une vérification très rapide, j'ai essayé l'option -c pour vérifier le bloc défectueux.
Guillaume Coté

fsck -c vient de dire: / dev / sda9: mettre à jour l'inode de bloc défectueux. Je n'ai aucune information sur le nombre de nœuds défectueux et sur la proportion du système de fichiers qu'ils représentent.
Guillaume Coté

sudo dumpe2fs -b /dev/sda9. Mais je pense qu'il est préférable que le disque traite les secteurs défectueux, pas le système de fichiers (SMART, badblocks, etc., voir mon post).
organiser

20

badblocks

Vous pouvez vérifier si des badblocks exécutent la commande

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultpour un test de lecture-écriture non destructif. Cela va générer un fichier appelé bad-blocks-resultavec les secteurs endommagés.
    • -n Utilise le mode lecture-écriture non destructif. Par défaut, seul un test en lecture seule non destructif est effectué.

    • -s Affiche la progression de l'analyse en écrivant le pourcentage approximatif de complétion des badblocks actuels passés sur le disque.

    • -v Mode verbeux.

  2. Ensuite, vous pouvez exécuter sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]pour indiquer au système de fichiers où sont les secteurs défectueux et en éloigner les données, si possible.

Vous pouvez trouver plus de lecture à ce sujet ici .


1
Pour continuer avec les badblocks plus tard ou si vous avez oublié d'exporter le secteur défectueux dans un fichier texte (comme moi), cette réponse vous aidera: superuser.com/a/693000/218025
chelder le

puis-je utiliser des badblocks pour vérifier ma partition Windows? Ou va-t-il en quelque sorte l'endommager?
Soldat

1
@Private Si vous avez une nouvelle question, veuillez utiliser le lien "Poser une question" en haut.
Jean

La fsckcommande échoue avec btrfsles systèmes de fichiers.
Luís de Sousa le

20

smartctl

OMI smartctl est un meilleur outil. Vous devez probablement l'installer d'abord

sudo apt-get install smartmontools 

ensuite

sudo smartctl -a /dev/sda | less

d’imprimer les données de santé du lecteur, les attributs et les résultats de test disponibles. Pour quitter moins, tapez q. Alternativement

sudo smartctl -H /dev/sda

simplement imprimer des données de santé.

Pour commencer un nouveau test automatique en arrière-plan (quelques minutes) ou long (jusqu'à plusieurs heures):

sudo smartctl -t [short|long]

GSsmartControl ( page d'accueil ) et les disques Gnome sont des interfaces graphiques si vous préférez.

Voir également


5
Excellente solution si le périphérique prend en charge SMART. Beaucoup de lecteurs flash amovibles (bon marché) et de très vieux disques durs n'en ont pas.
David Foerster

Au départ, j’ai été surpris smartctl: "Pont USB inconnu", "Veuillez spécifier le type de périphérique avec l’option -d". J'ai trouvé les données dont j'avais besoin à l' adresse suivante : smartmontools.org/wiki/Supported_USB-Devices .
Nobar

10

F3 (Fight Flash Fraud) est une autre option qui devrait en outre détecter les faux lecteurs flash (lecteurs flash dont la capacité réelle représente une fraction de la capacité annoncée):

  1. Installer F3

    sudo apt install f3
    
  2. Insérez votre lecteur

  3. Écrivez les données de test dans l'espace libre sur le lecteur (vérifiez où votre lecteur est monté lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. Lire les données de test

    f3read /media/$USER/D871-DD7C/
    

Référence:

Les badblocks fonctionnent bien, mais ils ne sont pas conçus pour détecter les faux lecteurs flash et ne peuvent signaler aucune erreur .


badblocksavec -wou avec les fscksecteurs marqués comme mauvais / endommagés afin qu’ils ne soient pas utilisés. F3 peut retourner quelque chose comme Corrupted: 16.01 MB (32784 sectors), mais marque-t-il ces secteurs comme mauvais? Ou avons-nous encore besoin de badblocks pour ça? J'essaie avecdumpe2fs -b et il semble que ça ne marque pas.
Pablo Un

4

Vous pouvez tester-lire l’ensemble du disque tout en affichant un indicateur de progression:

time sudo pv /dev/sdc >/dev/null

Certains problèmes de disque se manifesteraient par des erreurs d'E / S signalées. C'est un peu plus agréable que ddl'indicateur de progression et que l'interface de ligne de commande est un peu plus standard et un peu moins typo . Notez que pvc'est la version de base et améliorée de cat. Il ne peut pas être installé par défaut, mais peut être installé avec sudo apt-get install pv.

Une approche similaire consiste à lire le disque avec l'un des nombreux outils disponibles qui prennent spécifiquement conscience des erreurs d'E / S sur le disque, et qui ont pour caractéristique "d'essayer de sauver les données avec acharnement". Rechercher ddrescuedans le gestionnaire de paquets.


Cela ne détectera pas les problèmes apparaissant uniquement lors de l'accès en écriture et ne signalera pas la région affectée du support de stockage qu'il faudrait corriger ou contourner le problème. dd count=1est également assez rapide, sauf si le support de stockage est complètement cassé (ou non pris en charge).
David Foerster

Voir aussi:ddrescueview
nobar

Depuis GNU Coreutils 8.24+ dda un indicateur de progression avec status=progress.
Pablo Un

1

Si vous avez une partition que vous ne pouvez pas perdre les données, suivez ces étapes

  1. Déterminez quelle partition vous voulez vérifier pour le secteur défectueux en utilisant le

$fdisk -l commnd

Supposons que la partition à vérifier s'appelle / dev / sdPTC (partition à vérifier) ​​et que vous avez une autre partition pour stocker les résultats montés sur le dossier / scan / resultPath /

2.Alors vous pouvez exécuter cette commande

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

qui déterminera quels sont les blocs défectueux du périphérique donné et les stockera dans un fichier appelé badsectors.txt

  1. Vous pouvez maintenant utiliser la fsckcommande pour dire à Ubuntu de ne pas utiliser les secteurs défectueux mentionnés dans le fichier badsectors.txt.

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

De cette façon, la durée de vie du disque dur est un peu augmentée jusqu'à ce que vous en remplaciez un nouveau.


Si vous souhaitez rechercher des secteurs physiques défectueux sur une partition complète et que vous POUVEZ PERDRE TOUTES LES DONNÉES sur cette partition ou est VIDE, procédez comme suit.

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. Vérifiez et vérifiez qu'il n'y a pas de données importantes sur cette partition

  4. Utilisation de gnome-disksDELETE / REMOVE de la partition à la main à l’aide du signe "-"

  5. Utiliser gnome-disksCREATE une nouvelle partition et sélectionner l’option "slow" qui va vérifier l’espace donné pour des erreurs

entrez la description de l'image ici


Est-ce que la version Ubuntu importe? Est-ce que bionic beavergérer les vérifications de disque différemment?
Gabriel Fair

Je n'ai pas essayé ce processus sur cette version.
Mauricio Gracia Gutierrez
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.