Master Boot Record - Master Boot Record (MBR)

Lassen Sie uns zunächst einige Begriffe zu definieren. Die Worte in der Artikelüberschrift gemacht, verstehen oft zwei verschiedene Dinge, die in einigen Fällen zu gleichwertig sein können, und in einigen - nicht. Das erste Konzept - die eigentliche Master Boot Record. Dieser Datensatz (Code und Daten), die in den Speicher von der Festplatte geladen und erlaubt die Identifikation der logischen Partitionen enthält, bestimmt die aktive Partition und von dort aus booten Boot Record (Boot Record - BR), die das Betriebssystem (OS) läuft weiter. Und die zweite Sache - der Bootsektor, Master Boot Sector (MBS) - dieser Sektor befindet sich auf dem Zylinder 0, der (Kopf) und 0 mit der Nummer 1. In den meisten Fällen enthält MBS alle notwendigen Codes und Daten, so dass ihr Inhalt den MBR jedoch gibt es Fälle (die wir später in diesem Artikel diskutieren werden), wenn der Code und die Daten nicht in dem gleichen Sektor platziert ist (einfach nicht genügend Platz haben, oder aus Sicherheitsgründen), und dann den Code dieses Sektors bietet das Laden in den Speicher, den Rest der Sektoren. In diesem Fall wird der MBR - eine Reihe von allen Sektoren, die geladen werden müssen, und MBS - nur einen ersten Sektor.
Doch beginnen wir mit dem Fall, wenn der MBR und MBS - die gleiche Sache, und wir sie besser kennen und weit verbreitete Begriff MBR nennen. Ein wenig vom Thema abweichende, stelle ich fest, dass ein MBR (die jedes Betriebssystem bietet booten und belegt nur MBS) werden häufig Generika MBR bezeichnet.
Im Allgemeinen erschien MBR auf der Festplatte, da MS DOS, Version 3.0, frühere Versionen der Festplatte als eine Diskette formatiert und in dem ersten Sektor befindet BR. Dementsprechend stellt die Scheibe einen Abschnitt und nicht in logische Teile gebrochen werden konnte - der Wahrheit, wenn die Größe der Scheiben, die dann freigesetzt werden, war es irrelevant.
Sektorgröße auf der Festplatte - 512 Byte. Dieser Raum ist genug, um alle, die erforderlich sind, um Haus - und den Code und Daten. Jedoch nur eine Struktur sollte unbedingt vorhanden sein - es ist eine Unterschrift. Dieses Wort wird ein spezieller, streng eingestellt, die Sequenz von 2 Byte mit dem hexadezimalen Werte 55h AAh genannt, die in den letzten zwei Bytes des Sektors aufgezeichnet sind, und dementsprechend wird von Anfang 1FEh Sektor versetzt sind. Wenn mindestens eines der letzten beiden Bytes im Wert unterscheiden, wird angenommen, dass der erste Sektor nicht MBR ist und enthält keine aussagekräftigen Informationen. Wenn der Computer beim Start, nach dem ersten Sektor zu lesen, nicht die korrekte Signatur erkennt, wird es nicht den Steuercode übertragen dort sesshaft, auch wenn es richtig ist, und wird eine Meldung angezeigt, dass der Master-Boot-Record nicht gefunden wird. Oder wird versuchen, es auf anderen Geräten zu finden - zum Beispiel auf einer Diskette. Ein wenig vom Thema abweichende, stelle ich fest, dass der BR auch die Unterschrift 55h AAh in den letzten zwei Bytes enthält.
Na ja, also, wenn der Autor aus dem Schwanz, dann gehen wir von dort an die Spitze des Sektors. Vor der Unterzeichnung, in der Nähe zu ihr, gibt es 4 Datenblöcke von jeweils 16 Bytes (jeweils Offset vom Anfang 1BEh Sektor, 1CEh, 1DEh, 1EEh). Die Kombination dieser Blöcke ist die Partitionstabelle, Partitionstabelle (PT), und jeder einzelne Eintrag genannt - ein Element der Partitionstabelle (Partition Table Entry) oder nur eine Partition (Partition). Diese 16 Bytes sind genug, um alle notwendigen Eigenschaften des Abschnitts angeben, nämlich Abschnitt Typ, Zeichen Forum Aktivität, Beginn und Ende der Sektor der Partition, in dem Zylinder-Format (Track) - Der Kopf (Seite) - Sektor (Zylinder - Kopf - Sektor, CHS) die relative Zahl des ersten Sektors (bezogen auf den MBR) und die Anzahl von Sektoren in der Partition.
Der ganze Rest des Raumfahrtsektors beschäftigt Software-Code, der Analyse der PT bietet, suchen Sie nach einer aktiven Partition, booten Sie in den Speicherabschnitt des BR und Übertragen der Steuerung zu. Es ist einfach der Code bleibt auf den 512 zu berechnen - 4 * 16 - 2 = 446 Byte. Dieser Raum ist mehr als genug, um solche Aktionen durchzuführen.
: Somit wird durch die folgende Tabelle zeigt die Gesamtstruktur des MBR kann dargestellt werden
  Offset Länge Beschreibung
 000h 446 loader Code
 1BEh 64 Partitionstabelle
  16 Abschnitt 1
 1CEh 16 Abschnitt 2
 1DEh 16 Abschnitt 3
 1EEh 16 Abschnitt 4
 1FEh 2 Signatur (55h AAh)
Jeder 16-Byte-Block, der einen Abschnitt beschreibt, hat die folgende Struktur:
  Offset Länge Beschreibung
 00h 1 Symptom Abschnitt Aktivität
 01h 1 Nach oben Abschnitt - Kopf
 02h 1 Starten Abschnitt - Sektor (Bits 0-5), Spur (Bits 6,7)
 03h 1 Abschnitt Start - Spur (8,9 höherwertigen Bits in einem Byte-Sektornummer gespeichert werden)
 04h 1 Partitionstyp Code
 05h 1 End Abschnitt - Kopf
 Abschnitt 06h 1 End - Sektor (Bits 0-5), Spur (Bits 6,7)
 07h 1 End Abschnitt - Spur (8,9 höherwertigen Bits in einem Byte-Sektornummer gespeichert werden)
 08h 4 Offset des ersten Sektors
 0ch Abschnitt 4 Anzahl der Sektoren
Partitionstyp-Code ist ein Ein-Byte-Kennung. Wenn sein Wert - 00h, wird angenommen, dass die PT-Element enthält keine Daten auf der Partition, und ihr Inhalt wird ignoriert. Jede Nicht-Null-Wert bedeutet, dass dieser Raum teilweise von einem bestimmten Typ ist. Einige der Werte zeigen deutlich den Partitionstyp, einige entsprechen mehreren möglichen Typen, und die Definition eines bestimmten Typs an das Betriebssystem zugeordnet, und der Rest sind für zukünftige Verwendung reserviert. Relativ vollständig und up-to-date kann Leitfaden für Codeabschnitte Typen in Ralf Brown Interrupt - Liste in INTERRUPT.D Dateitabelle 00652, gefunden werden , die in dem Archiv enthalten ist (zum Zeitpunkt des Schreibens) inter61a.zip bei http://www.pobox.com/ ralf ~ / files.html . Hier gebe ich eine Tabelle für die Arten von Partitionen, die von den Betriebssystemen Windows 9x und Windows NT / 2000 / XP erstellt werden:
  Code Section Type
 01h 12-Bit-FAT
 04h 16-Bit-FAT und 32 MB
 05h Abschnitt Erweitert
 06h 16-Bit-FAT als 32 MB
 07h Windows NT NTFS (und ein paar andere - wird von der Art des Inhalts BR bestimmt)
 0Bh 32-Bit-FAT
 0ch FAT 32-Bit mit erweiterten INT13 Steuer
 0Eh LBA VFAT (die gleiche wie 06h, mit dem Einsatz moderner Management-INT13)
 0Fh LBA VFAT (die gleiche wie 05h, mit dem Einsatz moderner Management-INT13)
 17h versteckte NTFS-Partition
 1Bh versteckte Partition 32-Bit-FAT (die gleichen, die 0Bh)
 1Ch versteckte Partition 32-Bit-FAT erweiterten Steuer INT13 verwenden (das gleiche, dass 0Ch)
 1Eh versteckte Partition LBA VFAT (die gleiche wie 06h, mit dem Einsatz moderner Management-INT13)
 Abschnitt 86h FAT-16 Windows NT Streifen-Array
 Abschnitt 87h NTFS Streifen-Array von Windows NT
 B6h gespiegelt Master-Partition FAT-16 Windows NT
 B7h gespiegelt Master-Abschnitt NTFS Windows NT
 FAT-16 Windows NT S6H Spiegel Slave-Abschnitt
 S7H Spiegel Slave-Abschnitt NTFS Windows NT
Abschnitt Aktivität Symptom - das heißt, ein Zeichen dafür, dass das Betriebssystem es aus diesem Bereich herunterladen sollte - kann einen Wert von 80h haben (Partition aktiv ist) und 00h (Partition nicht aktiv ist). Im allgemeinen muß die Menge der aktiven Partition kleiner als 1 (ausgenommen eine Wahl zu treffen?). Wenn die aktive Partition nicht - dann das Betriebssystem von dieser Festplatte kann nicht geladen werden. Andere Werte sind so schlecht, abgelehnt. Allerdings ist die Entscheidung über die Übertragung der Kontrolle des Urladercode, so dass der Wert des Byte-Boot-Funktion - ein Axiom nur die Standard-Download-.
Trёhbaytny Block Start- und Zieladressen Abschnitt Adressen haben einen identischen Format. Es nutzt tatsächlich den Wert der Verpackung, um einen Mindestbetrag zu haben. Paketformat ist in vollem Einklang mit der Art und Weise die Daten übertragen werden Verfahren mit Festplatte arbeiten (Int 13h), im BIOS des PCs befinden, so dass die Rechenoverhead-Kosten sind minimal erhalten. An den gleichen Zylinder und Spuren sind nummeriert, beginnend bei Null, und der Sektor - aus irgendeinem Grund die erste. Ich weiß wirklich nicht, warum - es historisch geschehen ist.
Der Sektor, der die Startadresse des Abschnitts angibt enthält einen speziellen Eintrag, eine so genannte Boot-Record (BR). Ihre Ernennung und Zusammensetzung wird in einem gesonderten Artikel besprochen werden.
Offset des ersten Sektor der Partition - es ist eigentlich die Nummer des Sektors, wenn alle der Festplattensektoren der Absatz ausgehend von 0 (in Übereinstimmung mit der Nummerierung verwendet Int 25h / 26h) in aufsteigender Reihenfolge der erste Sektor einer Spur, um Kopfzahlen zu erhöhen und schließlich Zylindern. Und was ist die Anzahl der Sektoren in der Partition - es ohne Erklärung klar.
Selbstverständlich sind alle diese Werte durch einfache Abhängigkeiten Zusammenhang, weil die darin enthaltenen Informationen übermäßig ist. Da die Formel wird die Beziehung zwischen ihnen geben.
Also, wenn wir bezeichnen:
C M - Zylinder , auf dem der MBR;
H M - Spur, auf der der MBR;
S M - Sektor, der der MBR ist;
C S, H S, S S , C E, H E, S E - die gleiche ist , für den Start von Sektoren (S) und das Ende (E) des Profils;
H H - die Anzahl der Spuren auf der Festplatte;
S H - die Anzahl der Sektoren pro Spur in der Festplatte,
dann:
Die absolute Zahl der Sektoren, in denen die PT:
Num PT = C M * H H * S H + H M * S H + S M -1
Die absolute Zahl der Sektoren dieses Abschnitts beginnen:
Num S = C S * H H * S H + H S * S H + S S -1
Absolute Sektornummer des Endabschnittes:
Num E = C E * H H * E H + H E * E H + E E -1
Der Offset des ersten Sektors der Partition:
Offset S = Num S - Num PT
Die Anzahl der Sektoren der Partition:
Betrag = Num E - Num S 1
Aus diesen Formeln ist es darüber hinaus klar, daß es wichtig ist, wie viele Spuren einer Festplatte, und wie lange Zylindersektoren jeder Spur aufweisen. Diese Werte hängen von der Geometrie der Festplatte, und die ausgewählten Einstellungen im BIOS-Übersetzungsmodus. Daher wird die Scheibe in einzelne Abschnitte in einem Broadcast-Modus unterteilt, kann es nicht lesbar sein, wenn Sie den Broadcast-Modus ändern.
Für IDE-Laufwerken gibt es mehrere Betriebsarten der Übersetzung:
CHS (Cylinder-Head-Sector) - in diesem Fall ist die Geometrie der Platte wird als das, was sie sagt, es ist ein Computer. Lasst euch nicht täuschen - die Mehrheit der realen Plattengeometrie ist nicht so. Allerdings ist der Controller Teil der Festplatte, macht die notwendigen Änderungen selbst, und die Art, wie er tut es für uns keine Rolle spielt. Die maximale Anzahl der Zylinder - 1024 (0 bis 1023), Spuren - 16 (0 bis 15), die Sektoren - 63 (1 bis 63), und die maximale in der Sendung vorhanden Plattenkapazität ohne die Verwendung von Spezialprogramme - 504 Mbytes . Wenn Plattenoperationen Sektoradresse wird auf die unverändert BIOS-Controller Festplatte des Computers übertragen werden.
LBA (Logical Block Addressing) - mit dem Broadcast-Modus, nicht die Scheibengeometrie, die er den BIOS des Computers informiert. Produziert in das Format zu bringen, wenn die Anzahl der Zylinder kleiner als 1024 ist, und die Anzahl der Sektoren pro Spur ist gleich 63. Die vorgesehenen Anzahl von Spuren, die gleichzeitig auf Ihrem Computer-BIOS und Festplattenvolumen abhängt, und kann bis zu 16, 64, 128 oder 255, die neueste Version des BIOS in der Regel gleich ist verwenden Reduktion auf 255 (0-254) Pfade unabhängig von Speicherkapazität. Bei Bezugnahme auf den LBA-Broadcast-Zylinderzahl übertragen Antrieb, Kopf und Sektor in eine absolute Anzahl von Sektoren übersetzt, und dass er bestanden BIOS des Computers Festplatten-Controller, den Vorgang auszuführen. Bei Speichervolumen von mehr als 8 GB der Anzahl der Zylinder wird von mehr als 1024 erhalten, da auf Computern, die den erweiterten Modus Int 13h nicht unterstützen, ohne Verfügung über die Grenzen von 8 GB spezielle Software Raum installieren zu müssen (unabhängig von der Broadcast-Modus). Manchmal aber hilft es, das BIOS des Computers zu aktualisieren.
LARGE oder ECHS (Extended CHS) - mit der Broadcast-Modus die Anzahl der Zylinder auf den Wert von mindestens 1024 durch den Anstieg in der Anzahl der Mehrfachpfade zu bringen hergestellt ist. Die bereitgestellte Anzahl von Spuren ist ausschließlich ein Vielfaches der tatsächlichen Anzahl der Sektoren pro Spur wird nicht geändert. Allerdings sind die meisten modernen Laufwerke die Anzahl der Sektoren pro Spur (auf die Zusicherungen des Antriebsreglers) ist 63. Die maximale Menge auf Computern, die den erweiterten Modus Int 13h nicht unterstützen, hängt von der tatsächlichen Anzahl der Spuren, aber nicht mehr als 8 GB (zum Beispiel, wenn die Platte 16 Spuren aufweist, können 16 in ihrer Sendung groß sein, 32, 48 ... 240, aber nicht 255, da 255 nicht ein Vielfaches von 16 ist und das maximal verfügbare Volumen - 240 * 1024 * 63 * 512 / (1024 3) = 7,38 GB).
Wenn Sie LBA oder LARGE Broadcast verwenden aufgrund ganze Zahlen mehrere Sektoren am Ende des Antriebs Rundung kann "herausfallen" der beschriebenen Raum und nicht mehr zugegriffen werden. Allerdings sind Verluste in der Regel gering.
Was ist SCSI-Laufwerke, werden sie immer in der Übertragung LBA-Modus arbeiten. Vielmehr stellt SCSI-Controller die Geometrie des Antriebs in Übereinstimmung mit den Anforderungen des LBA-Sendung, und die der Handhabung der Discs sendet ihm eine absolute Sektoradresse. Natürlich ist es im BIOS SCSI-Controller in der Verantwortung, um die notwendige Neuberechnung vornehmen.
Rückkehr in den MBR. Wie bereits erwähnt, enthält er einen Datenblock von vier Tabellenelemente Abschnitte. Dies bedeutet, dass die maximale Anzahl von Partitionen, die in einem MBR, gleich vier beschrieben werden kann. Allerdings bedeutet dies nicht, dass die maximale Anzahl der Abschnitte, die Antriebs unterteilt werden kann, vier gleich. erweiterte Partition (Extended Partition) - Um diese Barriere zu überwinden wurde eine spezielle Schnittstelle mit dem Code 05h eingeführt.
Eine erweiterte Partition ist sehr verschieden von allen anderen Typen von Abschnitten. Erstens beschreibt es nicht die Partitionsplatte und den Raumbereich, in dem die anderen Abschnitte angeordnet sind. Die Anzahl der Insassen von Abschnitten ist theoretisch unbegrenzt. die Abschnitte jedoch, dass in diesem Bereich mehrere "eingeschränkte Rechte", die bedeutendste Einschränkung angeordnet sind, dass sie nicht aktiv sein kann (oder besser gesagt, ist es möglich, so, weil dieser die OS-Partition zu tun, wird geladen, aber die regulären Mittel der meisten der bestehenden OS nicht zulassen, haben spezielle Werkzeuge zu verwenden). Zweitens muss der MBR nur einen Eintrag für die erweiterte Partition enthalten. Vielmehr kann sie hergestellt und mehr (mindestens vier), sondern verhält sich wie OS, eine schwierig zu begegnen, vorherzusagen. Zum Beispiel MS-DOS 6.20 ignoriert alle erweiterten Partitionen, mit Ausnahme des ersten in der Liste aus, als ob sie nicht existieren. Drittens, im Gegensatz zu anderen Arten von Trennwänden in dem Sektor, der in der Struktur des Sektors als Startabschnitt registriert ist, enthält nicht BR. Es ist eigentlich ein MBR, die eine Signatur hat, und eine Partitionstabelle, aber nicht typischerweise Programmcode enthalten (in der Regel einen Sektor mit einer Partitionstabelle, aber enthält nicht die Bootstrap-Code, der Zusammenfassung MBR genannt wird). Da es jedoch keine aktive Partition ist, dann ist der Code unbrauchbar. In diesem Sektor gibt Partitionstabelle ist in der Regel ein oder zwei Einträge. Der erste Abschnitt beschreibt die übliche (Partition), darüber hinaus sollte dieser Abschnitt vollständig im Inneren des Raumes erweiterten Partition. Wenn ein gewöhnlicher Abschnitt nimmt den ganzen Raum in der Partitionstabelle, ein zweites Element, das den verbleibenden Platz als der erweiterten Partition beschreibt. In einem anderen Sektor, wie es von einem Abschnitt beschrieben und, wenn noch Raum bleibt, auch eine Aufzeichnung der erweiterten Partition. Und so geht es weiter, solange der Raum abgeschlossen ist. In der Tat, alle Datensätze zu den erweiterten Abschnitten verbunden sind Kette (Erweiterte Partition Chain), die Stücke von den üblichen Abschnitte des Lagerraums abschnüren, ist der Ort nicht zu Ende gehen. Ein Fehler in einem Element der Kette wird als Ergebnis alle Datensätze zu seiner zerfall führen nach der Pause nicht ausgeführt wird, und das Betriebssystem Raum, der von ihnen belegten Geländes wird als frei zu finden.
in der Regel haftet OS auf ein paar Regeln, wenn der Kreis geschlossen. Vo-pervyh in der nächsten "link" Abschnitt beschrieben wird, ist kein gewöhnlicher Kette sollte in der Mitte platziert werden, als ob die resultierenden zwei Stücke freier Speicherplatz zu beschreiben, in PT erforderlich ist, dieses Element als auch zwei Datensätze auf zwei verschiedenen fortgeschrittenen Themen geben, wie ich bereits sagte, das Betriebssystem in der Regel ignorieren alle diese Datensätze mit Ausnahme der ersten, und als Folge des Sturzes der Speicherplatz Partitionierung. Zweitens, in der Regel eine Aufzeichnung der Normalschnitt ist so gemacht, dass es einen Anfangsbereich der erweiterten Partition belegt, und das nächste Element der Kettenabschnitte - der Rest.
Welche Probleme könnten von dem Inhalt des MBR entstehen? Erstens logische oder physische Zerstörung, das heißt Oberflächenschäden oder andere mechanische Probleme oder korrupte Servo, die es unmöglich zu lesen, um diesen Sektor von der Platte macht. Jedoch sind solche Fälle außerhalb des Umfangs unserer Betrachtung. Die zweithäufigste Problem - die Zerstörung aller oder eines Teils der Informationen in dem Sektor enthalten sind, wobei die Abschnitte oder nicht durch das Betriebssystem oder deren Parameter gefunden werden können, sind falsch bestimmt.
Der einfachste Fall - die Zerstörung der Signatur. Zur gleichen Zeit hält das Betriebssystem, dass der Sektor eine Zufallsinformation enthält, "Müll", und das Laufwerk selbst nicht in Abschnitte unterteilt, und keine Informationen über die es nicht ist. gerade genug, um mit allen Mitteln der direkten Zugang zu den Sektoren der Festplatte (die beliebtesten DISKEDIT NORTON UTILITIES-Paket) zur Wiederherstellung der Signatur wiederherzustellen. Die meisten Betriebssysteme müssen jedoch neu gestartet werden, da das Betriebssystem in der Regel ist, wenn Sie die Informationen auf der Partition eine Platte zu lesen beginnen und dann im Verlauf seiner Änderungen werden nicht berücksichtigt.
Ein komplizierter Fall - ist die Zerstörung des Codes. Zur gleichen Zeit verlieren die Fähigkeit, das Betriebssystem aus dem Laufwerk zu booten und versuchen, in der Regel zu booten endet mit "hängen", um den Computer. Zur gleichen Zeit, wenn Sie von einem anderen Laufwerk (eine andere Festplatte, Diskette, bootbare CD-ROM, etc.) zu starten, dann werden alle Informationen auf dem Laufwerk ist für den Einsatz zur Verfügung. In diesem Fall ist es empfehlenswert, Standard-Tools zu verwenden, Boot-Code wiederherzustellen, die in jedem OS zur Verfügung stehen. Zum Beispiel auf Windows 9x zu diesem Zweck FDISK.EXE Programm, das mit dem Schlüssel / MBR läuft.
Die Zerstörung des Codes - nicht so seltenes Ereignis, wie es scheinen mag. In der Regel wird ein solches Problem tritt auf, wenn ein Laufwerk mehrere Betriebssysteme in Serie in einem oder mehreren Abschnitten installiert sind. Jede OS-Installation möchten im MBR eigenen Code zu haben, aber nicht kümmern sich alles um den Code beibehalten, die bisher in der Branche war. Zum Beispiel auf Windows 9x den Urladercode umschreiben, ohne dass der Benutzer Popularität zu informieren und unwiderruflich den alten Inhalt zu zerstören. Allerdings ist dieser Fall nur nicht sehr beängstigend, weil alle Lader OS sehr ähnlich sind. Das Problem tritt auf, wenn die Partition das Laufwerk in Partitionen von Software von Drittanbietern, wie EZ-Laufwerk, ODM oder solche SpeedStore verwendet, die nur MBR Konzepte und MBS sind nicht gleichwertig. Aufgrund der unterschiedlichen Ideologien-Download-Code (die wir später sehen werden), führt, und zwar mit einer anderen Funktion in der MBS, die Suche und das Herunterladen des MBR-Code in den anderen Sektoren der Festplatte befindet. Ersatzcode führt zu der Tatsache, dass diese Funktion verloren geht, und somit gibt es Probleme unterschiedlicher Natur. Der Benutzer muss sehr vorsichtig sein, wenn eine solche Software - Code Recovery in solchen Fällen kann sehr schwierig sein.
Und die schwere und unangenehme Erfahrung - ist die Zerstörung der Partitionstabelle selbst. Aber wie wir wissen, kommt die Schwierigkeiten nie allein, und oft alle drei sind MBR Komponente zerstört, aber es ist die Zerstörung der PT-Ergebnisse in den schwersten Folgen, weil sie die Fähigkeit verloren zu Informationen auf dem Laufwerk gespeichert sind, zugreifen. dh - PT vollständig und vielleicht teilweise zerstört werden der Elemente zerstört, und der Rest intakt. Es gibt Fälle, wenn der PT, befindet sich in einem MBR, intakt und eine Aufzeichnung der Abschnitte in einem der Glieder in der Kette erweiterten Partition gebrochen. Da jedoch die Struktur des MBR und der Struktur identisch sind (außer, dass es keine erweiterten Partition Elemente-Code ist), das Rückforderungsverfahren in beiden Fällen die gleiche ist.
Es gibt eine ausreichende Anzahl von Programmen der Lage, ihre zerschmettert PT wieder aufzubauen. Die Qualität ihrer Arbeit ist anders und hängt hauptsächlich von der Plattenpartitionierung Prozess war, wie schwierig es in Abschnitte, die alle Arten von Partitionen, die auf der Festplatte, bekannt Programm sind, und es gibt keine andere als die Zerstörung von PT keine Beschädigung von Daten in anderen Sektoren hat, vor allem die BR Abschnitte. Wir sind jedoch nicht nach einfachen Möglichkeiten suchen, und wenn man die Seele nicht über Kopf hängen mit dem Ruf "mehr, schneller, springen Ausdruck meiner Form, ich bin im Urlaub zu spät!", Werden Sie viel mehr Freude, wenn auf ihre eigene, ohne Programmier-Maschinen mit nur ihr Wissen in der Lage sein, alle Informationen zu erholen. Sie können auch nur alle notwendigen Forschung zu machen, alle Zahlen zu erhalten, die in der PT geschrieben werden müssen, und dann das Recovery-Programm starten und es dann funktioniert, dass alles richtig zu spüren. Und vielleicht sogar die Ergebnisse ihrer Arbeit zu verbessern, wenn es nicht um 100% erfüllt ist.
Also müssen wir arbeiten: eine Bootdiskette mit dem DOS-beliebigen, auf die die kopierte Datei DISKEDIT.EXE, Bleistift, Papier und Taschenrechner (obwohl der Rechner in der DISKEDIT) und einige Gehirne. Es ist wünschenswert, natürlich, und in die DOS und DISKEDIT waren frischer. Ich benutze DOS 7.10 von der Windows 98 SE und DISKEDIT von NORTON UTILITIES Paket 2002 keine Treiber in diesem Stadium brauchen wir nicht, na ja, außer wenn der Antrieb auf die alte SCSI-Controller angeschlossen ist und ohne Last nur der Fahrer nicht sichtbar ist. Sie können die Maus-Treiber herunterladen - wird ein bisschen bequemer sein. Nun, die wichtigste Änderung - zusätzlich zu den Dateien auf einer Diskette sollte nicht alles sein! Dies ist wichtig - wenn es keine Konfigurationsdatei Diskette, DISKEDIT.EXE im schreibgeschützten Modus (Read-Only) und es werden keine Daten auf der Festplatte geändert werden, bis wir nicht explizit fragen. Eine Diskette alle Einträge zu schließen.
Starten Sie von der Diskette. Führen Sie DISKEDIT.EXE. Nach dem Laden drücken Sie die Tasten Alt-D (oder über das Menü Objekt - Drive). Es erscheint ein Fenster mit den verfügbaren Plattengeräte. Zunächst weisen wir darauf hin, dass wir ein physisches Gerät (Physische Datenträger) benötigen, und wählen Sie dann das gewünschte Laufwerk (zum Beispiel Festplatte 1) und dann auf OK klicken. Zur gleichen Zeit in allen Sektoren der Platte als Sichtbereich vom ersten ausgewählt werden dauern. Dass wir brauchen.
Zunächst werden wir das Programm stellen die Platte anzeigen und durchsuchen alle Sektoren durchzuführen, die Schaltungselemente erweiterte Partition oder BR sein kann. Und obwohl es wäre leicht DISKEDIT Sektor mit der Unterschrift zu sehen, nicht um den Inhalt zu analysieren (wir übernehmen) - gute Ergebnisse kann die Arbeit erleichtern. Die Wahrheit muss geduldig sein - der Prozess nicht schnell ist, und außerdem jeder fand der Sektor müssen einen Bleistift zu nehmen, aber es lohnt sich Pulver und Blei.
Also, Werkzeuge - Objekt suchen - Partition / Stiefel. Lassen Sie uns gehen. Jedes Mal, wenn Sektor mit der Unterschrift kommt, wird die Suche beendet, wird der Bildschirm ein Abbild des Sektors zeigt, und in der unteren rechten Ecke - Anzahl der Sektoren. Dies sind die Adressen und brauchen einen Bleistift zu nehmen. Wenn Sie jedoch eine Festplatte partitionieren ist nicht sehr ausgefeilte Methoden verwendet, alles, was wir interessiert in der Branche sind auf der Null oder der ersten Seite im ersten Sektor platziert werden, dh Sector Side 0 oder 1, 1. Andere Bereiche, zum Beispiel etwa 12 Cyl, Seite 4, 52 Sector kann ignoriert werden - es zufällig. Aber wir haben eine absolute Anzahl von Sektoren, aber es ist nicht so schlimm, denn die "richtige" Anzahl der Sektoren wird durch die Anzahl der Sektoren pro Spur teilbar sein, in der Regel 63 (andere Werte gibt es jetzt viel weniger - 17, 26, 40, 56, so nachstehend wo ich auch über die Anzahl der Sektoren 63 sprechen wird, bedenken Sie, dass andere Nummer) auf bestimmten Speicher möglich verwendet werden müssen. Und diese Zahl können wir aus dem Menü sehen (Info - Drive Info). Leider kann die Anzahl der Seiten und der Zylinder dort falsch sein (nicht geeignet für die Übersetzung), aber es ist nicht so schlimm. Das Schreiben der nächsten Reihe von Sektoren, fahren wir fort, zu suchen (Sie können über das Menü Extras - Erneut suchen, können Sie einfach Ctrl-G). Und so, bis wir eine Meldung erhalten, dass das Objekt nicht gefunden wird. An diesem Punkt in der Hand (oder besser gesagt, auf Papier) alle Bereiche der Räume, in denen es eine Unterschrift ist.
Теперь обрабатываем список, отсеивая явно случайные номера (это которые не делятся на 63), и особо выделяя пары номеров, которые различаются на 63. Эти пары - не что иное как пара из элемента Extended Partition и BR описанного в нём раздела.
Теперь отложим на минутку листок с цифрами и попытаемся вспомнить, какого размера разделы были на диске. Так, крупными мазками, 600 мегабайт, 12 гигабайт… запишем всё что помним. Если сумма не равна объёму накопителя - либо что-то забылось, либо неверно вспомнилось, либо было пространство, не принадлежавшее ни одному разделу (а что, бывает… знаю не один случай, когда десятигигабайтный жёсткий диск разбивался на компьютере, материнская плата которого не понимала более восьми гигабайт, а при апгрейде это как-то не вспомнилось… вот так 2 гигабайта и зависли). На этом этапе желательно вспомнить ещё и типы файловых систем в каждом из разделов.
Теперь возьмём оба листка и попытаемся совместить полученные данные. Мегабайт - две тысячи секторов, гигабайт - два миллиона… приблизительно. Но обычно удаётся совершенно однозначно наложить одно на другое. Полезно бывает нарисовать длинный прямоугольник, расставить на нём границы, соответствующие найденным секторам, и поделить на кусочки, соответствующие размерам разделов. Даже если однозначности нет - не беда. Разберёмся. При совмещении данных рекомендую помнить, что некоторые BR и элементы цепи Extended Partition могут быть разрушены (и соответственно не будут найдены), причём наиболее часто разрушаются BR первого (по положению на накопителе) раздела и BR активного раздела.
Впрочем, на данном этапе, пожалуй, всё… и не потому, что дальше некуда, а по другой причине - для дальнейшей работы по восстановлению требуется анализ других структур, которые располагаются уже в "найденных" разделах - это BR, FAT/MFT, каталоги и пр… мы их пока не рассматривали. Впрочем, иногда и найденной и вспомненной информации достаточно. В конце статьи приведен пример такого восстановления (пока не написан).
Иногда знание структуры разделов применяют совершенно для других целей - например, для создания своего собственного разбиения диска на разделы. Пример такого применения также есть в конце статьи.
При создании нестандартного разбиения диска на разделы, кроме требований, описанных ранее (один расширенный раздел и пр.), рекомендую также учитывать то, в каком порядке ОС MS-DOS и Windows назначают разделам буквы логических дисков ( Q51978 - Order in Which MS-DOS and Windows Assign Drive Letters ). Буквы присваиваются, начиная с C: (A: и B: зарезервированы для дисководов гибких дисков, возможно виртуальных). Порядок подключения таков:
  1. Раздел, с которого загружается ОС (при загрузке с жёсткого диска).
  2. Первые первичные разделы остальных жёстких дисков в порядке их нумерования (инициализации) BIOS компьютера.
  3. Разделы в Extended Partition жёстких дисков в порядке их нумерования (инициализации) BIOS компьютера, в порядке их записи в Partition Table дисков.
  4. Остальные первичные разделы дисков, в порядке их записи в Partition Table по порядку их нумерования (инициализации) BIOS компьютера.
  5. Устройства, формируемые драйверами, запускаемыми в файлах config.sys и autoexec.bat, в порядке их формирования и инициализации, если формируемому устройству не назначается в явной форме определённая буква или диапазон букв.
  6. Для ОС, которые могут опознавать и подключать накопители, не инициализируемые BIOS компьютера (не описанные в установках CMOS накопители) - разделы этих накопителей в соответствии с правилами 3 и 4 в порядке инициализации накопителей операционной системой.
Разделы не известных ОС типов не инициализируются и буквы им не присваиваются.
Следует помнить, что ОС семейства Windows NT имеют штатные средства переопределения букв логических дисков.

Пример 1. Ручное разбиение на разделы.

  • Параметры накопителя в LBA-трансляции (взяты из BIOS - Autodetect Hard Disk) - Cylinders 1216, Heads 255, Sectors 63, Capacity 10 Gb.
  • Желаемое разбиение: система 2 Гбайт, данные - 2 Гбайт, игры и дистрибутивы - остальное. Желательно разместить системный раздел в конце диска (по тестам там самая быстрая область), игры - в начале диска (по заверениям специалистов, наиболее часто данные повреждаются именно там).
  • Операционная система - Windows 98 SE rus, все разделы - FAT-32.
Исходя из желаемого разбиения, видится следующая схема: сначала расширенный раздел с двумя логическими дисками в нём - 6 и 2 Гбайт, потом первичный активный раздел 2 Гбайт, либо 3 первичных раздела в указанном порядке и с указанными размерами. Последний вариант нам не подходит (неважно по каким соображениям). Особенности работы программы FDISK выбранной ОС не позволяют выполнить разбиение штатно: если сначала мы создадим первичный раздел, он будет находиться в начале накопителя, если же мы сначала создадим расширенный раздел, то программа отказывается создавать первичный.
Принимаем решение провести разбиение с помощью FDISK насколько возможно, а затем доделать вручную. Первый этап: создать расширенный раздел с двумя дисками; второй: вручную добавить запись о первичном разделе.
Первый этап проблем не вызывает: загружаемся с дискеты, создаём extended partition размером 8 Гбайт, и в ней два логических диска - 6 Гбайт и 2 Гбайт. Перезагружаемся с дискеты, убеждаемся, что на диске появились (но недоступны - ведь мы не форматировали разделы!) диски C: и D:. Форматируем их при помощи стандартного FORMAT и в процессе форматирования убеждаемся, что диск C: имеет размер 6 Гбайт, диск D: - 2 Гбайт. Запускаем DISKEDIT и смотрим содержимое MBR. В нём имеется следующая запись:
 Starting location Ending location Relative Number of
System Boot Side Cylinder Sector Side Cylinder Sector Sectors Sectors
EXTEND No 1 0 1 254 972 63 63 15631182
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
Нам нужно добавить запись о первичном разделе. Тип (System) будет 0Ch (FAT32x), признак загрузки установлен, начало раздела по адресу 973/0/1, конец раздела по адресу 1215/254/63, относительный сектор начала раздела 15631245 (973*255*63+0*63+1-1), относительный сектор конца раздела 19535039 (1215*255*63+254*63+63-1), количество секторов 3903795 (19535039-15631245+1). Весьма существенная тонкость - если номер цилиндра более 1023, в соответствующее поле вносится значение 1023 - увы, это максимальное значение, которое можно туда записать - а правильное значение ОС рассчитает исходя из заданного количества секторов.
Переводим DISKEDIT в режим Read-Write (Tools-Configuration) и во второй строке вписываем рассчитанные данные. После ввода и проверки всех значений выходим из DISKEDIT клавишей Esc, а на вопрос, что делать с изменениями, отвечаем - записать (write). Ein Neustart des Computers. Убеждаемся, что на диске теперь три раздела - C: - недоступен, D: - 6 Гбайт, E: - 2 Гбайт. Форматируем диск C: с переносом на него системных файлов, в процессе форматирования убеждаемся, что диск C: имеет размер 2 Гбайт. Обновляем код MBR командой FDISK /MBR, вынимаем дискету, перезагружаем компьютер, убеждаемся, что ОС загрузилась, диски C:, D: и E: доступны и имеют размеры 2, 6 и 2 Гбайт. Запускаем NDD и убеждаемся, что ошибок ни в таблице разделов, ни на дисках нет. Разбиение закончено.
Теперь таблица разделов при просмотре через DISKEDIT выглядит так:
 Starting location Ending location Relative Number of
System Boot Side Cylinder Sector Side Cylinder Sector Sectors Sectors
EXTEND No 1 0 1 254 972 63 63 15631182 ; Расширенный раздел
FAT32x Yes 0 973 1 254 1023 63 15631245 3903795 ; Первичный раздел (C :)
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
Если поставить курсор на строку с записью о расширенном разделе и нажать Enter, то DISKEDIT автоматически перенесёт просмотр в сектор, на который указывает адрес начала раздела (для первичного раздела это будет BR, для расширенного - элемент цепи разделов). В нашем случае мы увидим такое содержимое элемента цепи разделов:
 Starting location Ending location Relative Number of
System Boot Side Cylinder Sector Side Cylinder Sector Sectors Sectors
FAT32x No 2 0 1 254 728 63 63 11711259 ; Логический раздел (D :)
EXTEND No 0 729 1 254 972 63 11711322 3919923 ; Расширенный раздел
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
Продолжим движение по цепи разделов в следующий элемент:
 Starting location Ending location Relative Number of
System Boot Side Cylinder Sector Side Cylinder Sector Sectors Sectors
FAT32x No 1 729 1 254 972 63 63 3919860 ; Логический раздел (E :)
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
unused No 0 0 0 0 0 0 0 0
Очередной элемент цепи не содержит записи о расширенном разделе. Цепь закончилась.