linux-l: Patritiontable

Mathias Born mborn at faphida.in-berlin.de
Mo Jul 5 22:51:56 CEST 1999


Malte Frerichs wrote:
> Ich habe folgendes Problem: Ein Rechner mit Win95 bootet nicht mehr
> (warscheinlich wegen Bootvirus). Wenn ich ein SuSE Rettungssytem von CD boote
> kann ich die Platte mounten und sehe auch alle Dateien. Dann hab ich mal mit
> ner Dos Bootdisk gebootet und fips gestatet. der hat mir gesagt das der
> Partitiontable kaputt ist.
> Gibt es eine Möglichkeit über Linux den Dos Partitiontable wieder herzustellen
> bzw neu zu erstellen?

Ja. Man muß lediglich den MBR mit einem HEX-Editor so editieren, daß
die Werte wieder stimmen. (Mit dem Programm dd kann man beliebige
Sektoren
auf Blockgeräten hin- und herkopieren.)
Dazu muß man aber
1) Den Aufbau der Partitionstabelle kennen,
2) wissen, welche Werte da konkret für die einzelnen Partitionstabellen
   reingehören.

Das ist ziemlich lästig, und daher will ich zu einem anderen Weg raten,
mit dem ich mir mal eine NTFS-Partition (!) gerettet habe, bei der auch
die Partitionstabelle zerstört war.

Da Du unter Linux die FAT-Partition mounten kannst, ist die Struktur
noch halbwegs (oder ganz) ok. Gehe wie folgt vor:
1) kopiere unter Linux mit dd das komplette Laufwerk (also z.B.
/dev/hdb)
   in eine Datei (natürlich auf ein anderes Laufwerk!).
2) Starte DOS.
3) Lösche alle Partionen auf dem Laufwerk mit der kaputten Tabelle.
4) Erstelle die Partitionen neu - mit exakt den gleichen Maßen.
   Jetzt ist die Partitionstabelle wieder ok.
5) Starte Linux.
6) Kopiere mit dd den ersten Sektor (also die ersten 512 Bytes) aus dem
   Laufwerk überschreibend in die ersten 512 Bytes der unter 1)
erstellten
   Datei. (Der erste Sektor ist ja gerade der MBR.)
7) Kopiere mit dd die Datei von 1) wieder zurück auf das Laufwerk.
8) Du hast fertig.

Sollte eine Partitionstabelle in einem logischen Laufwerk
kaputt sein, ist das Verfahren entsprechend zu modifizieren, aber der
Weg sollte jetzt klar sein, oder?
Zur Bedienung von dd: man dd.

Mathias

PS: Solche Manipulationen kann man nur mit Linux durchführen,
eben weil's cool ist.

-- 
>From "info gcc":
  `-trigraphs'
      Support ANSI C trigraphs.  You don't want to know about this
      brain-damage.  The `-ansi' option implies `-trigraphs'.



Mehr Informationen über die Mailingliste linux-l