Umschreiben der Partitionstabelle, um BIOS / DOS-kompatibel zu sein

0

tl; dr: Springe zum Fragenbereich

Hintergrund

Ich habe ein Laufwerk, auf dem Windows 7 installiert war. Es hatte eine Windows 7-Startpartition von 100 MB, gefolgt von einer Partition, die den Rest des Laufwerks einnahm. Vor einiger Zeit habe ich die Hauptpartition verkleinert, damit ich ein separates Volume für Dateien haben kann, anstatt sie auf demselben Volume zu speichern, auf dem Windows, Spiele und Programme installiert sind.

Kürzlich habe ich die sekundäre Partition gelöscht und sie mit EASEUS Parition Master (Home) gelöscht und die Hauptpartition verwendet, um die gesamte Festplatte wie zuvor zu belegen.

Problem

Leider konnte ich das System nach erfolgreicher Ausführung von EASEUS (im Windows Native-API-Modus) nicht mehr mit diesem Laufwerk starten. Wann immer ich versuchte zu booten, erkannte das BIOS das Laufwerk, las und druckte die SMART-Daten ( STAUS OK) und hing dann einfach.

Zuerst befürchtete ich, dass das Laufwerk zwischen der Größenänderung und dem Neustart auf magische Weise abgestorben ist, aber nachdem ich es in ein externes Gehäuse gesteckt hatte, stellte ich fest, dass das Laufwerk in der Tat in Ordnung und sogar noch besser ist, die Partitionen intakt sind und alle Dateien zugänglich. Die andere Partition ist nicht mehr vorhanden und die Hauptpartition wurde wie gewünscht auf die gesamte Länge des Laufwerks erweitert. Es ist unter Windows voll funktionsfähig, nur nicht im BIOS.

Tests und Beobachtungen

Ich habe das MMC-Snap-In "Datenträgerverwaltung", "chkdsk", "TestDisk" (eine neuere Version von), "EASEUS Partition Master" (kostenlos), "EASEUS Partition Recovery", "PC Inspector Drive Recovery" und einige andere Tools im schreibgeschützten Modus ausgeführt von ihnen hatte kein problem mit dem antrieb. Der einzige Hinweis auf ein Problem war TestDisk, der auf eine Nichtübereinstimmung der Laufwerksgeometrie hinwies.

Diagnose

Die Schlussfolgerung, die ich gezogen habe, ist, dass Windows in der Lage ist, das Laufwerk zu lesen und die Partitionen genau zu erkennen (es ignoriert wahrscheinlich die irrelevanten Abwärtskompatibilitätswerte), aber wenn das BIOS versucht, die Startdateien vom Laufwerk zu lesen, es wird auf den falschen Werten ausgelöst und hängt.

Frage

Was ich jetzt brauche, ist eine Möglichkeit, die Partitionstabelle (und den MBR?) Zu korrigieren, um mit dem BIOS (und angeblich DOS) abwärtskompatibel zu sein, ohne Daten zu verlieren.

Beschränkungen

Ich weiß, dass Sie den MBR ohne Datenverlust neu schreiben können, bin mir jedoch nicht sicher, wie Sie die Partitionstabelle neu erstellen können, ohne vorhandene Partitionen zu beschädigen.

Leider habe ich kein ausreichend großes Ersatzlaufwerk, auf das ich alles kopieren kann (noch möchte ich all dieses Zeug formatieren und zurückkopieren), also brauche ich eine sichere Möglichkeit, um eine direkte Reparatur durchzuführen. Ich habe eine Kopie des ersten Megabytes oder so des Laufwerks sowie einen Teil des Anfangs der Windows-Partition ausgegeben. Daher habe ich eine Kopie des MBR, der Partitionstabelle und des Bootsektors der 100-MB-Bootpartition und der Windows-Partition.

Tools und Fähigkeiten

Ich bin mit Low-Level-Festplatten-Tools, einschließlich Hex- und Festplatten-Editoren, vertraut (ich habe mehrmals Daten auf FAT-Volumes wiederhergestellt, einschließlich der Neuerstellung von FAT-Ketten und -Verzeichnissen), habe aber nicht viel Erfahrung mit NTFS.


TestDisk gibt die folgenden Fehler bei der Analyse aus:

Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
Current partition structure:
         Partition                  Start        End    Size in sectors

Warning: number of heads/cylinder mismatches 224 (NTFS) != 255 (HD)
Warning: number of sectors per track mismatches 19 (NTFS) != 63 (HD)
 1 * HPFS - NTFS              0  32 33    12 223 19     204800

Bad relative sector.
 2 P HPFS - NTFS             12 223 20 60801  76 27  976566032

Bad relative sector.

Das Sicherungsprotokoll sieht wie folgt aus:

#1420342168 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P
#1420342211 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P
Synetech
quelle
Was ist die Geometrie der Partitionstabelle mit zu sein scheint? Es fdisk -lwäre hilfreich, von einer Linux-Live-CD zu starten und diese Informationen zu Ihrer Frage hinzuzufügen.
Psusi
Welche Partition ist aktuell als "Boot-Partition" gekennzeichnet? "Kürzlich habe ich die sekundäre Partition gelöscht ..." - Sie meinen wahrscheinlich die dritte Partition.
Sägemehl
@psusi, ich hatte das System nicht zur Hand, als ich die Frage gestellt habe, aber ich habe die Informationen erhalten. TestDisk sagt number of heads/cylinder mismatches 224 (NTFS) != 255 (HD) … number of sectors per track mismatches 19 (NTFS) != 63 (HD)und sagt bad relative sectorsunter jeder der beiden Partitionen (Boot-Partition und Hauptpartition mit vollem Laufwerk - die andere ist in der Tat verschwunden und wird in die Hauptpartition zusammengeführt).
Synetech,
@sawdust, na ja, technisch gesehen drittens, aber in diesem Zusammenhang bezog ich mich auf die verwendeten Partitionen (die 100-MB-Boot-Partition ist in Windows tatsächlich versteckt und nicht zugänglich, daher habe ich sie nicht gezählt, als ich die benutzer- Partitionen). Diese Partition ist sowieso die primäre, die anderen befinden sich in der erweiterten Partition, so dass die dritte in gewisser Weise tatsächlich die sekundäre Partition ist.
Synetech,
Nun, ich habe TestDisk die Partitionstabelle neu schreiben lassen, und jetzt werden diese Fehler nicht mehr angezeigt. Ich werde versuchen, das Laufwerk morgen früh an den Computer anzuschließen und hoffe, dass es das BIOS hinter sich lässt, wie es früher war. Ich werde dann aktualisieren ...
Synetech

Antworten:

1

Das BIOS sollte in der Regel keine Boote lesen Dateien , sondern nur das 440 Bytes des Bootstrap - Code in MBR, der Rest Geschäft Ihrer Bootloader ... (Obwohl es unglückliche Ausnahmen.)

Es ist also möglich, dass Sie den Windows-Bootloader nur mit neu installieren müssen bootrec /fixmbr.

Um die Partitionstabelle neu zu erstellen, würde eine Linux-CD funktionieren. Führen Sie aus fdisk /dev/sd…, notieren Sie sich das Partitionslayout (Typ, Startsektor, Größe), oerstellen Sie eine leere Partitionstabelle, fügen Sie alle Partitionen mit genau demselben Layout erneut hinzu, und wteilen Sie die neue Tabelle aus.

Grawity
quelle
Das wird es wahrscheinlich beheben. Wenn die Geometrie falsch ist, würde dies den Windows-Bootloader auslösen, da iirc nicht in den LBA-Modus wechselt und wenn möglich weiterhin die CHS-Adressierung verwendet.
Psusi
Außer dass ich auf dem fraglichen Laufwerk nicht in Windows booten kann. Ich kann eine andere Windows-Instanz mit dem als USB-Laufwerk angeschlossenen Problemlaufwerk starten. Ich glaube nicht, dass bootrecsich dies auf den MBR eines anderen Laufwerks auswirken kann. Und ich würde es vorziehen, Live-CDs und ähnliches zu meiden, wenn das überhaupt möglich ist. Ich bin sicher, dass es nicht dazu kommen muss, es sollte eine Möglichkeit geben, dies in Windows zu tun.
Synetech
@Synetech, die inkorrekten relativen Sektoren (eine andere dumme Sache, die Microsoft in ihren Bootsektoren kodiert hat) verhindern ebenfalls das Booten. Sie sollten in der Lage sein, fixbootvon der Wiederherstellungskonsole eines anderen Systems auf der Problemdiskette zu verwenden.
Psusi
Mit dem, was psusi sagt, sollten Sie in der Lage sein, eine Wiederherstellungsdiskette oder Hirens oder etwas zum Booten zu verwenden und dann über das Befehlszeilentool die Reparatur auf der nicht bootenden Diskette durchzuführen.
Abraxas
Ich müde fixboot, aber es hat nichts getan (Testdisk gibt immer noch den gleichen Fehler).
Synetech
0

In der Vergangenheit war ich von Christophe Greniers PhotoRec beeindruckt. Offensichtlich weiß er wirklich, was er tut und hat viel über Dateisysteme und Dateitypen geforscht. Aus diesem Grund habe ich mich dazu entschlossen, seinem Fachwissen zu vertrauen und TestDisk das Richtige zu überlassen (zumal es das einzige Tool war, das überhaupt Probleme entdeckte).

Nach der Fehlermeldung fuhr ich fort und erreichte einen Punkt, an dem ich die Option erhielt, die Partitionstabelle zu schreiben, nach der ich gesucht habe, oder nach weiteren zu suchen. Da die aufgelisteten Partitionen bereits korrekt waren, erlaubte ich ihr, die Partitionstabelle zu schreiben und neu zu starten. Das Laufwerk wurde immer noch erkannt und alle Dateien sind verfügbar (immer noch im externen Gehäuse), daher habe ich eine chkdskÜberprüfung durchgeführt, um die Sicherheit zu gewährleisten.

Der letzte Schritt bestand darin, es an das System anzuschließen und zu prüfen, ob es über das BIOS hinausgehen kann. Sicher genug. Ich habe noch eins gemacht, chkdsknur um ganz sicher zu gehen, und es wurde noch einmal überprüft. Tatsächlich schreibe ich gerade diesen Beitrag, während sich das Laufwerk im Computer glücklich dreht.

Wenn also jemand die Größe einer Partition ändert und feststellt, dass das BIOS nach dem Erkennen des Laufwerks hängen bleibt, legen Sie es entweder in ein externes Gehäuse oder in ein anderes System mit einem anderen BIOS und lassen Sie TestDisk die Partitionstabelle neu schreiben. Es sollte die Parameter anpassen, um wieder mit einem älteren BIOS (und wahrscheinlich auch DOS) kompatibel zu sein. Es schreibt die richtige Partitionstabelle mit den richtigen Parametern und sollte alle anderen Daten auf dem Laufwerk intakt lassen.


Ein Screenshot von TestDisks Bildschirm zum Schreiben einer Partitionstabelle



(Ich stelle fest, dass TestDisk nach dem erneuten Schreiben der Partitionstabelle keine Fehler mehr aufwies, sondern die Partitionstabelle neu schrieb, während sie sich noch im Gehäuse befand. Nach dem Zurücksetzen des Laufwerks in das System ist TestDisk jedoch einmalig Es werden wieder Fehler angezeigt, einige alte, einige neue, andere, aber das Laufwerk funktioniert trotzdem einwandfrei. Ich habe die neuen Fehler unten aufgeführt, falls jemand versuchen möchte, die genaue Ursache des BIOS-Hangs zu debuggen, da dies nur scheinbar der Fall ist Teilweise im Zusammenhang mit den Geometrieparametern.)

Disk /dev/sdb - 500 GB / 465 GiB - CHS 229504 224 19
Current partition structure:
         Partition                  Start        End    Size in sectors

 1 * HPFS - NTFS              0 107 16    48 134 14     204800

Warning: Bad starting sector (CHS and LBA don't match)
Warning: number of heads/cylinder mismatches 255 (NTFS) != 224 (HD)
Warning: number of sectors per track mismatches 63 (NTFS) != 19 (HD)
 2 P HPFS - NTFS             48 134 15 229504 215 11  976566272

Warning: Bad starting sector (CHS and LBA don't match)
Synetech
quelle