PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Partitionstabelle zerschossen - Wie wieder herstellen?



tonterias
22.06.08, 16:39
Hallo!

Mein selbstverursachtes Problem ist die zerschossene Partitionstabelle meiner externen Festplatte. (Ursache war ein grandios fehlgeschlagener Versuch einen Bootloader in den MBR zu bekommen!) Das Problem ist, dass ich eine erweiterte Partition hatte. gpart erkennt zwar alle Partitionen, aber die erweiterte nicht!
Nur die erste Partition war eine primäre, alle übrigen lagen in der erweiterten.

Gibt es hier jemanden, der mir dabei helfen kann, meine Externe wieder flott zu machen?

Danke schon mal im Voraus!
Tonterias

ps: Das ich keine Sicherheitskopie habe, ist wohl klar (Asche auf mein Haupt!).

------------------------------------------------
# gpart /dev/sdb

** Error: invalid extended ptbl found at sector(70943040).

Begin scan...
Possible partition(Linux ext2), size(20480mb), offset(0mb)
Possible partition(Linux ext2), size(20480mb), offset(20481mb)
Possible partition(Linux ext2), size(20480mb), offset(40962mb)
Possible partition(Linux ext2), size(20480mb), offset(61443mb)
Possible partition(Linux ext2), size(20480mb), offset(81925mb)
Possible partition(Linux swap), size(5122mb), offset(102406mb)
Possible partition(Linux ext2), size(102406mb), offset(107528mb)
Possible partition(Linux ext2), size(40962mb), offset(209935mb)
Possible partition(Linux ext2), size(40962mb), offset(250897mb)
Possible partition(Linux ext2), size(40962mb), offset(291860mb)
Possible partition(Linux ext2), size(48728mb), offset(332823mb)
End scan.

Checking partitions...

* Warning: more than 4 primary partitions: 11.
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): primary
Partition(Linux ext2 filesystem): invalid primary
Partition(Linux swap or Solaris/x86): invalid primary
Partition(Linux ext2 filesystem): invalid primary
Partition(Linux ext2 filesystem): invalid primary
Partition(Linux ext2 filesystem): invalid primary
Partition(Linux ext2 filesystem): invalid primary
Partition(Linux ext2 filesystem): invalid primary
Ok.

Guessed primary partition table:
Primary partition(1)
type: 131(0x83)(Linux ext2 filesystem)
size: 20480mb #s(41943040) s(63-41943102)
chs: (0/1/1)-(1023/239/63)d (0/1/1)-(2774/3/34)r

Primary partition(2)
type: 131(0x83)(Linux ext2 filesystem)
size: 20480mb #s(41943040) s(41945778-83888817)
chs: (1023/239/63)-(1023/239/63)d (2774/46/1)-(5548/48/34)r

Primary partition(3)
type: 131(0x83)(Linux ext2 filesystem)
size: 20480mb #s(41943040) s(83891493-125834532)
chs: (1023/239/63)-(1023/239/63)d (5548/91/1)-(8322/93/34)r

Primary partition(4)
type: 131(0x83)(Linux ext2 filesystem)
size: 20480mb #s(41943040) s(125837208-167780247)
chs: (1023/239/63)-(1023/239/63)d (8322/136/1)-(11096/138/34)r
------------------------------------------------

Aqualung
22.06.08, 18:30
Wenn Du noch eine Liste der Partitionen nach


fdisk -l

hast, kannst Du versuchen, mit fdisk die Partitionen händisch einzutragen.

Pass auf die Blockgröße auf, da kommt es aufs Byte an.
Selbst schon einmal erfolgreich durchgezogen. Viel Glück ...

nawi
22.06.08, 18:58
Schau dir mal die Manpage zu
fsck an. Könnte das richtige für dich sein.

tonterias
22.06.08, 19:02
Danke für die Antwort, Aqualung!

Bei fdisk -l sieht man, welchen Mist ich verzapft habe: "dd if=/dev/sda of=/dev/sdb bs=512 count=1" (Ich werde NIE MEHR gedankenlos einem "einfachen Weg" aus dem Internet folgen! Bei all meinem Rechner, meinen Festplatten und all dem was darauf ist! Das schwöre ich!)

Kannst Du oder jemand anderes mir vielleicht noch erklären, wie ich mit fdisk die Partitionstabelle "händisch" wieder herstelle (insb. die erweiterte Partition)? Nach einer solchen Anleitung such ich nämlich schon seit einer Weile und für die man-page schein ich heute zu blöd. (Aber ich will nicht wieder etwas anfassen, ohne wirklich verstanden zu haben was ich da tue!)

Danke für Eure Geduld und Mühe!

--------------------------------
# fdisk -l

Platte /dev/sda: 40.0 GByte, 40007761920 Byte
255 heads, 63 sectors/track, 4864 cylinders
Units = Zylinder of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007d753

Gerät boot. Anfang Ende Blöcke Id System
/dev/sda1 1 2090 16779861+ 7 HPFS/NTFS
/dev/sda2 4417 4864 3598560 f W95 Erw. (LBA)
Partition 2 endet nicht an einer Zylindergrenze.
/dev/sda3 2090 2217 1020127+ 82 Linux Swap / Solaris
/dev/sda4 * 2218 4416 17663467+ 83 Linux
/dev/sda5 4418 4864 3590527+ 83 Linux

Partitionstabelleneinträge sind nicht in Platten-Reihenfolge
Warnung: ignoriere weitere Daten in Partitionstabelle 5
Warnung: ignoriere weitere Daten in Partitionstabelle 5
Warnung: ignoriere weitere Daten in Partitionstabelle 5
Warnung: Schreiben wird ungültiges Flag 0x053d in Part.-tabelle 5 korrigieren

Platte /dev/sdb: 400.0 GByte, 400088457216 Byte
240 heads, 63 sectors/track, 51681 cylinders
Units = Zylinder of 15120 * 512 = 7741440 bytes
Disk identifier: 0x0007d753

Gerät boot. Anfang Ende Blöcke Id System
/dev/sdb1 1 2220 16779861+ 7 HPFS/NTFS
Partition 1 endet nicht an einer Zylindergrenze.
/dev/sdb2 4693 5168 3598560 f W95 Erw. (LBA)
/dev/sdb3 2220 2355 1020127+ 82 Linux Swap / Solaris
Partition 3 endet nicht an einer Zylindergrenze.
/dev/sdb4 * 2356 4692 17663467+ 83 Linux
Partition 4 endet nicht an einer Zylindergrenze.
/dev/sdb5 ? 11524 19291 58720757+ 20 Unbekannt

Partitionstabelleneinträge sind nicht in Platten-Reihenfolge
--------------------------------

rudi_m
22.06.08, 19:27
also du kannst mit fdisk jetzt relative gefahrlos versuchen die 1. primaere partition wiederherzustellen, indem du einfach eine primäre partition anlegst und dann "guckst" ob das so stimmen kann.

WICHTIG!! Lege aber noch keine extended partition an, da dabei mitten auf de Platte geschrieben wird!

Primary partition(1)
type: 131(0x83)(Linux ext2 filesystem)
size: 20480mb #s(41943040) s(63-41943102)
also
fdisk /dev/sdb
x - expert mode
s - einheit auf sektoren umstellen
und eine primare partition
63 bis 41943102 (size 41943040) anlegen!
abspeichern.

Wenn, wie du sagst, danach eine extended Part. kam, muesste dort eine weiter Partitionstabelle liegen.
Diese extrahierst du mit dd:
dd if=/dec/sdb of=/tmp/bla.bin skip=41943165 count=1 bs=512

gucken ob das wirklich eine partitionstabelle ist:
hexdump tmp/bla.bin
(muss auf aa55 enden)

Wenn du soweit bist melde dich nochmal - keine Lust mehr zu tippen jetzt;)

Pasulke
22.06.08, 19:54
Hallo, bevor Du in irgendeiner Weise schreibend auf die Platte zugreifst, würde ich Dir empfehlen ein sektorbasierendes Abbild der Platte anzufertigen.

Grüße