Falls ein Rechner wiederhergestellt werden soll, bei dem die primäre
Partitionstabelle der Bootplatte zerstört oder inkonsistent ist, bestehen
zwei Möglichkeiten zur Rettung:
-
der einfachste Weg ist, einen funktionierenden Rechner zu finden, und die
Platte dort einzubauen. Falls dieser Rechner die Plattengeometrie nicht
korrekt erkennt, sollte vorher noch die Geometrie der Platte aufgeschrieben,
und gpart via "-C c,h,s" mitgeteilt werden.
-
das gpart Binary runterladen, in "gpart" umbenennen, auf eine Diskette
speichern, die Manual-Page oben ausdrucken, und den infragekommenden Rechner
mit einer Rettungsdiskette starten.
Nach dem Booten sollte geschaut werden, ob die Platte erkannt wurde. Dazu
eine Shell starten, und "dmesg" eintippern. Linux z.B. meldet
erkannte Platten während des Bootens so: "hdc: ST320430A, 19569MB
w/512kB Cache, CHS=39761/16/63". Dann die Diskette mit gpart einlegen,
mounten und in das Diskettenverzeichnis wechseln.
Jetzt "gpart /dev/<Festplatte>", also z.B. "gpart /dev/hdc".
starten. Ohne irgendwelche zusätzlichen Optionen führt gpart
einen Standardscan durch, versucht also nur eine konsistente primäre
Partitionstabelle zu erraten (ohne diese im Erfolgsfall gleich zurückzuschreiben).
Eine typische, positive Ausgabe sieht so aus:
Begin scan...
Possible partition(DOS FAT), size(3999mb), offset(0mb)
Possible extended partition at offset(4000mb)
Possible partition(Windows NTFS), size(3999mb), offset(4000mb)
Possible partition(Linux ext2), size(3072mb), offset(8000mb)
Possible partition(Linux ext2), size(3072mb), offset(11072mb)
Possible partition(Linux ext2), size(3072mb), offset(14144mb)
Possible partition(Linux ext2), size(2353mb), offset(17216mb)
End scan.
Checking partitions...
Partition(DOS or Windows 95 with 32 bit FAT): primary
Partition(OS/2 HPFS, NTFS, QNX or Advanced UNIX): logical
Partition(Linux ext2 filesystem): logical
Partition(Linux ext2 filesystem): logical
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Ok.
Guessed primary partition table:
Primary partition(1)
type: 011(0x0B)(DOS or Windows 95 with 32 bit FAT)
size: 3999mb #s(8191953) s(63-8192015)
chs: (0/1/1)-(1023/15/63)d (0/1/1)-(8126/15/63)r
Primary partition(2)
type: 005(0x05)(Extended DOS)
size: 10144mb #s(20775888) s(8192016-28967903)
chs: (1023/15/63)-(1023/15/63)d (8127/0/1)-(28737/15/63)r
Primary partition(3)
type: 131(0x83)(Linux ext2 filesystem)
size: 3072mb #s(6291456) s(28967904-35259359)
chs: (1023/15/63)-(1023/15/63)d (28738/0/1)-(34979/8/24)r
Primary partition(4)
type: 131(0x83)(Linux ext2 filesystem)
size: 2353mb #s(4819248) s(35259840-40079087)
chs: (1023/15/63)-(1023/15/63)d (34980/0/1)-(39760/15/63)r
Hat gpart wie oben sein "Ok" zur erratenen Partitionstabelle gegeben,
sollte diese nochmal sehr sorgfältig überprüft werden. Danach
kann die Tabelle via "gpart -W /dev/hdc /dev/hdc" (statt /dev/hdc
das eigentliche Device angeben) auf die Platte zurückgeschrieben werden.
Nach dem Zurückschreiben den Rechner neu starten und überraschen
lassen.
Meldet gpart nach dem Scan Inkonsistenzen, ist noch nicht alles verloren.
Gpart bietet vielfältige Optionen zur Steuerung des Scanvorgangs,
z.B. "-n s" (Scannen auf Sektorgrenzen, nicht auf Kopfgrenzen),
oder "-f" (kompletter Scan, normalerweise überspringt gpart
den Bereich einer möglichen Partition auf der Platte, und setzt den
Scanvorgang danach fort). Die Manual-Page sollte einen guten Überblick
geben.
Falls gpart keine oder nur eine blödsinnige Partitionstabelle errät,
kann ich nur noch auf ähnliche Programme wie gpart verweisen: rescuept
von Andries Brouwer (ist im Paket "util-linux" enthalten), und fixdisktable
von Gordon Chaffee. Viel Glück. |