Windows Vista/7/2008r2 Boot sector/loader recovery stuff

Unformatierter, unbearbeiteter Rohstoff…!

diskpart:

select disk 0
active
exit
bootrec /FixBoot
bootrec /FixMbr
bootrec /RebuildBcd

Von http://www.windowspro.de/andreas-kroschel/bootsektor-und-mbr-reparieren-unter-windows-7-und-windows-server-2008-r2: Bootsektor und MBR reparieren unter Windows 7 und Windows Server 2008 (R2) Andreas Kroschel, 18.05.2010 Tags: Windows Server 2008, Windows 7, Troubleshooting Tweet I like

Windows startet nicht, weil der Boot-Speicher keinen gültigen Eintrag enthält (Thumbnail)Auch wenn das Tool bcdedit auf den zweiten Blick weniger sperrig zu bedienen ist, als es auf den ersten scheint, kann es doch nicht alle Aufgaben abdecken, die nötig sind, ein nicht mehr startendes System wieder flottzukriegen. Ist der Boot-Speicher etwa korrupt, keine Partition aktiv oder kein gültiger Master Boot Record (MBR) vorhanden, behebt es solche Fehler nicht. Es ist eben nur für die Kon­fi­gu­ra­tion der zu startenden Systeme selbst zuständig, unter der Annahme, dass der Rest drum herum schon in Ordnung sei. Stufen des Bootens: MBR, Bootmanager, Be­triebs­sys­tem

Windows startet nicht, weil der Boot-Speicher keinen gültigen Eintrag enthältSchuld ist die althergebrachte Technik des Bootens auf BIOS-basierten Rechnern, an der auch moderne Be­triebs­sys­teme nichts ändern können; die sind ja zu diesem Zeitpunkt noch nicht in Funktion. Der PC liest nach dem Einschalten zunächst die ersten 512 Byte der ersten Festplatte ein und kennt danach die darauf vorhandenen Partitionen sowie die Sektor-Adresse eines Bootloaders, zu dem er springt und dessen Code er abarbeitet.

Click here to find out more! Unter Windows seit NT führt dies dann dazu, dass der Bootmanager aufgerufen wird. Es handelt sich bei aktuellen Windows-Versionen um das Programm bootmgr an einer physisch festen Position auf der aktiven Partition, die in der Regel versteckt ist. Es liest den Boot-Speicher \Boot\BCD auf dieser Partition aus und präsentiert die daraus resultierende Auswahl an startbaren Be­triebs­sys­temen als Boot-Menü.

Gibt es nichts auszuwählen, etwa weil sich nur ein OS auf dem Rechner befindet und der Benutzer nicht ‹F8› gedrückt hat, sieht man von diesem Vorgang nichts. Vor Windows Vista/Windows Server 2008 hieß das Programm ntldr, wertete die Textdatei boot.ini aus und baute daraus das Boot-Menü.

Wenn man so will, handelt es sich dabei jeweils bereits um ein rudimentäres Be­triebs­sys­tem: Immerhin kann es Informationen anzeigen und Eingaben entgegennehmen sowie diese verarbeiten. Das mehrstufige Booten birgt jedoch auch einige Fehlerquellen, und zwar an jeder der Stufen:

  1. der MBR kann ungültig sein, das heißt er enthält nicht die Adresse eines gültigen Bootloaders,
  2. auf der aktiven Partition findet sich kein Programm bootmgr, etwa weil eine alte Windows-Installation wieder ntldr darüber geschrieben hat,
  3. bootmgr kann den Boot-Speicher \Boot\BCD nicht lesen, weil dieser beschädigt wurde,
  4. es ist keine Partition aktiv, was für Windows ein Problem darstellt. Andere Be­triebs­sys­teme wie Linux werten das „Aktiv“-Attribut nicht aus und benötigen es nicht.

Reparatur mit diskpart und bootrec

Unter WinRE macht die automatische Sys­tem­start­repa­ra­tur im Allgemeinen einen wirklich guten Job, um diese 4 Probleme zu erkennen und zu beheben. Falls sie es doch einmal nicht tut, bleiben auf der WinRE-Kommandozeile 2 Tools, um das Problem manuell anzugehen: diskpart und bootrec.

  1. Ist der MBR ungültig, repariert dies der Befehl bootrec /FixMbr,
  2. bootmgr wird durch bootrec /FixBoot wiederhergestellt,
  3. einen komplett neuen Boot-Speicher baut bootrec /RebuildBcd, scannt danach nach Windows-Installationen und bietet die Möglichkeit, diese dem Boot-Speicher hinzuzufügen. Ist der Boot-Speicher an sich in Ordnung, und man will nur vermisste Einträge manuell hinzufügen, bietet bootrec /ScanOs einen nicht-schreibenden Modus, bei dem die beim Scan gefundene Systeme nur aufgeführt werden.
  4. Dass der Fehler an einem fehlenden „Aktiv“-Attribut liegt, erkennt man daran, dass die bootrec-Befehle der Punkte 2 und 3 den Fehler „Element not found“ ausgeben. In diesem Falle ruft man diskpart auf, und markiert mit der Befehlssequenz
    select disk 0
    select partition 1
    active
    exit
    etwa die erste Partition der ersten Festplatte als aktiv. 

Die Befehle haben den Vorteil, dass man sie auch ohne Ursachenforschung eben mal so ausprobieren kann. Befehl 3 zerstört zwar ein eventuell angepasstes Boot-Menü, was aber in Anbetracht eines nicht mehr startenden Servers sicherlich verschmerzbar ist

Mit bcdedit das Boot-Menü von Windows 7 konfigurieren Andreas Kroschel, 17.05.2010 Tags: Troubleshooting, Windows 7, VHD, Windows Server 2008, Recovery Tweet I like

Bcdedit Das Startmenü von Windows 7/2008 wird eigentlich erst dann interessant, wenn irgendetwas nicht funktioniert. Adminis­tratoren, die noch auf dem Stand der unter Windows XP/2003 verwendeten Boot-Konfigurationsdatei boot.ini sind, müssen ihre Kenntnisse schleunigst auffrischen. Windows Server 2008 R2, Windows 7 und Vista besitzen im Wurzel­verzeichnis keine Datei NTLDR mehr, die in den vorigen Versionen die boot.ini gelesen und ausgewertet hat. Folglich ignorieren sie eine vorhandene boot.ini, egal was darin verzeichnet sein mag. Microsoft hat im deutsch­sprachigen TechNet eine Befehls­referenz für bcdedit hinterlegt, die jede der einzelnen Optionen erklärt. BCD-Speicher, Objekte und Elemente

Was etwas zu kurz darin kommt, ist die Erläuterung der grundsätzlichen Funktionsweise und der Ablage der Daten. Statt in der Klartext-Datei boot.ini befindet sich die Boot-Information in der Datei \Boot\BCD der aktiven Partition, also meist nicht der Windows- sondern der versteckten reservierten System-Partition, die bei der Installation von Windows eingerichtet wurde.

Click here to find out more! Ähnlich wie in der Registry sind die bootbaren, in diesem Speicher registrierten Systeme als Datenbank-Struktur abgelegt. Microsoft spricht folglich nicht mehr von Zeilen oder Einträgen, sondern von Objekten und Elementen in diesem Speicher. Um ihn zu bearbeiten, muss man die System-Partition nicht sichtbar machen oder ihr einen Laufwerksbuchstaben verpassen.

Ein gestartetes Windows „weiß“, wo sich sein Boot-Speicher befindet, und das zu dessen Bearbeitung bereitgestellte Dienstprogramm bcdedit bearbeitet diesen auch direkt auf der versteckten Partition. Das trifft auch auf eine im Falle eines nicht mehr startenden Windows gebootete WinRE-Umgebung zu, sobald man in dieser die zu reparierende Windows-Installation ausgewählt hat.

Daneben kann man mit /createstore noch beliebige weitere Speicher („Stores“) erstellen und dort Systeme an- oder abmelden oder konfigurieren. Wirksam werden diese nicht – Windows richtet sich (noch) immer nach der aktiven Partition. Man kann jedoch die Daten aus einem solchen Nicht-System-Speicher exportieren und, etwa auf einem anderen System, in dessen Systemspeicher importieren. Bootmenü mit bcdedit bearbeiten

Bcdedit führt man immer innerhalb einer Eingabeaufforderung mit Administratorrechten aus. Tippt man es ohne oder nur mit der Option /enum ein, zeigt es die gegenwärtig zum Booten konfigurieren Systeme. Die TechNet-Referenz ist ein wenig knapp darüber, wie etwa das Hinzufügen eines weiteren Systems manuell konkret vonstatten geht.

Schneller weiter kommt man mit der exzessiven Angabe der Option /?, die jede papierne Dokumentation gut zu ersetzen vermag. Per bcdedit /? erfährt man, dass für das Hinzufügen beliebiger Objekte die Option /create zuständig ist, mit bcdedit /? create alle Optionen hierfür. bcdedit /? types und bcdedit /? formats gibt außerdem eine Übersicht über alle verwendbaren Optionen und deren Werte.

Boot-Eintrag löschen: Erst ermittelt man die GUID, dann verwendet man sie im LöschbefehlDamit kommt man im Prinzip schon durch alle Arbeitsschritte; ein wichtiges Prinzip muss man noch wissen: Bcdedit gibt bei der Erstellung von Einträgen jeweils eine GUID in geschweiften Klammern zurück. Diese gibt man bei allen Bearbeitungs­befehlen als ersten Parameter an, um jeweils zu spezifizieren, welcher Eintrag modifiziert werden soll. Anders als etwa diskpart, wo man erst den Fokus auf ein Objekt setzt, dann dort einen oder mehrere Bearbeitungs­schritte aus­führt und das Programm mit exit verlässt, kehrt bcdedit immer sofort auf den Prompt zurück, nachdem es die Aktion an dem so spezifizierten Eintrag durchgeführt hat. Beim Auflisten aller vorhandenen Einträge mittels /enum erfährt man alle GUIDs der gegenwärtig im Speicher vorhandenen Objekte. Das gerade gestartete System kann statt mit der numerischen ID auch mit {current} angesprochen werden, das voreingestellte auch mit {default}. bcdedit-Beispiel: Boot-Eintrag löschen

Mit Hilfe der GUID ist es eine einfache Übung, einen nicht mehr benötigten Boot-Eintrag zu löschen, etwa auf einer nicht mehr vorhandenen Partition. Mittels

bcdedit /enum

ermittelt man die GUID des überflüssigen Eintrages, kopiert sie in die Zwischenablage und löscht ihn mit

bcdedit /delete {GUID}

fertig. bcdedit-Beispiel: Booten von VHD

Um eine bootfähige VHD ins Startmenü einzubinden, verwendet man nicht /create, um einen neuen Startmenü-Eintrag komplett konfigurieren zu müssen, sondern kopiert den von Windows selbst:

bcdedit /copy {default} /d „VHD-Boot“

(GUID wird ausgegeben, in die Zwischenablage kopieren)

bcdedit /set {GUID} device vhd=[c:]\VHDs\Zweitsystem.vhd

bcdedit /set {GUID} osdevice vhd=[c:]\VHDs\Zweitsystem.vhd

Die Pfade und Dateinamen sind Beispiele, die Laufwerksangabe allerdings muss in die eckigen Klammern. Laut Microsoft ist man auf der sicheren Seite, per

bcdedit /set {guid} detecthal on

noch die HAL-Erkennung für den VHD-Boot einzuschalten, und mit

bcdedit /default {GUID}

kann man das VHD-System zur Voreinstellung beim Start machen.

 
 
         
         
   
(12359 views) windows_bcdedit_bootrec.txt · Zuletzt geändert: 2011/06/20 13:02 von terminar