Seagate Barracuda Datenrettung
Posted on Di 03 Juni 2025 in Computer & Electronics
Heute haben wir eine defekte Festplatte. Konkret handelt es sich um eine Seagate Barracuda ST31000528AS mit 1TB Speicher. Der Besitzer hatte sie in seinem PC laufen, als er einen brenzlichen Geruch verspürte und die Platte nicht mehr ging. Die Platte ist schon älter und nicht irre viel Wert, aber es könnte sein, dass sich noch Daten darauf befinden, die dem Eigentümer etwas bedeuten und so versuchen wir uns heute an einer Datenrettung.
Werfen wir mal einen Blick darauf:
Der Plastik-Konnektor sieht in der Tat ziemlich verschmort aus. Also Platine ausbauen und mal einen Blick von der anderen Seite werfen:
Wow! Da hat's ordentlich gebrannt. Und eines der kleinen Bauteile ist zu einer kleinen schwarzen Kugel verbrutzelt und auch die Nachbarn sind well-done.
Nun könnte man versuchen, einfach den Konnektor und die verschmorten Bauteile zu ersetzen, aber das birgt ein nicht unerhebliches Risiko, denn wenn wir was wichtiges übersehen ist es nicht auszuschließen, dass die Platte den Controller beschädigt.
Der sicherere Weg ist, die ganze Platine zu tauschen. Auf Ebay finden sich diverse Anbieter (in der Regel aus China) bei denen man gebrauchte Festplattenplatinen bekommen kann. Aber welche brauchen wir genau? Dazu sollten wir uns nicht allein auf die Modellnummer oder gar den Namen verlassen unter dem die Platte verkauft wurde, denn Hersteller vertreiben häufig verschiedene Versionen und manchmal sogar völlig andere Hardware unter dem gleichen Namen. Was wir brauchen ist die Teilenummer der Platine. Die finden wir auf selbiger:
Also suchen wir nach dem Board 100536501 Rev A
. Also auf
in die Bucht und eine Ersatzplatine suchen. Die kostet nicht die Welt. Die
Angebot liegen so zwischen $20 und $50. Diese hier habe ich dann genommen:
Wie man sieht wird das gleiche Board für verschiedene Plattenmodelle eingesetzt und unser konkretes ist nichtmal in der Liste des Verkäufers, aber das sollte eigentlich keine Rolle spielen solange wir das richtige Platinenmodell haben.
Platinentransplantation
Nun heißt es also Platine tauschen. Aber halt – nicht so eilig! Zwar haben wir die richtige Platine besorgt, aber sie würde mit großer Wahrscheinlichkeit nicht korrekt funktionieren, denn jede Platte hat einen Flash-Chip (oder auch mal mehrere), der Firmware und quasi persönliche Daten genau seiner Platte enthält. Z.B. Seriennummer, SMART data, die Map defekter Sektoren und welche nun ersatzweise verwendet werden und evtl. auch irgendwelche Kalibrierdaten. Diese Daten sind essentiell für eine korrekte Funktion.
Also suchen wir den mal:
OK – neben diversen kleinen SMD Widerständen und Kondensatoren haben wir da:
- TI SH6968B: Microcontroller
Dieser scheint direkt mit dem Schreib-Lesekopf verbunden zu sein - ST V60131 Microcontroller
Dieser scheint das SATA Interface zu bedienen - Samsung K4H561638J-LCCC: 256MB DDR SDRAM
- Fairchild 2P102A: Integrated P-Channel MOSFET and Schottky Diode
Motorsteuerung? - Winbond 25X40ALS15: 4Mbit/512KB SPI Flash
Das dürfte unser Firmware Chip zu sein
Diese Typenbezeichnungen sind der Ersatzplatine entnommen – auf der originalen sind teils leicht andere (bzw. von anderen Herstellern) verbaut, die aber kompatibel sein dürften.
Firmware-Transfer
Als nächstes müssen wir die Daten des original-Firmware-Chips auf die Ersatzplatine bringen. In der Regel macht man das einfach durch aus- und wieder einlöten. Alternativ könnte man die Daten auch auslesen und den Chip der neuen Platine damit programmieren. Beides hat seine Vor- und Nachteile: Auslöten erfordert eine Heißluftstation und etwas Übung. Auch ist in diesem speziellen Fall darauf zu achten, dass der Chip direkt neben dem SATA Konnektor liegt und der somit geschützt werden muss damit er nicht wieder schmilzt. Da klingt umprogrammieren besser, aber das wiederum setzt ein entsprechendes Programmiergerät voraus und in der Praxis kann es manchmal Schwierigkeiten geben Flash-Chips in-circuit auszulesen und zu programmieren, was dann auch wieder Auslöten nach sich ziehen würde.
Flash!
Als erstes habe ich mal meinen CH341A Programmer herausgekramt und mit einem Clip an den Flash-Chip angeschlossen. IMSprog starten, autodetect anklicken und:
Hm. Doof. Aber gut – dann eben auslöten.
Oder eben doch auf die heiße Art...
Zunächst löten wir mal den Chip von der verbruzelten Platine runter. Dazu verwenden wir die Heißluftstattion – 400°C, 70% Luftstrom:
Da die Platine eh entsorgt wird mache ich mir nicht die Mühe den bereits geschmolzenen Konnektor irgendwie zu schützen. Ein paar Sekunden draufhalten und der Chip kann mit der Pinzette abgehoben werden. Erfreulicherweise zeigte das Plastik des Konnektors keinerlei Tendenzen zu schmelzen, d.h. das Abschirmen können wir uns vermutlich auch bei der neuen Platine sparen.
Nun also auf die gleiche Weise den Chip von der Neuen Platine entfernen.
Dann erstmal sauber machen: Mit etwas Entlötlitze und dem Lötkolben alles Lötzinn von den Pads entfernen und mit Isopropylalkohol putzen. Dann die Pads mit etwas bleihaltigem Lot verzinnen und ein bisschen Flussmittel auf das Ganze und den Chip schonmal daneben legen:
Nun den alten Chip vorsichtig darauf positionieren, so dass die Ausrichtung stimmt und die Beinchen schon in etwa auf den Pads liegen. Heißluft an und einlöten. Zuletzt nochmal kurz mit dem Lötkolben nacharbeiten, alles mit Isoprop putzen, fertig.
Testen
Das ging problemlos von der Hand – aber geht die Platte nun auch? Also erstmal den IDE/SATA2USB-Adapter anschließen:
Strom drauf und an den Rechner anschließen. Die Platte läuft hörbar hoch – gut. Wird sie detektiert?
❯ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.4G 0 part
nvme0n1 259:0 0 1.8T 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
├─nvme0n1p2 259:2 0 488M 0 part /boot
└─nvme0n1p3 259:3 0 1.8T 0 part
└─nvme0n1p3_crypt 254:0 0 1.8T 0 crypt
├─wintermute--vg-root 254:1 0 1.8T 0 lvm /
└─wintermute--vg-swap_1 254:2 0 976M 0 lvm [SWAP]
nvme0n1
ist meine Laptop SSD und sda
ist die reparierte Platte – cool. Als
nächstes auf konkretere Lebenszeichen testen:
❯ sudo smartctl -a /dev/sda
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-6.1.0-37-amd64] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Seagate Barracuda 7200.12
Device Model: ST31000528AS
Serial Number: 9VP39LTJ
LU WWN Device Id: 5 000c50 01a20815b
Firmware Version: CC38
User Capacity: 1,000,203,804,160 bytes [1.00 TB]
Sector Size: 512 bytes logical/physical
Rotation Rate: 7200 rpm
Device is: In smartctl database 7.3/5319
ATA Version is: ATA8-ACS T13/1699-D revision 4
SATA Version is: SATA 2.6, 3.0 Gb/s
Local Time is: Tue Jun 3 20:23:53 2025 CEST
==> WARNING: A firmware update for this drive may be available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/213891en
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART Status command failed: Connection timed out
SMART overall-health self-assessment test result: PASSED
Warning: This result is based on an Attribute check.
General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 600) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 1) minutes.
Extended self-test routine
recommended polling time: ( 176) minutes.
Conveyance self-test routine
recommended polling time: ( 2) minutes.
SCT capabilities: (0x103f) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 112 099 006 Pre-fail Always - 46938546
3 Spin_Up_Time 0x0003 095 094 000 Pre-fail Always - 0
4 Start_Stop_Count 0x0032 098 098 020 Old_age Always - 2698
5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0
7 Seek_Error_Rate 0x000f 075 060 030 Pre-fail Always - 33428981
9 Power_On_Hours 0x0032 096 096 000 Old_age Always - 4186
10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 597
183 Runtime_Bad_Block 0x0032 100 100 000 Old_age Always - 0
184 End-to-End_Error 0x0032 100 100 099 Old_age Always - 0
187 Reported_Uncorrect 0x0032 100 100 000 Old_age Always - 0
188 Command_Timeout 0x0032 100 098 000 Old_age Always - 29
189 High_Fly_Writes 0x003a 098 098 000 Old_age Always - 2
190 Airflow_Temperature_Cel 0x0022 077 053 045 Old_age Always - 23 (Min/Max 23/23)
194 Temperature_Celsius 0x0022 023 047 000 Old_age Always - 23 (0 15 0 0 0)
195 Hardware_ECC_Recovered 0x001a 036 027 000 Old_age Always - 46938546
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0
199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0
240 Head_Flying_Hours 0x0000 100 253 000 Old_age Offline - 6303 (79 5 0)
241 Total_LBAs_Written 0x0000 100 253 000 Old_age Offline - 3319003999
242 Total_LBAs_Read 0x0000 100 253 000 Old_age Offline - 3300937566
SMART Error Log Version: 1
No Errors Logged
SMART Self-test log structure revision number 1
No self-tests have been logged. [To run self-tests, use: smartctl -t]
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
Das sieht hervorragend aus. Als nächstes mounten und einen Blick werfen:
❯ df -h
Filesystem Size Used Avail Use% Mounted on
[...]
/dev/sda1 932G 767G 165G 83% /media/phil/RESCUE
Top! Die Platte läuft wieder. Allerdings sollte man sie nicht einfach weiterverwenden, sondern umgehend alle Daten in Sicherheit bringen. Also
cp -ar /media/phil/RESCUE /media/phil/BACKUP/
Und laaange laufen lassen.
Fazit
Es ist uns wirklich gelungen die Patte wiederzubeleben und alle Daten zu retten. Solche Projekte machen Spaß!