Um hier was zu machen, hat man am besten eine Kopie des Bootsektors. Grundsaetzlich liegt jedem NT-Derivat (XP,2k,NT...2003) ein Unix zugrunde. Bei Linux/Unix ist eine Bootsektorkopie durchaus gängig. Superblockkopien gibt es z.B. auch.
--------------------------------SNIPP------------------------------------------------
Die Lösung:
Kam mit den NTFS-Tools für Linux. Der Suchbegriff "ntfstools"
führt nach Externer Link
www.sourceforge.net , wo man sich die RPMs
"linux-ntfs-1.6.0-*.i386.rpm" und "linux-ntfs-devel-1.6.0-.i386.rpm"
beschaffen kann. Ersteres enthält "mkntfs" und "ntfsfix".
"mkntfs" kennt leider keine Option, nur den Bootsektor zu schreiben,
also kann man damit (noch) keine Partitionen wiederherstellen.
Also NICHT aufrufen! Der Retter kommt mit den Header-Dateien aus
dem "devel"-RPM: "/usr/include/ntfs/bootsect.h" liefert genaue Informationen über den Aufbau eines NTFS-Bootsektors. Insbesondere
beginnt der Bootsektor mit drei Codebytes (Sprunganweisung)
und danach "NTFS" und vier Leerzeichen. Außerdem gibt es in der Regel einen Backup-Bootsektor irgendwo in der Mitte oder so gegen Ende der
Partition. Also mit
Code:
dd if=/dev/hdb1 | od -s | fgrep "NTFS "
die Partition auf das Vorkommen der Schlüsselsequenz durchsucht.
Eine richtige Bootsektorkopie enthält das "NTFS" also drei Bytes nach Blockanfang, d.h., die letzten drei Oktalziffern der ausgegebenen Adresse
müssen 000...003 sein. Die letzten drei Oktalziffern wegstreichen
(ergibt die Sektornummer als Oktalzahl), in dezimal umrechnen
und den betreffenden Sektor mittels
Code:
dd if=/dev/hdb1 bs=512 skip=SEKTORNR count=1 of=ntfsboot.sec
in eine Datei "ntfsboot.sec" speichern und mit
Code:
dd if=ntfsboot.sec of=/dev/hdb1
in den eigentlichen Bootsektor zurückschreiben.
Damit war der Bootsektor restauriert. Mounten klappte wieder!
Nach einem Backup der dortigen "Dokumente und Einstellungen"
vorsichtshalber noch ein
Code:
ntfsfix /dev/hdb1
abgesetzt, um beim nächsten Hochfahren von Win2000 ein chkdsk
zu erzwingen. (Achtung: "ntfsfix" erst nach dem Unmounten der
NTFS-Partition aufrufen). Das war's! Nach dem Rebooten in Win2000
wurde die Partition gecheckt, für gut befunden, und der Rechner sofort wieder rebootet (nicht ärgern, nur wundern). Danach lief alles wieder!
Dank an:
* Anton Altapamakov für die NTFS-Tools und "ntfs/bootsect.h"
* Christian Cornelssen für die Kommandozeilenarbeit unter Linux
--------------------------------SNIPP------------------------------------------------