blog.4o4.at - Technik-Blog

AS/400 - 9404: Kopieren und Sichern von Festplatten mit 520Byte Sektorgröße unter Linux

Erstellt: 22.08.2025 Letzte Bearbeitung: 27.08.2025

In einem vorhergehendem Artikel habe ich bereits versucht, eine Festplatte aus der AS/400 auszulesen. Aufgrund der abweichenden Sektorgröße (520Byte anstatt 512Byte, die zusätzlichen 8 Bytes pro Sektor wurden für Fehlerkorrektur und Verwaltungsinformationen genutzt) lässt sich ein derartig formatierter Datenträger unter Linux nicht als gewöhnliches Blockdevice ansprechen. Nachdem mir das Thema nun doch keine Ruhe gelassen hat, habe ich noch ein wenig Recherche betrieben - und siehe da, es gibt doch eine Möglichkeit. Mit dem Paket sg3-utils erhält man eine sehr umfangreiche Werkzeugsammlung für die direkte Kommunikation mit SCSI Raw-Devices. Ein alter Desktop-Rechner in Kombination mit einem ADAPTEC AHA-2940 SCSI-Controller hat erfolgreich ein Image der bestehenden Festplatten ziehen können.

Hier der Ablauf:

Prüfen, ob die Festplatte als /dev/sg1 erkannt wird (sg0 ist bereits die im Rechner verbaute SSD):

toaol@test-deb:~$ sudo dmesg | grep sg
[    1.293471] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 246)
[   26.146780] sd 1:0:0:0: Attached scsi generic sg0 type 0
[   26.146947] sd 0:0:0:0: Attached scsi generic sg1 type 0

Die Werkzeugsammlung installieren:

sudo apt-get -y install sg3-utils

Kommunikation mit der Festplatte prüfen:

toaol@test-deb:~$ sudo sg_inq /dev/sg1
standard INQUIRY:
  PQual=0  PDT=0  RMB=0  LU_CONG=0  hot_pluggable=0  version=0x00  [no conformance claimed]
  [AERC=0]  [TrmTsk=0]  NormACA=0  HiSUP=0  Resp_data_format=0
  SCCS=0  ACC=0  TPGS=0  3PC=0  Protect=0  [BQue=0]
  EncServ=0  MultiP=0  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=0  Sync=0  [Linked=0]  [TranDis=0]  CmdQue=0
  [SPI: Clocking=0x0  QAS=0  IUS=0]
    length=136 (0x88)   Peripheral device type: disk
 Vendor identification: IBM     
 Product identification: 0671S15         
 Product revision level: 200

toaol@test-deb:~$ sudo sg_readcap /dev/sg1
Read Capacity results:
   Last LBA=616391 (0x967c7), Number of logical blocks=616392
   Logical block length=520 bytes
Hence:
   Device size: 320523840 bytes, 305.7 MiB, 0.32 GB

sg_readcap liefert die Kapazitätsinformation, wie vermutet haben die Festplatten eine Speicherkapazität von 320MB

Image der kompletten Platte anlegen:

sudo sg_dd if=/dev/sg1 of=disk1.img bs=520 bpt=64

Eventuell müssen die bpt (Blocks per transfer) angepasst werden, hat aber bei mir so funktioniert.

Die Lesegeschwindigkeit halte ich für beeindruckend, eine komplette Festplatte lässt sich in unter 10 Minuten auslesen:

toaol@test-deb:~$ time sudo sg_dd if=/dev/sg1 of=AS400disk4.img bs=520 bpt=64
616392+0 records in
616392+0 records out

real	9m52.319s
user	0m0.009s
sys	0m0.030s

Weiter geht es mit den 3.5"-Platten, welche in einem anderen Einschub verbaut sind:

toaol@test-deb:~$ sudo sg_inq /dev/sg1
standard INQUIRY:
  PQual=0  PDT=0  RMB=0  LU_CONG=0  hot_pluggable=0  version=0x02  [SCSI-2]
  [AERC=0]  [TrmTsk=0]  NormACA=0  HiSUP=0  Resp_data_format=2
  SCCS=0  ACC=0  TPGS=0  3PC=0  Protect=0  [BQue=0]
  EncServ=0  MultiP=0  [MChngr=0]  [ACKREQQ=0]  Addr16=0
  [RelAdr=0]  WBus16=0  Sync=1  [Linked=1]  [TranDis=0]  CmdQue=1
  [SPI: Clocking=0x0  QAS=0  IUS=0]
    length=158 (0x9e)   Peripheral device type: disk
 Vendor identification: IBM     
 Product identification: 0663L12         
 Product revision level: s 62

toaol@test-deb:~$ sudo sg_readcap /dev/sg1
Read Capacity results:
   Last LBA=1931264 (0x1d7800), Number of logical blocks=1931265
   Logical block length=520 bytes
Hence:
   Device size: 1004257800 bytes, 957.7 MiB, 1.00 GB

Ok, die Platten haben sogar eine Speicherkapazität von 1 GB. Sind aber auch neuer (da steht was von Copyright 1992). Wie sich die 5,25"-Platten (Typ 0671) automatsch hochfahren lassen, habe ich im oben verlinkten vorherigen Artikel schon beschrieben. Für die kleineren Platten (Typ 0663) muss ein Jumper gesetzt werden. Die entsprechenden Information dazu habe ich auf stason.org gefunden.

image
toaol@test-deb:~$ time sudo sg_dd if=/dev/sg1 of=AS400disk1_u.img bs=520 bpt=64
1931265+0 records in
1931265+0 records out

real	7m29.467s
user	0m0.009s
sys	0m0.031s

Zugegeben, von der Lesegeschwindigkeit bin ich absolut begeistert, die 2. Festplatte konnte ihren Inhalt in 07 Minuten und 54 Sekunden über die Schnittstelle jagen.

Bei der nächsten Festplatte kam es dann zu einer recht plötzlichen Wendung. Platte angesteckt, Test-Rechners eingeschaltet und FATZACK! Aus der Festplatte kam mir Rauch entgegen. Kurzfristig habe ich mich somit dazu entschlossen, das Netzkabel des PCs rauszureißen. Was zur Hölle? Also Fenster öffnen, damit sich der Gestank wieder halbwegs neutralisiert und mit der Festplatte ab in die Werkstatt. Relativ schnell bin ich auch fündig geworden, ein Tantal-Elektrolytkondensator hat sich demonstrativ verabschiedet. Beim Reinigen der Festplatte habe ich mir schon gedacht, dass diese Kondensatoren eigentlich auch zu tauschen wären. Wenn sich Tantal-Kondensatoren verabschieden, dann mit einem glatten Schlurzkuss. Ok, also bevor die nächsten Festplatten ausgelesen werden, tausche ich die Kondensatoren. Und selbst danach lasse ich die zuerst am Labornetzteil mit Strombegrenzung hochfahren, und nicht gleich direkt im PC.

image image image image

Hier mal die aktuelle Bestellliste mit den benötigten Kondensatoren je Festplatte:

Kondensatoren Festplatte Typ 0671

Menge Bezeichnung Wert Hersteller-Nr. RS-Bestellnr.
3Tantal-Kondensator Kemet22µF 16VDCT491C226K016AT648-0531
5Tantal-Kondensator Kemet22µF 25VDCT491D226K025AT538-2638
1Tantal-Kondensator Kemet6,8µF 35VDCT491D685K035AT648-0468
2Tantal-Kondensator Kemet6,8µF 16VDCT491B685K016AT648-0569
1Elektrolytkondensator Nichicon100µF 16VDCUPW1J330MED715-2549
2Elektrolytkondensator Nichicon470µF 16VDCUBT1C471MPD8762-1660

Einen Bestückungsaufdruck gibt es auf der Platine nicht, deshalb auch keine Bauteilbezeichnungen. Klar könnte man die Tantal-Kondensatoren auch zusammenfassen auf 22µF/25V und 6,8µF/35V. Für mich soll eine Reparatur jedoch immer so nahe wie möglich am Original sein. Deshalb verwende ich auch bewusst gleiche Kapazitäten mit unterschiedlicher Spannungsfestigkeit.

Auf jeden Fall habe ich jetzt erfolgreich eine Kopie einiger Festplatten erstellt, und sehe der zukünftigen Inbetriebnahme doch etwas entspannter entgegen.

Der Vollständigkeit halber wurde auch die Spannungen (12VDC/5VDC) an den Abwärtswandlern der einzelnen Festplatteneinschübe überprüft, alle Spannungen waren im Bereich von +180mV/-0mV. Restwelligkeit meist max. 50mVpp. Lediglich der Einschub mit den 3,5"-Festplatten hat auf der 12V-Rail 110mVpp Ripple. Dass das besser geht, beweisen die anderen Abwärtswandler. Die Bestellung wird also um 2x 3300µF/16V Elkos erweitert. Leider hat RS keine mechanisch identen Elkos von Nichicon im Sortiment, somit greife ich dieses mal auf Produkte von Panasonic zurück. Die wissen ja schließlich auch, wie man Kondensatoren baut.

image

Kommentar schreiben

Noch keine Kommentare, sei der erste 😉