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ß!