Windows Start reparieren
Boot/BCD reparieren:[Bearbeiten | Quelltext bearbeiten]
Reparaturmedium starten dann [Shift] + F10 für Adminconsole
Mit Diskpart den Laufwerksbuchstaben ermitteln:
diskpart
list volume (vorhandene HDD/USB Laufwerk)
select disk 0 (aus der Liste das richtige Laufwerk wählen)
list volume (hier sind nun die Partitionen mit Laufwerksbuchstaben aufgelistet)
Am besten eine Foto machen....
bootrec /fixboot & /rebuildbcd
bcdboot D:\Windows
Windows 10: Behebung von INACCESSIBLE BOOT DEVICE
Wenn der Fehler angezeigt wird, startet Windows nach kurzer Zeit neu. Tritt der Fehler immer wieder auf, startet Windows die automatische Reparatur.
Wählen Sie hier die "erweiterten Optionen", klicken Sie auf "Problembehandlung" und wählen Sie erneut die "erweiterten Optionen".
Wählen Sie hier die "Starthilfe" und lassen Sie Windows seine Arbeit machen.
Wenn das nicht funktioniert, wählen Sie stattdessen die "Starteinstellungen" im selben Menü.
Tippen Sie dort auf die Schaltfläche [4], um Windows im abgesicherten Modus zu starten. Melden Sie sich bei Ihrem Benutzer an, starten Sie Windows neu, vielleicht ist das Problem dann auch verschwunden.
Wenn auch das nicht hilft, wählen Sie "Eingabeaufforderung" aus demselben Menü. Wählen Sie "Administrator" oder ein anderes Konto mit Admin-Rechten und geben Sie das Passwort ein.
Geben Sie in der schwarzen Konsole den Befehl "C:" ein und bestätigen Sie mit der [Enter]-Taste.
Geben Sie nun die entsprechenden Befehle ein: "CD Windows\System32", "CD config", "DIR", "CD RegBack", "DIR", "CD...".
Die folgenden Befehle sind "REN DEFAULT DEFAULT1", "REN SAM SAM1", "REN SECURITY SECURITY1", "REN SOFTWARE SOFTWARE1", "REN SYSTEM SYSTEM1".
Es folgen "CD RegBack" und "COPY * C:\Windows\System32\config". Verwenden Sie den Befehl "exit", um das Fenster zu schließen. Sie können Windows neu starten.
Mit den letzten Schritten wurde ein Backup der Registry eingespielt.
BCD-Bootdatei von einer EFI-Partition exportieren
Versuchen Sie, das System mit der Windows 7-DVD automatisch zu reparieren. Es ist besser, die folgende Methode zu verwenden, um die Boot-Datei von der EFI-Pariton auf Volume C: zu verschieben.
Öffnen Sie eine Befehlszeile: Klicken Sie auf Start, geben Sie cmd in das Suchfeld ein, klicken Sie mit der rechten Maustaste auf die Datei cmd.exe und wählen Sie Als Administrator ausführen. Geben Sie den folgenden Befehl ein:
1. Mkdir C:\Boot
2. Bcdedit /export C:\Boot\BCD
3. Bcdedit /store C:\Boot\BCD /set {bootmgr} device partition=C:
5. Bcdedit /store C:\Boot\BCD
-- Verify that the change took effect
6. Copy C:\windows\boot\pcat\bootmgr C:\
7. Attrib +h +s C:\bootmgr
( The following steps make drive C as active partition).
8. diskpart
9. list disk
10. select disk 0
Where disk 0 is drive C resided.
11. list volume
12. select volume *
Where volume * is drive C resided.
13. active
14. Reboot the server and now, in Disk Management you can use this EFI partition.
Hinweis: Möglicherweise müssen Sie den Server nach dieser Änderung erneut mit dem Produktschlüssel aktivieren, wenn Sie die Meldung erhalten haben, dass der Server aktiviert werden muss.
Partition in NTFS konvertieren
CONVERT driveletter: /FS:NTFS
MBR und dd[Bearbeiten | Quelltext bearbeiten]
Den Master Boot Record auf Festplatten mit dd lesen und schreiben.
Im Internet wird auf vielen Seiten gezeigt, wie man mit dd den MBR (Master Boot Record) einer Festplatte sichern und zurückschreiben kann. Was auf vielen Seiten fehlt, ist eine genauere Erklärung, was im MBR steht, damit Sie besser einschätzen können, unter welchen Bedingungen Sie was damit machen können und welche Alternativen es für einzelne Bereiche oder Abschnitte gibt. Aus diesem Grund soll hier etwas ausführlicher darauf eingegangen werden. Anmerkung:
Wir sprechen hier von BIOS-basierten Computern der x86-Architektur, es gibt durchaus andere Architekturen und Strukturen für andere Betriebssysteme und Plattformen, aber wir bleiben bei der typischen IBM-kompatiblen PC-Technik, mit der bis auf wenige Ausnahmen jeder Linux installiert haben wird.
Den MBR von z.B. der Festplatte /dev/hda könnte man wie folgt speichern:
Übersetzt mit www.DeepL.com/Translator (kostenlose Version)
dd if=/dev/hda of=/PATH/DATEI bs=512 count=1
Zurückspielen dieser Datei wieder in den MBR dieser Festplatte
dd if=/PATH/DATEI of=/dev/hda bs=512 count=1
Nur den Inhalt einmal hexadezimal anschauen, kann man zB so hier
dd if=/dev/hda bs=512 count=1 | hexdump -C | more
Wie wir aus den Befehlen herauslesen können, es handelt sich hier beim MBR um die ersten 512 Byte der Festplatte. Wie der Name es schon vermuten läßt, es hat irgend etwas mit dem booten zu tun. Und in der Tat, beim Start des Rechners, schaut das BIOS welches Medium soll ich booten, und dann läd er von diesem Medium genau diese 512 ersten Byte. Findet er darin etwas für ihn interessantes, dann versucht er damit den Bootvorgang zu starten. findet er nichts interessantes, dann schaut er ob noch weitere Medien konfiguriert und vorhanden sind, von denen er booten soll, und versucht dort sein Glück. Findet er dabei gar nichts brauchbares, dann kommt die Fehlermeldung, er hat kein Betriebssystem zum booten gefunden.
Was befindet sich nun in diesen ersten 512 Byte einer Festplatte?
Wir werden das hier mal von hinten aufrollen. ( Das erste Byte bezeichnen wir als Byte 0 demnach umfasst der Bereich den wir untersuchen Byte 0 bis Byte 511 )
Byte 510 (0x1fe) und Byte 511 (0x1ff) enthalten eine Kennung (auch MBR-Signatur genannt) die dem BIOS mitteilt, das was hier im MBR steht, ist für dich ein gültiger MBR oder ist nicht gültig als MBR. Das BIOS erkennt den MBR als gültig nur dann an, wenn dort 0x55 0xAA steht. Bei nicht bootfähigen Platten darf hier auch etwas anderes stehen, allerdings wurden schon BIOS-Versionen erwischt, die vorsichtshalber eine solche Platte dann gleich mal mit geringer Geschwindigkeit bedient haben, so dass hier prinzipiell immer dieser Wert stehen sollte, sollte es eine gültige Partitionstabelle geben. Die 64 Byte, Byte 446 bis Byte 509 (0x1be bis 0x1fd) dort befindet sich prinzipiell auf jeder Festplatte immer die Partitionstabelle für die Partitionen 1 bis 4 . Pro Partition 16 Byte das ganze 4 Mal. Nicht definierte Partitionen sind mit NULLEN gefüllt. Die Byte 444 (0x1bc) und Byte 445 (0x1bd) enthalten den Wert 0x0000 und dienen nur zur Trennung und dem Schutz der einzelnen Bereiche Der Bereich von Byte 0 bis Byte 443 (0x000 - 0x1bb) ist reserviert für einen Bootloader ( wobei in einigen Windowssystemen noch ein Teilbereich davon fest definiert ist Byte 440-443 (0x1b8 -0x1bb). hier befindet sich eine Disk-Signatur, mit deren Hilfe zB die Zuordnung zu den Laufwerksbuchstaben vorgenommen wird.) Es sind also in diesem Bereich maximal 444 Byte für einen Bootloader möglich. Beim Bootloader handelt sich dabei um ein kleines mittels Assemblerprogrammierung geschrieben ausführbares Programm. Dieser Bereich kann aber durchaus auch leer sein (alles NULL) es können aber auch zB. Bootloader dort installiert sein, die bei Versuch diesen zu starten nur über den BIOS auf den Bildschirm ausgeben, dass das Medium nicht bootfähig ist, oder Bootloader die nur einen anderen Bootloader von einer der Partitionen laden und diesen dann starten oder nur ein Auswahlmenu bringen, um daraus dann auf andere Bootloader zu verzweigen. Aber auch Bootvieren sind dort möglich. Wie die einzelnen Bootloader intern genau arbeiten ist recht unterschiedlich. Jedoch können sie alle nur auf die wenigen Funktionen des BIOS zugreifen und ihre Aufgabe ist es, damit den Betriebssystemkern auf der Platte in den Arbeitsspeicher zu laden und zu starten, oder ein oder mehrere (größere) Programme zu laden, die genau das können. In vielen Bootloadern ist deshalb genau hinterlegt oder festgeschrieben, in welchen physikalischem Bereich (genauer Block) der Festplatte sich die Datei befindet, die als nächstes geladen werden soll, denn die komplizierten Strukturen von Filesystemen würden natürlich in diese 444 Byte nicht hinein zu programmieren sein.
Schlussfolgerungen für das kopieren des MBR mittels dd
Daraus ergeben sich jetzt eine ganze Reihe von Beschränkungen für das so schön einfache kopieren des MBR wie es oben angegeben ist. Prinzipiell gilt, es wird mit dd direkt in einen sehr sensiblen Bereich der Festplatte hineinschreiben, und dabei kann keinerlei logische Überprüfung vorgenommen werden. Solche Vorgehensweisen und Methoden sollten deshalb möglichst immer erst das letzte Mittel der Wahl darstellen.
Das kopieren eines solchen MBR (512 Byte) auf die selbe Platte bringt nur Erfolg, wenn sich in der Zwischenzeit weder die Partitionstabelle noch der physikalische Ort (Block auf Festplatte) der Dateien geändert hat, die dieser Bootloader über den BIOS laden soll. Das kopieren eines solchen MBR (512 Byte) auf eine andere Platte macht nur dann Sinn, wenn es sich auch wirklich um eine identische Platte handelt. (Ausnahme wenn wir eine Platte durch eine größere Platte ersetzen müssten, und wir die Differenz sowieso nie benutzen möchten) Baugleiche Platten könnten ( ist im PC-Bereich eher die Ausnahmen) logisch anders organisiert sein, da die Festplattengeometrie wie wir sie sehen nicht mit dem physikalischen Aufbau der Platte gleich ist und die Platte das selbst verwaltet. Solche Differenzen könnten in Ausnahmefällen schon beim Erwerb gleicher Platten aus unterschiedlichen Bezugsquellen vorliegen, oder irgendwann einmal über Software manuell geändert worden sein. Es ist auch nicht gänzlich auszuschließen, daß der eine oder andere RAIDController durchaus auch einmal so eine logische Plattengeometrie geändert haben könnte. Ein kopieren einer Partitionstabelle mit andere logischer Geometrie könnte uU. durchaus dann zu defekten oder ungültigen Partitionstabellen führen. Wenn wir 512 Byte anfassen, sollten wir bedenken, das damit immer die Partitionstabelle der Partitionen 1-4 enthalten ist. Die logischen Partitionen jedoch nicht, und somit beim neu Beschreiben des MBR sogar verloren gehen können. Die Partitionstabelle wird in der Regel nur beim Start des Rechners oder bei speziellen Kommandos von Linux neu ausgelesen. Wird mit dd die Partitionstabelle geändert, dann arbeitet der Kernel nach wie vor nach der alten Partitionstabelle weiter. Wird also eine komplette Platte überschrieben, und anschließend eine Partition versucht zu mounten, dann wird der Kernel das Filesystem an einer eventuell falschen Stelle suchen. Im Windowsumfeld könnten unter Umständen geklonte MBR (und somit enthaltene gleiche Disk-Signatur auf unterschiedlichen Platten) im gleichen System zu instabilem Betrieb oder Bootproblemen führen.
Anwendungsbeispiele und Alternativen
Den Bootloader sollte man nach dem kopieren oder verschieben der Rootpartition am besten wieder mit den dafür vorgesehen Tools neu schreiben. Siehe dazu grub-install oder Grub-Install via "chroot" und Knoppix hier im Wiki, bei LILO gilt das analog, immer am Besten mit lilo wieder installieren, hilfreich sicher auch Lilo wieder herstellen hier im Wiki Die Partitionstabelle sollte man wenn möglich immer komplett (also auch die eventuellen logischen Partitionen) sichern und gegebenenfalls zurückschreiben oder clonen. Obwohl es nicht unmöglich ist, auch die logischen Partitionen mittels dd zu kopieren und wieder zurückzuschreiben, ist es so kompliziert, dass darauf verzichtet wird, es an dieser Stelle vorzustellen. Statt dessen soll hier auf den Artikel Partitionstabelle sichern und wiederherstellen verwiesen werden. Dort wird erklärt wie man die komplette Partitionstabelle mittels des Befehls sfdisk einfach und sicher speichern und wieder zurückschreiben kann.
Für die jetzt nur noch ganz wenigen verbleibenden Ausnahmen hier einige Beispiele (auf eigenen Gefahr) wie man mittels dd im MBR bestimmte Dinge erledigen kann. Wichtig:
nach jeder geschriebenen Manipulation an der Partitionstabelle mittels dd wird der Kernel so lange mit der alten Partitionstabelle weiterarbeiten, bis der Rechner wieder neu gebootet wurde, oder wir dem Kernel explizit dazu gezwungen haben die jetzt neue Partitionstabelle von der Platte neu einzulesen. Dazu darf keine Partition dieser Platte mehr gemountet sein und auch kein Swap auf dieser Platte aktiv, dann sfdisk -R /dev/PLATTE
Bootloader als Datei sichern und zurückschreiben
dd if=/dev/hda of=/PATH/DATEI bs=1 count=444 dd if=/PATH/DATEI of=/dev/hda bs=1 count=444
Bootloader mit Nullen überschreiben
dd if=/dev/zero of=/dev/hda bs=1 count=444
Partitionstabelle (nur Partitionen 1 bis 4) hexadezimal anschauen
dd if=/dev/hda bs=1 count=66 skip=446 | hexdump -C
Partitionstabelle (nur Partitionen 1 bis 4) als Datei sichern /zurückschreiben
dd if=/dev/hda of=/PATH/DATEI bs=1 count=66 skip=446 dd if=/PATH/DATEI of=/dev/hda bs=1 count=66 seek=446
Partitionstabelle (nur Partitionen 1 bis 4) auf andere Platte direkt kopieren (hda -> hdb)
dd if=/dev/hda of=/dev/hdb bs=1 count=66 skip=446 seek=446
Partitionstabelle löschen
dd if=/dev/zero of=/dev/hda bs=1 count=64 seek=446
Windows Disk-Signatur mit Nullen überschreiben
dd if=/dev/zero of=/dev/hdb bs=1 count=4 seek=440
MBR-Signatur wieder mit 0x55 0xAA beschreiben ( MBR wieder gültig machen)
echo -en "\x55\xaa" | dd of=/dev/hda bs=1 count=2 seek=510