
Ich habe eine neue externe USB 3.0-Festplatte gekauftWD Elements 2 TBund beschloss, dies zu überprüfen,
indemdd,KopfUndmd5sumWerkzeuge.
Zuerst habe ich alle Festplatten gelöscht:
root@yurko-laptop:/home/yurko-laptop# dd if=/dev/zero of=/dev/sdb bs=16M
dd: запись «/dev/sdb»: На устройстве кончилось место
119232+0 записей считано
119231+0 записей написано
скопировано 2000365289472 байта (2,0 TB), 91532,5 c, 21,9 MB/c
Danach habe ich versucht, die MD5-Summe dafür zu berechnen.
Als ich jedochKopfBefehl habe ich eine Meldung über einen Lesefehler erhalten:
root@yurko-laptop:/home/yurko-laptop# head -c 2000365289472 /dev/sdb | md5sum
head: ошибка чтения «/dev/sdb»: Ошибка ввода/вывода
5132d3021b8570c6009877dfd132631f -
Ich habe dieses Verfahren zuvor für USB-Sticks durchgeführt und es hat ohne Fehler oder Warnungen funktioniert.
Darüber hinaus,md5sumDie Ergebnisse für /dev/sdb
und /dev/zero
waren unterschiedlich:
yurko-laptop@yurko-laptop:~$ head -c 2000365289472 /dev/zero | md5sum
2635e14edab6b044de7d63dd9a242273 -
Die Grundidee besteht darin, dass nach dem Nullen der Festplattemd5sumDie Ergebnisse müssen identisch sein.
Bedeutet das, dass die Festplatte defekt ist oder dass dieser Ansatz in diesem Fall nicht hilfreich ist?
Aktualisieren:
In meinem Fall fdisk -l /dev/sdb
beträgt die Sektorgröße 512 Bytes:
root@yurko-laptop:/home/yurko-laptop# fdisk -l /dev/sdb
Disk /dev/sdb: 2000.4 GB, 2000365289472 bytes
255 heads, 63 sectors/track, 243197 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
root@yurko-laptop:/home/yurko-laptop#
Also:
2000365289472 Bytes insgesamt / 512 Sektorgröße = 3906963456 Sektoren insgesamt,
(20 * 1024 * 1024) Bytes / 512 Sektorgröße = 40960 Sektoren,
3906963456 Sektoren insgesamt – 40960 Sektoren = 3906922496 zu überspringende Sektoren.
Ich habe die letzten 20 MB des Laufwerks auf Null gesetzt und die MD5-Summe erneut überprüft,
aber sie war dieselbe wie zuvor berechnet. Vielleicht gibt es eine
spezielle MethodeKopfBefehl lautet /dev/sdb
:
root@yurko-laptop:/home/yurko-laptop# dd if=/dev/zero of=/dev/sdb seek=3906922496
dd: запись в «/dev/sdb»: На устройстве кончилось место
40961+0 записей считано
40960+0 записей написано
скопировано 20971520 байт (21 MB), 4,05176 c, 5,2 MB/c
root@yurko-laptop:/home/yurko-laptop# head -c 2000365289472 /dev/sdb | md5sum
head: ошибка чтения «/dev/sdb»: Ошибка ввода/вывода
5132d3021b8570c6009877dfd132631f -
root@yurko-laptop:/home/yurko-laptop#
Bei USB-Sticks hat es wiederum funktioniert.
Als ich versuchte,smartctrhabe ich festgestellt, dass diese Festplatte die SMART-Technologie nicht unterstützt:
root@yurko-laptop:/# smartctl -a -d scsi /dev/sdb
smartctl 5.40 2010-07-12 r3124 [i686-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
Device: WD Elements 10B8 Version: 1007
Serial number: WX21AB3Y5219
Device type: disk
Local Time is: Sun Aug 17 14:42:49 2014 EEST
Device does not support SMART
Error Counter logging not supported
No self-tests have been logged
root@yurko-laptop:/#
Dennoch hat mir diese Untersuchung große Befriedigung verschafft.
Antwort1
Ein Problem besteht darin, dass Ihre Festplatte NICHT unbedingt in volle 16-MB-Blöcke passt und daher die letzten, sagen wir 15 MB der Festplatte aus zufälligen Daten vom Hersteller oder irgendeinem Windows-Formatierungsmüll bestehen, der einen anderen MD5-Wert generiert.
Von /dev/zero aus gibt es nichts mit MD5! Es ist virtuell. Überprüfen Sie zuerst die logische/physische Sektorgröße!
sudo fdisk -l /dev/sdb
Bei einem neuen Laufwerk sollte der Wert 4096 betragen. Das bedeutet, dass Sie Ihr Laufwerk vollständig mit 4096 Blöcken (Blockgröße) aus Nullen füllen können. Dann gilt:
dd if=/dev/zero of=/dev/sdb bs=4096 conv=notrunc,noerror & pid=$!
kill -USR1 $pidnumer
Sie können die Teile „conv=notrunc,noerror & pid=$!“ weglassen; kill -USR1 $pidnumer zeigt Ihnen, wie weit das Nullsetzen fortgeschritten ist. conv und noerror stellen lediglich sicher, dass jeder Block ausprobiert wird und im Fehlerfall (Fehler werden im Terminal angezeigt) das Nullsetzen fortgesetzt wird. mehr @
man dd
Sie können auch versuchen, die letzten 20 M des Laufwerks einfach auf Null zu setzen, indem Sie berechnen, wie viele Sektoren vorhanden sind und wie viele Sie überspringen müssen (prüfen Sie fdisk -l auf die Festplattengröße in Bytes). 2.000.000.000.000 Bytes/4096=488281250 Sektoren insgesamt. 20.000.768 Bytes /4096=4883Sektoren 488281250-4883=488276367 zu suchende Sektoren
dd if=/dev/zero of=/dev/sdb bs=4096 seek=488276367 conv=notrunc,noerror & pid=$!
dann überprüfen Sie den MD5 erneut. Wenn es Eingabe-/Ausgabefehler gäbe, würde DD diese sowieso anzeigen. Bessere HDD-Testtools sind Smartmontools
smartctl -a /dev/sdb Suchen Sie nach Reallocated_sectors, der Anzahl der neu zugewiesenen Sektoren, nicht korrigierbaren Offline-Sektoren und ausstehenden Sektoren. Und nach dem Fehlerprotokoll. Alle oben genannten Werte sind schlechte Nachrichten und führen zur Garantie der Festplatte. Sie können auch bonnie++ ausprobieren, um beispielsweise eine Partition auf der USB-Festplatte zu erstellen (egal welcher Typ), sie zu formatieren und sie beispielsweise unter /dev/sdb1 zu mounten.
bonnie++ -u root -d /mnt/sdb1 -n 10:100000000:100:4096 -x 3 -m 5gb
Und überprüfen Sie die Ergebnisse von Bonnie sowie /var/log/syslog und andere Protokolle auf Eingabe-/Ausgabefehler.