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
quelle
fdisk -l
wäre hilfreich, von einer Linux-Live-CD zu starten und diese Informationen zu Ihrer Frage hinzuzufügen.number of heads/cylinder mismatches 224 (NTFS) != 255 (HD) … number of sectors per track mismatches 19 (NTFS) != 63 (HD)
und sagtbad relative sectors
unter 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).Antworten:
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),o
erstellen Sie eine leere Partitionstabelle, fügen Sie alle Partitionen mit genau demselben Layout erneut hinzu, undw
teilen Sie die neue Tabelle aus.quelle
bootrec
sich 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.fixboot
von der Wiederherstellungskonsole eines anderen Systems auf der Problemdiskette zu verwenden.fixboot
, aber es hat nichts getan (Testdisk gibt immer noch den gleichen Fehler).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,
chkdsk
nur 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.
(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.)
quelle