Wie führe ich eine Checkdisk aus?


84

Ich vermute, es könnte einen fehlerhaften Sektor auf einer Festplatte geben. Ich habe das ext3-Dateisystem verwendet.

Welches Tool entspricht am besten dem Fehlerprüfungs-Tool von Windows?


@PabloBianchi: Diese Frage hat genau den gleichen Umfang. Ich melde sie für einen Mod, um sie zusammenzuführen.
David Foerster

Antworten:


101

Festplatten

Um nach fehlerhaften Sektoren zu suchen, überprüfen Sie die SMART-Daten, die wahrscheinlich am besten durch Starten des Festplatten- Dienstprogramms ( Palimpsest ) zugänglich sind . Selbst wenn Sie dort keine fehlerhaften Blöcke sehen, starten Sie zur Sicherheit einen Selbsttest.

Das Programm ist im gnome-disk-utilityPaket enthalten. Laufgksudo gnome-disks

SMART von Palimpsest

Oder in Ubuntu 16.04 Version (3.18):

SMART from Disks

Badblocks

Sie können auch verwenden badblocks

sudo badblocks -sv /dev/sda

Um nur zu überprüfen oder zu überprüfen und zu beheben, schreiben Sie das Ergebnis in eine temporäre Datei:

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

überprüft die gesamte Festplatte und druckt alle fehlerhaften Blöcke aus, die auf / dev / sda gefunden wurden .

Aus dem badblocksHandbuch:

Wichtiger Hinweis: Wenn die Ausgabe von Badblocks an die Programme e2fsck oder mke2fs weitergeleitet wird, ist es wichtig, dass die Blockgröße korrekt angegeben wird, da die generierten Blocknummern stark von der vom Dateisystem verwendeten Blockgröße abhängen . Aus diesem Grund wird dringend empfohlen, dass Benutzer badblocks nicht direkt ausführen, sondern die Option -c der Programme e2fsck und mke2fs verwenden.

fsck

fsckselbst wird Ihnen nicht helfen, fehlerhafte Sektoren zu finden, noch schlimmer, wenn es viele fehlerhafte Sektoren gibt, können Ihre Daten noch mehr beschädigt werden. Verwenden Sie es nur, wenn die Festplatte fehlerfrei ist.


1
Tatsächlich rät badblocks Handbuch davon ab, es direkt zu verwenden, und leitet Benutzer mit der Option "-c" (Nur-Lese-Prüfung) oder "-cc" (Lese-Schreib-Prüfung) an e2fsck weiter.
Mrówa

2
Als Hinweis: Am 13.04 führen Sie Palimpsest aus, indem Sie einfach "disks" aus dem Ubuntu-Menü ausführen. Es wird jedoch keine Option zum Starten eines Selbsttests angezeigt (möglicherweise, weil ich nur ein Laufwerk habe und es das ist, das ausgeführt wird) Ubuntu ...)
Rogerdpack

2
@ Mrówa das Handbuch sagt nur zu tun, wenn "die Ausgabe von Badblocks an die Programme e2fsck oder mke2fs eingespeist werden"
Jon

1
Geben Sie die Information ein, dass Sie sudo fdisk -l
Kangarooo

2
das nennt sich jetzt gnome-disks
endolith

74

In dieser Antwort gehe ich davon aus, dass ein Speicherlaufwerk als Blockgerät im Pfad angezeigt wird /dev/sdc. Verwenden Sie zum Ermitteln des Pfads eines Speicherlaufwerks in unserem aktuellen Setup Folgendes:

  • Gnome-Datenträger Installieren Sie Gnome Disks (früher Gnome Disk Utility, auch bekannt als palimpsest), wenn eine GUI verfügbar ist, oder
  • Schauen Sie auf dem Terminal auf die Ausgabe von lsblkund ls -l /dev/disk/by-idund versuchen Sie, das richtige Gerät nach Größe, Partition, Hersteller und Modellname zu finden.

Grundprüfung

  • Erkennt nur vollständig nicht reagierende Medien
  • fast augenblicklich (es sei denn, das Medium ist heruntergeschleudert oder zerbrochen)
  • sicher
  • Funktioniert auf schreibgeschützten Medien (zB CD, DVD, BluRay)

Manchmal weigert sich ein Speichermedium einfach, überhaupt zu arbeiten. Es wird dem Kernel und dem Datenträgermanager weiterhin als Blockgerät angezeigt, aber sein erster Sektor, der die Partitionstabelle enthält, ist nicht lesbar. Dies kann leicht überprüft werden mit:

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

Wenn dieser Befehl zu einer Meldung über einen "Eingabe- / Ausgabefehler" führt, ist unser Laufwerk defekt oder kann nicht wie erwartet mit dem Linux-Kernel interagieren. In einem früheren Fall kann ein Datenrettungsspezialist mit einem entsprechend ausgestatteten Labor mit etwas Glück seinen Inhalt retten. Im letzteren Fall ist ein anderes Betriebssystem einen Versuch wert. (Ich bin auf USB-Laufwerke gestoßen, die unter Windows ohne spezielle Treiber funktionieren, aber nicht unter Linux oder OS X.)

SMART-Selbsttest

  • Einstellbare Gründlichkeit
  • sofort zu langsam oder langsamer (abhängig von der Gründlichkeit des Tests)
  • sicher
  • warnt vor einem möglichen Ausfall in naher Zukunft

Geräte, die dies unterstützen, können über SMART nach ihrem Zustand gefragt oder angewiesen werden, Integritätsselbsttests unterschiedlicher Gründlichkeit durchzuführen. Dies ist im Allgemeinen die beste Option, ist jedoch normalerweise nur auf (nicht alten) Festplatten und Solid-State-Laufwerken verfügbar. Die meisten austauschbaren Flash-Medien unterstützen dies nicht.

Weitere Ressourcen und Anleitungen:

Nur-Lese-Prüfung

  • Erkennt nur einige Flash-Media-Fehler
  • ziemlich zuverlässig für Festplatten
  • schleppend
  • sicher
  • Funktioniert auf schreibgeschützten Medien (zB CD, DVD, BluRay)

Um die Leseintegrität des gesamten Geräts zu testen, ohne darauf zu schreiben, können wir Folgendes verwenden badblocks(8):

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

Dieser Vorgang kann viel Zeit in Anspruch nehmen, insbesondere wenn das Speicherlaufwerk tatsächlich beschädigt ist. Wenn die Fehlerzahl über Null steigt, wissen wir, dass es einen fehlerhaften Block gibt. Wir können den Vorgang jederzeit sicher abbrechen (auch gewaltsam wie bei einem Stromausfall), wenn uns die genaue Menge (und möglicherweise die Position) der fehlerhaften Blöcke nicht interessiert. Mit der Option ist es möglich, bei Fehlern automatisch abzubrechen -e 1.

Hinweis für den fortgeschrittenen Gebrauch: Wenn wir die Ausgabe für wiederverwenden möchten e2fsck, müssen wir die Blockgröße ( -b) auf die des enthaltenen Dateisystems einstellen . Wir können auch die Menge der -cauf einmal getesteten Daten ( in Blöcken) optimieren , um den Durchsatz zu verbessern. 16 MiB sollten für die meisten Geräte in Ordnung sein.

Zerstörungsfreie Lese- / Schreibprüfung

  • sehr ausführlich
  • am langsamsten
  • ziemlich sicher (außer bei Stromausfall oder zeitweiliger Kernel-Panik)

Manchmal - insbesondere bei Flash-Medien - tritt ein Fehler nur beim Schreiben auf. (Dadurch werden (Flash-) Medien, die für eine größere Größe werben, nicht zuverlässig erkannt . Verwenden Sie stattdessen Fight Flash Fraud .)

  • Verwenden Sie dies NIEMALS auf einem Laufwerk mit gemounteten Dateisystemen ! badblocksweigert sich, diese zu bearbeiten, es sei denn, Sie erzwingen es.

  • Unterbrechen Sie diesen Vorgang nicht mit Gewalt ! Ctrl+ C(SIGINT / SIGTERM) und das Warten auf eine ordnungsgemäße vorzeitige Beendigung ist in Ordnung, killall -9 badblocks(SIGKILL) jedoch nicht. Bei erzwungener Beendigung badblockskann der ursprüngliche Inhalt des aktuell getesteten Blockbereichs nicht wiederhergestellt werden und wird mit Junk-Daten überschrieben und möglicherweise das Dateisystem beschädigt.

Fügen Sie die -nOption zum obigen badblocksBefehl hinzu, um zerstörungsfreie Lese- / Schreibprüfungen zu verwenden .

Zerstörerische Lese- / Schreibprüfung

  • sehr ausführlich
  • Langsamer
  • LÖSCHT ALLE DATEN AUF DEM LAUFWERK

Wie oben, jedoch ohne Wiederherstellung des vorherigen Laufwerkinhalts nach dem Schreibtest, daher etwas schneller. Da Daten ohnehin gelöscht werden, bleibt die gewaltsame Kündigung ohne (zusätzliche) negative Konsequenzen.

Fügen Sie die -wOption zum obigen badblocksBefehl hinzu, um zerstörerische Lese- / Schreibprüfungen zu verwenden .


43

fsck - Überprüft und repariert ein Linux-Dateisystem. Rufen Sie es mit auf

fsck /dev/sda1

Dabei ist / dev / sda1 das Laufwerk, das Sie überprüfen möchten. Siehe 'man fsck' für weitere Details.

Es gibt auch den Befehl 'badblocks', der ein Gerät auf fehlerhafte Blöcke überprüft.

Das Laufwerk muss bei Auswahl des Kontrollkästchens ausgehängt werden. Um die Root-Partition zu überprüfen, müssen Sie eine Datei 'forcefsck' im Root der Partition erstellen und neu starten. Das Gerät wird beim nächsten Start überprüft:

sudo touch /forcefsck
sudo reboot

Alternativ können Sie von einer Live-CD booten und die Überprüfung von dort aus ausführen.


Danke, der Computer läuft ohne Monitor. Gibt es eine Möglichkeit, nach dem Neustart auf die Ausgabe der Prüfung zuzugreifen?
Guillaume Coté

Ich habe die Datei erstellt und neu gestartet, aber es ging sehr schnell und das boot.log enthält nichts Neues.
Guillaume Coté

fsck mache einfach eine sehr schnelle Prüfung, ich habe Option -c ausprobiert, um nach dem fehlerhaften Block zu suchen.
Guillaume Coté

fsck -c hat gerade gesagt: / dev / sda9: Inode für fehlerhaften Block wird aktualisiert. Ich habe keine Informationen darüber, wie viele fehlerhafte Knoten und welchen Anteil des Dateisystems sie darstellen.
Guillaume Coté

sudo dumpe2fs -b /dev/sda9. Aber ich denke, es ist besser, wenn sich die Festplatte um fehlerhafte Sektoren kümmert, nicht um das Dateisystem (SMART, Badblocks usw., siehe meinen Beitrag).
anordnen

20

Badblocks

Sie können nach Badblocks suchen, auf denen der Befehl ausgeführt wird

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultfür einen zerstörungsfreien Lese-Schreib-Test. Dadurch wird eine Datei bad-blocks-resultmit den beschädigten Sektoren erstellt.
    • -n Verwende den zerstörungsfreien Lese-Schreib-Modus. Standardmäßig wird nur ein zerstörungsfreier Nur-Lese-Test durchgeführt.

    • -s Zeigt den Fortschritt des Scans an, indem der grobe prozentuale Abschluss der aktuellen Badblocks über die Festplatte geschrieben wird.

    • -v Ausführlicher Modus.

  2. Anschließend können Sie sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]dem Dateisystem mitteilen, wo sich die fehlerhaften Sektoren befinden, und, falls möglich, Daten von ihnen entfernen.

Weitere Informationen dazu finden Sie hier .


1
Um weiterhin mit badblocks später oder wenn Sie den schlechten Sektor in eine Textdatei zu exportieren vergessen (wie ich) diese Antwort helfen Ihnen: superuser.com/a/693000/218025
chelder

kann ich meine Windows-Partition mit Badblocks überprüfen? Oder kann es ihn irgendwie beschädigen?
Private

1
@Private Wenn Sie eine neue Frage haben, klicken Sie oben auf den Link "Frage stellen".
John

Der fsckBefehl schlägt bei btrfsDateisystemen fehl .
Luís de Sousa

20

smartctl

IMO Smartctl ist ein besseres Werkzeug. Sie müssen es wahrscheinlich zuerst installieren

sudo apt-get install smartmontools 

Dann

sudo smartctl -a /dev/sda | less

zum Drucken von Laufwerkzustandsdaten, Attributen und verfügbaren Testergebnissen. Um weniger zu beenden, geben Sie ein q. Alternative

sudo smartctl -H /dev/sda

um nur Gesundheitsdaten auszudrucken.

So starten Sie einen neuen kurzen (einige Minuten) oder langen (bis zu vielen Stunden) Selbsttest im Hintergrund:

sudo smartctl -t [short|long]

GSsmartControl ( Homepage ) und Gnome Disks sind grafische Frontends, wenn Sie dies vorziehen.

Siehe auch


5
Gute Lösung, wenn das Gerät SMART unterstützt. Viele (billige) austauschbare Flash-Laufwerke und sehr alte Festplatten tun dies nicht.
David Foerster

Ich war anfangs ratlos, als smartctlgemeldet wurde: "Unbekannte USB-Brücke", "Bitte geben Sie den Gerätetyp mit der Option -d an". Die benötigten Daten habe ich unter smartmontools.org/wiki/Supported_USB-Devices gefunden .
Nobar

10

F3 (Fight Flash Fraud) ist eine weitere Option, die zusätzlich gefälschte Flash-Laufwerke erkennen sollte (Flash-Laufwerke, deren tatsächliche Kapazität einen Bruchteil der beworbenen Kapazität ausmacht):

  1. Installieren Sie F3

    sudo apt install f3
    
  2. Legen Sie Ihr Laufwerk ein

  3. Schreiben Sie Testdaten in den freien Speicherplatz auf dem Laufwerk (überprüfen Sie, wo Ihr Laufwerk gemountet ist lsblk).

    f3write /media/$USER/D871-DD7C/
    
  4. Lesen Sie die Testdaten

    f3read /media/$USER/D871-DD7C/
    

Referenz:

Badblocks funktionieren gut, sind jedoch nicht für die Erkennung gefälschter Flash-Laufwerke ausgelegt und melden möglicherweise keine Fehler für diese .


badblocksmit -woder mit der fsckMarkierung von Sektoren als schlecht / beschädigt, sodass sie nicht verwendet werden. f3 kann so etwas zurückgeben Corrupted: 16.01 MB (32784 sectors), markiert diese aber als fehlerhafte Sektoren? Oder brauchen wir dafür noch Badblocks? Ich versuche es mitdumpe2fs -b und es sieht so aus, als würde ich nichts markieren.
Pablo A

4

Sie können die gesamte Festplatte testen und dabei einen Fortschrittsindikator anzeigen:

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

Bestimmte Festplattenprobleme treten als gemeldete E / A-Fehler auf. Dies ist ein bisschen netter als ddaufgrund der Fortschrittsanzeige und weil die Befehlszeilenschnittstelle ein bisschen standardmäßiger und etwas weniger anfällig für Tippfehler ist . Beachten Sie, dass dies pvim Grunde genommen eine erweiterte Version von ist cat. Es ist möglicherweise nicht standardmäßig installiert, kann aber mit installiert werden sudo apt-get install pv.

Ein ähnlicher Ansatz besteht darin, den Datenträger mit einem der verschiedenen verfügbaren Tools zu lesen, die speziell auf Datenträger-E / A-Fehler aufmerksam sind - und die Funktion haben, "Daten schwer zu retten". Suchen Sie ddrescueim Paketmanager nach.


Dadurch werden keine Probleme erkannt, die nur während des Schreibzugriffs auftreten, und es wird nicht der betroffene Bereich des Speichermediums gemeldet, der behoben oder umgangen werden muss. dd count=1ist auch ziemlich schnell, es sei denn, das Speichermedium ist völlig kaputt (oder wird nicht unterstützt).
David Foerster

Siehe auch:ddrescueview
Nobar

Seit GNU Coreutils 8.24+ ddgibt es eine Fortschrittsanzeige mit status=progress.
Pablo A

1

Wenn Sie eine Partition haben, die Sie NICHT VERLIEREN KÖNNEN, befolgen Sie diese Schritte

  1. Bestimmen Sie mit der Taste, welche Partition Sie auf fehlerhaften Sektor überprüfen möchten

$fdisk -l commnd

Nehmen wir an, dass die zu überprüfende Partition / dev / sdPTC (zu überprüfende Partition) heißt und dass Sie eine andere Partition zum Speichern der in / scan / resultPath / gemounteten Ergebnisse haben

2.Dann können Sie diesen Befehl ausführen

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

Dadurch werden die fehlerhaften Blöcke des angegebenen Geräts ermittelt und in einer Datei namens badsectors.txt gespeichert

  1. Jetzt können Sie den fsckBefehl verwenden, um Ubuntu anzuweisen, die in der Datei badsectors.txt genannten fehlerhaften Sektoren nicht zu verwenden.

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

Auf diese Weise wird die Lebensdauer der Festplatte ein wenig verlängert, bis Sie eine neue für den Austausch erhalten.


Wenn Sie über eine vollständige Partition verfügen, die Sie auf fehlerhafte physische Sektoren überprüfen möchten, und auf dieser Partition ALLE DATEN VERLIEREN KÖNNEN oder LEER sind, befolgen Sie diese Schritte

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

  2. $sudo gnome-disks

  3. Überprüfen und überprüfen Sie, ob auf dieser Partition keine wichtigen Daten vorhanden sind

  4. Mit gnome-disksDELETE / REMOVE die Partition von Hand mit dem "-" Zeichen entfernen

  5. Erstellen Sie mit gnome-disksCREATE eine neue Partition und wählen Sie die Option "slow", mit der der angegebene Speicherplatz auf Fehler überprüft wird

Bildbeschreibung hier eingeben


Ist es wichtig, welche Ubuntu-Version es ist? Behandelt bionic beaverDisk Checks anders?
Gabriel Fair

Ich habe diesen Prozess in dieser Version nicht ausprobiert.
Mauricio Gracia Gutierrez
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.