Festplattenkopiergerät

 Oktober 2005


-----
 

Ausgangssituation

Ich habe oft Festplatten zu kopieren. Das führt jedes Mal dazu, dass ich aus Kartons oder CD-Hüllen kleine Türmchen baue, um beide Platten an den IDE-Controller und irgendwelche freien Stromversorgungsstrippen anschließen zu können. Dann boote ich ein Knoppix von CD und kopiere mit dem Befehl dd if=/dev/hda of=/dev/hdb eine Platte auf die andere. Dazu muss meist noch ein Jumper auf der Zielplatte von Master auf Slave umgesteckt werden (sofern er nicht auf Cable-Select steht).  

  Irgendwie total unkomfortabel. Und wenn man mal bei Anderen ist, schauen die argwöhnisch, was ich da rumfrickel.  

  Das müsste sich alles austomatisieren lassen - und portabel sein!  

Meine Lösung

Jetzt bau ich mir eine (papierlose) Kopiermaschine - mit komfortabler 1-Knopf Bedienung!  

  Um portabel zu sein, muss alles in einen Koffer passen. Ich nehme mal diesen hier (für schlappe 8,80 Euro aus hochwertig Aluminium-beschichteter Presspappe):
 

[Bild(15.6k)]

Da rein muss ein PC. Damit der festen Boden unter den Füßen hat, hab ich aus einem Gehäuse mit Wasserschaden (Nein, nicht meine WaKü!) mit der Flex ein passendes Stück des Motherboard-Trägers rausgeschnitten und gegen den Rost hübsch grau grundiert.  

[Bild(10.0k)]

Aus dem Koffer wurde der Teppich passend rausoperiert,  

[Bild(11.5k)]

und dann mit ordentlich Silikon die Blechplatte implantiert. Ich hätte Chirurg werden können!  

[Bild(10.5k)]

Als Motherboard hab ich so ein süßes kleines Asrock mit einem AMD-Sempron 64 boxed (2600+) genommen. Das sollte an Rechenleistung hinlangen!  

[Bild(14.2k)]

Das Board hat für mich den Vorteil, dass die IDE-Anschlüsse nebeneinander liegen, denn ich will die Festplatten auch nebeneinander legen und beide als Master anschließen, um mir die Jumperumsteckung zu sparen. Die Handhabung mit den ollen IDE-Kabeln ist so auch viel einfacher.  

  Da ich beide IDE-Steckplätze für die HDDs benutzen will, muss von Diskette gebootet werden. Um nur einen dd-Befehl auszuführen (Linux Befehl zum kopieren), sollen 1.44MB ja wohl reichen.  

  Die Festplatten kommen auf einen stabilen Alu-Tisch, in den ich noch ein 4x20Zeichen Display eingebaut habe. Daneben stapeln sich Diskettenlaufwerk und Netzteil - Auch mit satt Silikon verkleistert.  

[Bild(14.4k)]

 

  Da es unter dem Alu-Tisch heiß her gehen könnte, schiebt ein kleiner Lüfter eine kühle Briese durch den Unterbau.  

[Bild(19.2k)]

Dem Display habe ich mit einem PIC eine serielle Schnittstelle verpasst. Damit benimmt sich das Teil nun ein wenig wie ein Terminal, wobei überlange Zeilen automatisch langsam hin- und hergescrollt werden. Das Teil ist einfach an COM1 des Motherboards angeschlossen.  

  Hier ein Blick unter die Haube:  

[Bild(27.5k)]

Links sieht man das Stützblech, welches die IDE-Kabel daran hindert, sich auf den Prozessorlüfter zu legen.
Rechts oben die Platine mit der Display-Ansteuerung.  

  Nach dem Aufklappen des Kofferdeckels sieht das nun so aus:  

[Bild(16.6k)]

Jetzt muss man nur die Stromversorgungskabel rausziehen und die 2 Festplatten anschließen - das Original nach links, die leere Platte nach rechts und den Netzschalter einschalten.  

[Bild(2.7k)]

Jetzt bootet ein Linux, kopiert selbstständig die Platten und versetzt sie anschließend automatisch in den Schlafzustand. Auf dem Display kann man dabei den Ablauf mitlesen. Wenn dort ****FERTIG**** steht, schaltet man wieder aus und klemmt die Platten wieder ab. Deckel zu - und fertig!  

  Eine 40GB Platte hat nun nach ca. 20 Minuten eine Zwillingsschwester!  

 
-----
 

Die Software

Mittels Linux-Bootdisk-Howto hab ich mir Ruck-Zuck eine Linux-Bootdiskette erstellt. Der Kernel (2.4) wurde dazu eigens mit nur dem allernötigsten neu compiliert und direkt mit dd auf Diskette geschoben. Alle wichtigen Ausgaben werden mit dem tee Befehl sowohl auf einem möglicherweise angeschlossenen Monitor, wie auch auf der seriellen Schnittstelle ausgegeben und auf dem Mini-Display angezeigt.
Die Root-Disk hab ich von Hand angelegt (so was wie /etc, /bin, /dev) und auch nur das Nötigste rein getan.  

  Der Script für den Kopierablauf steht in /etc/rc, welches direkt aus /etc/inittab aufgerufen wird. Sonst steht nix in der inittab. Einloggen kann man sich auf der Mühle also nicht - wozu auch?  

  Auf meinem Testrechner hat das alles prima funktioniert. In meinem Koffer kam dann die große Überraschung: Das Motherboard hat einen nVidia-Chipsatz, der vom Kernel nicht richtig unterstützt wird. Genauer gesagt funktionierte die DMA-Unterstützung nicht. Das bedeutet, dass die Festplattenkopie für eine 40GB Platte etwa 6 Stunden dauerte. Ich könnte fluchen!  

  Also hab ich nächtelang Kernel mit den verschiedensten Optionen compiliert und - erfolglos - getestet.
Fast hätte ich aufgegeben, denn auch die Knoppix-DVD 4.0 lieferte bei hdparm -d /dev/hda irgendeine DMA-GEHT-NICH Meldung.
Zufällig kam mir dann aber eine Knoppix 4.02 in die Hände, welche problemlos lief.  

  Hoffnung!  

  Also den Kernel 2.6.12 gesaugt, kompiliert - Mist Kernel zu groß. Nochmal alle Optionen durchforstet, wo man noch was abspecken kann und nochmal probiert. Statt zu booten meldete der Rechner: Direktes Starten wird vom Kernel nicht mehr unterstützt. Benutzen Sie einen Bootmanager.
Schönen Dank auch!
Also Lilo gesaugt (Das kenn' ich halt; in Grub müsste ich mich einarbeiten). Alles zurechtkonfiguriert und festgestellt, dass /boot/boot.b auf meinem Rechner fehlt. Klar, ist ja von Hause aus Grub drauf. Also LiLo neu installiert - ohne Erfolg, boot.b fehlte immer noch.
Im Internet gesucht - nix is. Der Kram ist tief in irgendwelchen alten Paketen vergraben.
Zum Glück steht in der Firma ein alter PC mit SuSE 7.3 drauf - man soll halt nix wegschmeißen! Von dem hab ich mir ein Diskettchen mit dem Bootloader gezogen.  

  Und siehe da: Es läuft!  

  Auf der Diskette sind jetzt noch etwa 6KB von 1440KB frei - Puh, dass war knapp!  

  Jetzt musste ich nur noch die Ausgaben des eigentlichen Kopiervorgangs besser an das Display anpassen.
Um ein Vorstellung für die Kopierdauer zu bekommen, werden erstmal 100MB kopiert und dann die Datenrate ausgegeben. Anschließend wird die momentane Uhrzeit angezeigt und dann die ganze Platte kopiert. Am Ende werden beide Platten automatisch abgeschaltet.
-----
 

Kommentieren
     
Startseite

Best view: use a W3C compatible HTML-browser.

Curious view: use an Editor!

Valid HTML 4.01! CSS ist valide!