14 Februar 2010

Das Unmögliche möglich machen

Ich bin ja mittlerweile bekannt dafür, dass ich gerne ungewöhnliche Dinge ausprobiere. Manche davon sind abgedreht, andere schlicht unmöglich. Manchmal jedoch stellen sich Dinge, die eigentlich unmöglich erscheinen als besser durchführbar heraus, als man denkt. So geschehen letzte Woche, als ich eine Festplatte ausgetauscht hatte.

Meine alte IDE-Platte (120G) hat irgendwie einen Ausfall angekündigt. Zumindest befand sich darauf ein ext3-System, welches sich zwar noch mounten und glücklicherweise auslesen ließ, aber ein fsck konnte man damit nicht mehr machen. Schlimmer noch, es stellte die Übertragungsrate von UDMA5 über viele Zwischenschritte herunter auf PIO0 und gab dann ganz auf. Für mich ein ganz klares Zeichen den Inhalt der Festplatte zu sichern und durch eine andere zu ersetzen. Dummerweise befand sich auf dieser Festplatte die Hauptboot-Partition für Windows (nicht zu verwechseln mit Laufwerk C, aber dazu später mehr). Daneben war da noch eine Open-Suse installation und besagte ext3-Partition mit Daten einer Home-Partition einer älteren Linux-Installation. Quasi Daten, die ich noch nicht neu einsortiert hatte.

Meine zweite Festplatte (500G) enthielt zu diesem Zeitpunkt folgende Partitionen: 1GB swap für Linux, eine Partition für die Windows-Installation (~50G mit Windows 7), eine Partition "/home" für Linux und eine Partition für die eigenen Dateien unter Windows.

Jetzt musste ich überlegen, wie ich das mit der neuen Festplatte mache. Ich wollte mir erstmal eine bestellen. Die Wahl fiel zuerst auf eine 750 GB-Platte von Western Digital. Aber ich habe mich vorerst gegen die Neuanschaffung einer Festpatte entschieden, da ich soviel Speicherplatz derzeit nicht benötige (ich habe noch eine externe 500G-Platte). Daher habe ich mich nach sinnvollen Alternativen umgesehen und mich dafür entschieden, mir auf lange Sicht ein Solid State Drive (SSD) zuzulegen. Dummerweise muss ich dafür erstmal etwas sparen (80 GB für 200 Euro). Nun ja, eine Zwischenlösung muss trotzdem erstmal her, und ich habe in meinem Gerümpel noch eine 60 GB Platte gefunden (2.5" SATA aus der Playstation3). In Anbetracht der gewünschten 80G für den SSD eine gute Zwischenlösung.

Um mir bei der Einrichtung der SSD später Ärger zu ersparen, habe ich mich dazu entschieden, die Partitionen so zu verteilen, wie sie dann auch mit der SSD verteilt werden sollen. Um die maximale Leistung aus einer SSD herauszuholen, sollte man dafür sorgen, dass sie möglichst wenig schreiben muss, aber dafür viel lesen. Also, liegt die Verwendung als Boot-Platte nahe, auf der dann auch die Programme installiert werden. Die Persönlichen Daten müssen dann auf die 500G Festplatte (wo sie ja schon sind :-) ). Aber halt, da fehlt noch was. Die Windows-Partition muss ebenfalls auf die SSD .... also erstmal auf die 60G Platte. Aber zunächst gilt es die wichtigen Partitionen der 120G-Platte auf die 60G-Platte zu kopieren. Gestern machte man das mit dd, aber heute gibt es ein noch besseres Tool dafür: gparted (okay, das gabs gestern auch schon, aber da wusste ich noch nicht, dass man damit auch Partitionen kopieren kann). Also 500G-Platte abgeklemmt, 60G-Platte angeklemmt, System Rescue CD gebootet und gparted gestartet. Dann erstmal die Windows Boot-Partition kopiert, gefolgt von der Open-Suse-Partition (da ist auch der Grub drauf gewesen). Bevor ich mich an die eigentliche Windows-Partition gemacht habe, habe ich erstmal getestet ob das System auch von der 60G-Platte booten kann. Also Grub auf der neuen Platte installieren, ausschalten, 120G-Platte abklemmen, 500G-Platte anklemmen und booten.

Ergebnis: Windows hat gebootet, Open-Suse nicht. Bei Open-Suse lag es augenscheinlich daran, dass es in der /etc/fstab nicht mit /dev/sdX auf die Partitionen verwiesen hat, sondern über die Datenträgernamen gegangen ist (nichtmal über die IDs). Ich hab die entsprechenden Einträge geändert, aber es hat trotzdem nicht geklappt. Vermutlich wurde das noch irgendwo anders referenziert, aber ich hatte irgendwie keine Lust nachzugucken, da ich das Open-Suse ohnehin durch ein Ubuntu ersetzen wollte.

Der nächste relevante Schritt war also die Windows-Partition zu kopieren und dann zum booten zu bringen. Ersteres war nicht schwer, letzteres dafür umso mehr. Manchen, denen ich davon erzählt habe, hielten es für unmöglich und meinten, ich müsste Windows neu installieren. Naja, ich habe mich auf jeden Fall nicht entmutigen lassen. Also wieder gparted gestartet. Dummerweise war die Partition zu groß um sie einfach zu kopieren, also musste ich sie erstmal verkleinern. Für gparted glücklicherweise ein Kinderspiel. Sicherheitshalber habe ich Windows nochmal gebootet und den NTFS-check gemacht, bevor ich mich ans Kopieren gewagt hatte.

Nachdem ich (diesmal mit dd) ein Backup-Image der Windows-Partition gezogen hatte, habe ich wieder gparted gestartet und die Partition erstmal kopiert. Ein Neustart hat natürlich erstmal die alte Partition auf der 500G-Platte gebootet. Ich habe erstmal herumgegoogelt, ob ich irgendwie das Boot-Verhalten von Windows auf eine andere Partition lenken kann. Dummerweise hat das einzige Tool, was dazu in der Lage gewesen wäre (bcdedit) mir den Dienst verwehrt. Also habe ich etwas ganz verrücktes ausprobiert.

Zunächst habe ich den Rechner herunter gefahren und die 500G-Platte vom System getrennt. Dann habe ich erstmal ganz normal gebootet um zu sehen, was passiert. Was dann geschah hat mich überrascht. Nein, es hat natürlich nicht gebootet, aber es kam die erste Microsoft-Fehlermeldung, die wirklich das Problem beschrieben hat und eine Sinnvolle Lösung vorschlug. Da stand nämlich sinngemäß drin, dass Windows nicht gestartet werden kann, da auf einen Datenträger nicht zugegriffen werden kann. Ich solle doch bitte mal die Setup-DVD starten und eine Computerreparatur versuchen. Gesagt getan, Die Boot-DVD herausgesucht, und das Windows7-Setup gestartet. Nach kurzer Suche bin ich fündig geworden. Ich habe die automatische Computerreparatur gestartet. Das Programm hat irgendeine Magic gemacht. Ich kann nur vermuten, was da passiert ist, aber es wird wohl erkannt haben, dass sich eine Windows-Installation auf der zweiten Partition der Festplatte befindet. Diese hat er dann irgendwie in die Boot-Konfiguration eingetragen und den alten Verweis gelöscht. Das Ergebnis war jedenfalls ein gebootetes Windows (was sich beim Starten beschwerte, dass keine Auslagerungsdatei gefunden wurde, die hatte ich auf die 500G-Platte verschoben).

Jetzt galt es nur noch die alte Partition von der 500G-Platte zu löschen und das System war fast so verteilt, wie es sein sollte. Ich habe jetzt sowohl Linux, als auch Windows auf der 60G-Platte drauf und kann jetzt seelenruhig darauf warten, mir ein SSD zu kaufen. Dann ne Image-Kopie (mit dd) und ich kann sie einfach verwenden ;-) )

Ich hätte niemals gedacht, dass es möglich ist mit Windows-Partitionen so zu jonglieren, und dann noch hauptsächlich mit Linux-Werkzeugen. Ich war auf jeden Fall sehr erstaunt, überrascht und natürlich erfreut. Jetzt kann das SSD kommen!