ubuntuusers.de

Partitionstabelle zerschossen?

Status: Ungelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Ich bin etwas verwirrt, was nun die nächsten Schritte sind.

Auf alle Fälle erst mal die Sektoren-Sicherung.

die Win7-Befehle (aber damit ändere ich doch den MBR, oder?)

Nein. Diese Befehle haben auf den MBR keinen Einfluss. Sie ändern den Windows 7 Bootmanager bzw. der erste Befehl erstellt diesen neu, der zweite listet dann die erstellten Einträge. Im schlimmsten Fall würde danach Windows 7 nicht mehr starten, was aber eher unwahrscheinlich ist und sich von einer Windows 7 DVD mittels bootrec /fixboot wieder beheben ließe.

Außerdem hast Du vom MBR ja bereist eine aktuelle Sicherung (mbr.bin). Aber trotzdem erst mal die Sicherung der Sektoren der erweiterten Partition, das ist nämlich das Komplizierteste.

Gruß, Martin

megspunky

Anmeldungsdatum:
18. Juni 2009

Beiträge: 247

Wohnort: Kaufbeuren

Ich hätte an eurer Stelle alle Partitionen gelöscht und alles neu Installiert.

Geht schneller und kostet weniger Nerven.

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo Martin,

hier sind die Kopien der Bootsektoren, aber das Problem, dass der zweite Sektor der erweiterten Partition eine Kopie vom MBR ist, besteht auch bei der Durchführung von der Live-CD:

file ebr1-128135168.bin | sed 's/partition/\n&/g'
ebr1-128135168.bin: x86 boot sector; 
partition 1: ID=0x7, active, starthead 32, startsector 2048, 204800 sectors; 
partition 2: ID=0x7, starthead 223, startsector 206848, 98628907 sectors; 
partition 3: ID=0xf, starthead 254, startsector 98836478, 482152450 sectors; 
partition 4: ID=0x7, starthead 254, startsector 580988928, 44152832 sectors, code offset 0x63

Daher die Ausgabe:

sudo dd if=/dev/sda count=1 skip=128135168 | hexdump -v
0000000 0000 0000 0000 0000 0000 0000 0000 0000
0000010 0000 0000 0000 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 0000 0000 0000 0000
0000030 0000 0000 0000 0000 0000 0000 0000 0000
0000040 0000 0000 0000 0000 0000 0000 0000 0000
0000050 0000 0000 0000 0000 0000 0000 0000 0000
0000060 0000 0000 0000 0000 0000 0000 0000 0000
0000070 0000 0000 0000 0000 0000 0000 0000 0000
0000080 0000 0000 0000 0000 0000 0000 0000 0000
0000090 0000 0000 0000 0000 0000 0000 0000 0000
00000a0 0000 0000 0000 0000 0000 0000 0000 0000
00000b0 0000 0000 0000 0000 0000 0000 0000 0000
00000c0 0000 0000 0000 0000 0000 0000 0000 0000
00000d0 0000 0000 0000 0000 0000 0000 0000 0000
00000e0 0000 0000 0000 0000 0000 0000 0000 0000
00000f0 0000 0000 0000 0000 0000 0000 0000 0000
0000100 0000 0000 0000 0000 0000 0000 0000 0000
0000110 0000 0000 0000 0000 0000 0000 0000 0000
0000120 0000 0000 0000 0000 0000 0000 0000 0000
0000130 0000 0000 0000 0000 0000 0000 0000 0000
0000140 0000 0000 0000 0000 0000 0000 0000 0000
0000150 0000 0000 0000 0000 0000 0000 0000 0000
0000160 0000 0000 0000 0000 0000 0000 0000 0000
0000170 0000 0000 0000 0000 0000 0000 0000 0000
0000180 0000 0000 0000 0000 0000 0000 0000 0000
0000190 0000 0000 0000 0000 0000 0000 0000 0000
00001a0 0000 0000 0000 0000 0000 0000 0000 0000
00001b0 0000 0000 0000 0000 0000 0000 0000 fe00
00001c0 ffff fe07 ffff 0800 0000 f800 19eb fe00
00001d0 ffff fe05 ffff 1002 1bab 035b 0095 0000
00001e0 0000 0000 0000 0000 0000 0000 0000 0000
00001f0 0000 0000 0000 0000 0000 0000 0000 aa55
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0,00167263 s, 306 kB/s
0000200

Ich habe noch einen Screenshot von GParted angehängt, vielleicht hilft er ja.

br-sda1.bin (512 Bytes)
Download br-sda1.bin
br-sda2.bin (512 Bytes)
Download br-sda2.bin
br-sda4.bin (512 Bytes)
Download br-sda4.bin
ebr0-98836478.bin (512 Bytes)
Download ebr0-98836478.bin
ebr1-128135168.bin (512 Bytes)
Download ebr1-128135168.bin
mbr.bin (512 Bytes)
Download mbr.bin
Bilder

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

und unter Win7 sagt er zu

bootrec /rebuildbcd

"Der Befehl 'bootrec' ist entweder falsch geschrieben oder konnte nicht gefunden werden."

Ich habe den Screenshot von bcdedit_enum trotzdem mal angehängt.

Edit: ich kann bootrec von der win7 CD ausführen, aber dann kann ich die Ergebnisse nicht Posten...

Bilder

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Ok, ich habe in der Eile eine Angabe bei meiner Anweisung vergessen 😳 , was mir erst jetzt auffällt - und zwar bei Schritt 5:

Jetzt kommt eine Transferaufgabe. 😀 Wie ich Dir ja schon oben geschildert hatte sind die Partitionstabellen-Einträge in der erweiterten Partition bezüglich der Startsektoren relativ zum Anfang der Partition, d.h. also zu dem ermittelten markierten Sektorwert addierst Du in Deinem Fall 98836478, also 464193577+98836478=563030055. Der so errechnete Startsektor (563030055) ist nun der absolute Sektor der Festplatte auf dem der nächste EBR liegt. Diesen Sektor musst Du nun wiederum sichern, also nach meinem Beispiel hier wäre das:

sudo dd if=/dev/sda of=ebr1-563030055.bin count=1

Da fehlt natürlich das skip=errechneter Wert also in meinem Beispiel skip=563030055, also der vollständige Befehl:

sudo dd if=/dev/sda of=ebr1-563030055.bin skip=563030055 count=1

D.h. dann für Deinen ebr1:

sudo dd if=/dev/sda of=ebr1-128135168.bin skip=128135168 count=1

Der Rest stimmt dann wieder und dann klappt auch sicher das mit file.... Sorry!

tempe222 schrieb:

Edit: ich kann bootrec von der win7 CD ausführen, aber dann kann ich die Ergebnisse nicht Posten...

Ist denn nach dem bootrec /rebuildbcd ein Unterschied bei bcdedit /enum gegenüber dem Screenshot? Steht da ein weiterer Windows-Eintrag, oder ist das mehr oder weniger gleich?

Gruß, Martin

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo,

nach dem bootrec /rebuildbcd

habe es aus der Recovery-CD ausgeführt und bekam die Meldung "0 Windows-Partitionen". Komisch, denn ich kann ja Win7 booten.

ein Unterschied bei bcdedit /enum

Habe den Screenshot angehängt. Ich konnte keinen Unterschied entdecken.

Bilder

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

... und die Sektoren von der Linux Live CD:

file ebr1-128135168.bin | sed 's/partition/\n&/g'
ebr1-128135168.bin: x86 boot sector; 
partition 1: ID=0x7, starthead 254, startsector 2048, 434894848 sectors; 
partition 2: ID=0x5, starthead 254, startsector 464195586, 9765723 sectors, extended 
partition table, code offset 0x0

und weiter: 98836478+464195586 = 563032064

file ebr2-563032064.bin | sed 's/partition/\n&/g'
ebr2-563032064.bin: x86 boot sector; 
partition 1: ID=0x7, starthead 254, startsector 2048, 8187904 sectors; 
partition 2: ID=0x5, starthead 254, startsector 472386727, 434896896 sectors, extended 
partition table, code offset 0x0

98836478+472386727 = 571223205

file ebr3-571223205.bin | sed 's/partition/\n&/g'
ebr3-571223205.bin: x86 boot sector; 
partition 1: ID=0x82, starthead 254, startsector 859, 9764864 sectors, code offset 0x52, OEM-ID "NTFS    ", sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, heads 255, hidden sectors 2048, dos < 4.0 BootSector (0x80)

und die Sektoren wieder angehängt. Habe ich alles richtig gemacht?

LG Sebastian

ebr1-128135168.bin (512 Bytes)
Download ebr1-128135168.bin
ebr2-563032064.bin (512 Bytes)
Download ebr2-563032064.bin
ebr3-571223205.bin (512 Bytes)
Download ebr3-571223205.bin

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Hallo Sebastian,

Habe ich alles richtig gemacht?

Ich hoffe, diese Frage kannst Du Dir mittlerweile wenigstens halbwegs selbst beantworten. Wie man sieht ergibt die Kette einen Sinn und stimmt mit den Angaben Deiner aktuellen fdisk-Ausgabe überein:

Probe sda5:

98836478 + 2 = 98836480 = Start + 29298688 -1 = 128135167 = Ende  -> Probe stimmt

Probe sda6:

98836478 + 29298690 + 2048 = 128137216 = Start + 434894848 -1 = 563032063 = Ende -> Probe stimmt

Probe sda7:

98836478 + 464195586 + 2048 = 563034112 = Start + 8187904 -1 = 571222015 = Ende -> Probe stimmt

Probe sd8:

98836478 + 472386727 + 859 = 571224064 = Start + 9764864 -1 = 580988927 = Ende -> Probe stimmt

Ich hoffe, Dir ist dabei aufgefallen, dass dieser Verkettungsmechanismus komplizierter ist, als die Einträge der Primär-Partitionen im MBR. Deswegen sind Partitionsänderungen innerhalb der erweiterten Partition sensibel und gehen recht häufig schief.

Dann kannst Du Windows 7 starten, klickst auf "Start" und drückst SHIFT+STRG+ENTER, um eine Administrator-Eingabeaufforderung zu starten dort gibst Du der Reihe nach ein:

bcdedit /export C:\bcd.bak
bcdedit -create {ntldr} -d "Windows XP"
bcdedit -set {ntldr} device partition=C:
bcdedit -set {ntldr} path \ntldr
bcdedit -displayorder {ntldr} -addlast

Nach einem Neustart solltest Du nun, Windows XP im Startmenü von 7 drin haben.

Erst mal wieder sehen, ob das soweit funktioniert.

Gruß, Martin

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo Martin,

dass dieser Verkettungsmechanismus komplizierter ist,

ja, das ist mir klar geworden. Ist schon deutlich komplexer als ich dachte. Ich bin erstmal froh, dass die Startsektoren soweit korrekt sind.

Mit den Windows-Befehlen hat alles gut geklappt, ich habe Win XP im Boot-Menü von Win7 als zweiten Eintrag. 👍 Danke dir!

Viele Grüße, Sebastian

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

tempe222 schrieb:

Ist schon deutlich komplexer als ich dachte.

Das was wir hier jetzt zusammen so zusagen zu Fuß erledigt haben, hätte auch testdisk für Dich erledigen können. Das kannst Du dann das nächste mal - was es hoffentlich bei Dir nicht geben wird - verwenden und kennst dann die Hintergründe, so dass Dir die dortigen Angaben nicht mehr so viele Rätsel aufgeben.

Aufgrund der Verkettung innerhalb der erweiterten Partition, rate ich immer dazu, Änderungen an logischen Laufwerken immer nur schrittweise im Partitionsmanager durchzuführen. Ich habe nämlich das Gefühl, dass es da häufiger zu Problemen kommt, wenn man erst alle Einstellungen tätigt, die man letztlich haben will und erst dann abschließend auf "Anwenden" klickt.

Mit den Windows-Befehlen hat alles gut geklappt, ich habe Win XP im Boot-Menü von Win7 als zweiten Eintrag. 👍 Danke dir!

Startet den XP bzw. der zweite Teil der Installation davon auch. Denn es könnte sein, dass wir die boot.ini noch anpassen müssen, falls es noch nicht geht!

Gruß, Martin

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo Martin,

dass es da häufiger zu Problemen kommt, wenn man erst alle Einstellungen tätigt, die man letztlich haben will und erst dann abschließend auf "Anwenden" klickt.

Das ist gut zu wissen. Ich dachte irgendwie, das sei schon etwas "wasserfester".

was es hoffentlich bei Dir nicht geben wird

Das hoffe ich auch. Ich werde mir jedenfalls alle Mühe geben 😉

dass Dir die dortigen Angaben nicht mehr so viele Rätsel aufgeben

Sicherlich nicht. Aber zur Sicherheit wird mein Hauptaugenmerk auf der Vermeidung liegen.

Win XP startet leider nicht. Ich habe die Fehlermeldung mal abfotografiert und angehängt.

Bilder

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Ok, boote noch mal in Windows 7, klicke auf "Start" und drücke SHIFT+STRG+ENTER, um eine Administrator-Eingabeaufforderung zu starten und dort gibst Du ein:

bcdedit -set {ntldr} device partition=\Device\HarddiskVolume1

mit

bcdedit /enum

überprüfst Du, dass die Änderung richtig vollzogen wurde. Wenn es danach immer noch nicht geht, dann poste bitte mal die Ausgabe von bcdedit /enum wobei dabei nur der Eintrag unter "Windows-Start-Manager" "device" interessiert. Ich gehe im Moment davon aus, dass der so lautet:

device       partition=\Device\HarddiskVolume1

Gruß, Martin

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo Martin.

durch den Befehl wurde die Device im Absatz Windows-Legacybetriebssystem-Ladeprogramm auf “ partition=\Device\HarddiskVolume1“ geändert. Beim Versuch zu booten kommt “Windows konnte nicht gestartet werden, da folgende Datei fehlt oder beschädigt ist: ...\hal.dll“

wobei dabei nur der Eintrag unter "Windows-Start-Manager" "device" interessiert. Ich gehe im Moment davon aus, dass der so lautet: device partition=\Device\HarddiskVolume1

Genau. Der war auch schon vorher so.

Newubunti

Anmeldungsdatum:
16. Februar 2008

Beiträge: 5149

Ok... das sieht nach meiner Meinung schon mal nach einem versuchten XP-Start aus. Überprüfen wir mal noch, ob die boot.ini auf die richtige Partition verweist:

Ok, boote noch mal in Windows 7, klicke auf "Start" und drücke SHIFT+STRG+ENTER, um eine Administrator-Eingabeaufforderung zu starten und dort gibst Du ein:

diskpart

Nach einer Weile solltest Du das "DISKPART >" Prompt bekommen. Dort gibst Du erst ein:

select disk 0

und anschließend:

list partition

mit

exit

verlässt Du dann diskpart wieder.

Du kontrollierst dann in der boot.ini ob dort der Wert hinter partition(7) im Moment ja 7 mit der Nummer übereinstimmt, die die XP-Partition laut diskpart list partition hat.

Außerdem stellst Du den Wert timeout=5 ein, damit wir sicher gehen können, dass das im Moment schon ein XP-Systemstart ist. Die boot.ini kannst Du auch von Linux aus ändern. Oder Du weist der Systempartition unter Windows 7 mit diskmgmt.msc ein Laufwerksbuchstaben zu.

Stimmt die Ausgabe laut diskpart schon jetzt mit der Einstellung 7 überein und siehst Du nach Änderung der boot.ini bezüglich timeout das XP-Startmenü für 5 Sekunden, dann ist an sich eigentlich soweit alles richtig jetzt. Du müsstest dann XP noch mal neu installieren.

Gruß, Martin

tempe222

(Themenstarter)

Anmeldungsdatum:
23. Februar 2012

Beiträge: 52

Hallo Martin,

Unter Diskpart ist Partition 6 die XP Partition. Der Timeout hat daher wohl nichts bewirkt. Diese Meldung der fehlenden HAL Datei kommt immer, wenn die XP Installation das Laufwerk nicht findet. Muss ich also die 7 in eine 6 ändern?