Reparieren einer defekten Partitionstabelle

Aus Linupedia
Wechseln zu: Navigation, Suche

Einleitung

Im Falle einer beschädigten Partitionstabelle muss nicht gleich der schlimmste Fall des Datenverlustes eintreten. Es gibt für Linux einige Tools, die beim Wiederherstellen der Partionstabelle behilflich sein können und im Folgenden vorgestellt werden.


TESTDISK

Testdisk ist ein Datenrettungstool, mit dem gelöschte bzw. verlorengegangene Partitionen wiederhergestellt werden können. Im Punkt "Analyse" scannt Testdisk die Platte auf verlorengegangene Partitionen und kann die Partitionstabelle neu schreiben.

Testdisk ist auf jeder Knoppix-CD dabei.

TestDisk-Homepage

GPART

Ebenfalls in Knoppix und vielen weiteren Distributionen enthalten ist das schlanke Tool "gpart", mit dem es möglich ist, im Falle des Verlustes der primären Partitionstabelle einer Festplatte diese zu erraten und wiederherzustellen. Von gpart unterstützte Dateisysteme bzw. Partitionstypen:

  • DOS/Windows FAT (FAT 12/16/32)
  • Linux ext2
  • Linux Swap Partitionen Versionen 0 und 1 (Linux >= v2.2.X)
  • OS/2 HPFS
  • Windows NTFS
  • BSD Disklabels
  • Solaris/x86 Disklabels
  • Minix FS
  • Reiser FS
  • Linux LVM Physical Volume (LVM von Heinz Mauelshagen)
  • SGI XFS unter Linux
  • BeOS Dateisystem
  • QNX 4.x Dateisystem

Vorraussetzung für den Einsatz von GPART ist natürlich, dass die Festplatten beim Systemstart korrekt erkannt wurden. Um sich zu vergewissern, ob das auch wirklich geschehen ist, reicht es mit Hilfe des Befehls

dmesg

zu überprüfen, ob die Festplatten in etwa so beim Systemstart erkannt wurden:

hda: 390721968 sectors (200049 MB) w/8192KiB Cache, CHS=24321/255/63, UDMA(133)

Nun kann man Gpart auf dem gewünschten Laufwerk ausführen und nach Partitionen scannen (gpart /dev/<Festplatte>). Beispiel:

gpart /dev/hda

Ein Ergebnis des Scans könnte in etwa so aussehen:

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

Bei einem erfolgreichen Scan, gibt Gpart unter "Checking partitions..." ein "OK" aus. Vor dem Schreiben der Partitionstabelle sollten vorsichtshalber dennoch alle Ergebnisse noch einmal überprüft werden. Sind die Werte korrekt, kann die Partitionstabelle mit dem Befehl

gpart -W /dev/hdx /dev/hdx

geschrieben werden (wobei das "x" für den laufenden Buchstaben des Devices steht).

Weblinks