anmelder
Goto Top

Fehler beim BCDEDIT Export und beim Neustart nach Löschung und Neuanlegung der EFI Partition

Hallo,

um nicht sinnlos Code zu posten erstmal nur die Frage:

Ich sichere unter WinPE meine EFI Einträge mit BCDEdit /export. Danach lösche ich die EFI Partition mit Diskpart und stelle die Einträge mit BCDEdit /import auf einer frischen EFI Partition wieder her. Ich erhalte hier den Fehlerlevel 1 weil nicht alle Einträge wiederhergestellt werden konnten, welche das sind erfahre ich aber nicht. Fehlen tut allerdings keiner wenn ich mir die vorhandenen Einträge anzeigen lasse.
Ob ich an dieser Stelle auch BCDBoot verwende weiß ich derzeit nicht genau, der Code ist lang und unübersichtlich. Ich denke aber eher nicht. Wenn es wichtig ist schaue ich nach.

Ich starte den Rechner neu und das Bios meldet daß kein startbares Laufwerk gefunden wurde. Ich bestätige mit OK und er macht irgendetwas, danach bietet er mir den Windows Bootloader an, welchen ich auswähle. Die Alternative war glaube ich der Netzwerkboot. Danach ist der Bootmanager normal einsatzfähig.

Ist dieses Rechnerverhalten normal weil der Bootmanager erneuert wurde aber dem UEFI Bios noch unbekannt ist oder was könnte den Fehler verursachen? Kann es durch diese Fehler zu Problemen oder gar unbenutzbaren Rechnern kommen oder ist es garantierbar auf allen Rechnern harmlos?

Wenn die gesamte Festplatte neu partitioniert wird habe ich den Fehler bei booten nicht obwohl der gleiche Code durchlaufen wird. Nur der Diskpart Code unterscheidet sich.

Content-ID: 537538

Url: https://administrator.de/forum/fehler-beim-bcdedit-export-und-beim-neustart-nach-loeschung-und-neuanlegung-der-efi-partition-537538.html

Ausgedruckt am: 22.12.2024 um 16:12 Uhr

TK1987
Lösung TK1987 21.01.2020, aktualisiert am 24.01.2020 um 17:31:42 Uhr
Goto Top
Zitat von @anmelder:
Ist dieses Rechnerverhalten normal weil der Bootmanager erneuert wurde aber dem UEFI Bios noch unbekannt ist oder was könnte den Fehler verursachen?
Nein, ist es nicht. Entweder ist deine EFI-Partition nicht korrekt als solche eingestellt, oder der EFI-Eintrag selbst ist nicht korrekt.
Ich starte den Rechner neu und das Bios [...]
UEFI bitte, BIOS war der Vorgänger.
[...] meldet daß kein startbares Laufwerk gefunden wurde. Ich bestätige mit OK und er macht irgendetwas, danach bietet er mir den Windows Bootloader an
Ohne den Mainbordhersteller zu kennen würde ich mal vermuten, beim klicken auf OK wird eine Autoreparatur gestartet.
Kann es durch diese Fehler zu Problemen oder gar unbenutzbaren Rechnern kommen oder ist es garantierbar auf allen Rechnern harmlos?
Sofern der PC beim nächsten Reboot nicht wieder meldet, dass er kein startbares Laufwerk gefunden hat, ist alles gut.
Wenn die gesamte Festplatte neu partitioniert wird habe ich den Fehler bei booten nicht obwohl der gleiche Code durchlaufen wird. Nur der Diskpart Code unterscheidet sich.
Ins Blaue geraten würde ich sagen, du hast bei Diskpart vergessen auf die neue EFI-Partition
set ID c12a7328-f81f-11d2-ba4b-00a0c93ec93b
anzuwenden. Siehe hier.

Gruß TK1987
anmelder
anmelder 21.01.2020 um 16:28:06 Uhr
Goto Top
Die ID habe ich tatsächlich nicht gesetzt. Ich habe das Beispiel "Sample DiskPart Script: Recommended Configuration" unter UEFI verwendet, da gibt es diese ID nicht.

Die Partition wurde mit
create partition efi size=260
angelegt. Ich dachte die richtige Partition ID wird durch diesen Befehl automatisch angelegt. Ist das nicht so? Hier steht auch nicht daß man die ID noch angeben soll:
Create Partition efi

Eine Autoreparatur wird es wohl sein, deshalb befürchte ich daß es Rechner geben kann die das nicht reparieren können und im schlimmsten Fall Elektroschrott sind. Das Script muß aber zwingend auf jeden Rechner laufen. Der Fehler muß also gefunden und beseitigt werden. Es bringt nichts wenn es nur bei mir läuft.
TK1987
TK1987 21.01.2020 aktualisiert um 17:10:04 Uhr
Goto Top
Zitat von @anmelder:
Die ID habe ich tatsächlich nicht gesetzt. Ich habe das Beispiel "Sample DiskPart Script: Recommended Configuration" unter UEFI verwendet, da gibt es diese ID nicht.

Die Partition wurde mit
create partition efi size=260
angelegt. Ich dachte die richtige Partition ID wird durch diesen Befehl automatisch angelegt. Ist das nicht so? Hier steht auch nicht daß man die ID noch angeben soll:
Create Partition efi
Naja, da steht ja auch "To prepare to deploy a Windows® image to a new PC, you can create partitions by using a DiskPart script."
Das Script ist dafür gedacht, einen PC auf eine Neuinstallation vorzubereiten - bei einer solchen wird die ID auf jeden Fall gesetzt. Wenn du die EFI-Partition nachträglich anlegst, musst du das selber tun. Darüber hinaus rasiert dir das Script mit
select disk 0
clean
doch auch die komplette Festplatte leer.
Eine Autoreparatur wird es wohl sein, deshalb befürchte ich daß es Rechner geben kann die das nicht reparieren können [...]
korrekt.
[...] und im schlimmsten Fall Elektroschrott sind.
Naja reparieren kann man das immer, solange ein Bootmedium vorhanden ist (und die Systempartitionen unverändert sind).
Das Script muß aber zwingend auf jeden Rechner laufen.
Dir ist aber schon klar, dass auch der Befehl "select disk 0" gefährlich werden kann, sobald mehr als nur eine Festplatte verbaut ist?!
Sowas komplett automatisiert machen zu lassen, noch dazu Rechnerübergreifend, wäre mir zu gefährlich.
anmelder
anmelder 21.01.2020 um 18:07:06 Uhr
Goto Top
Ich werde die ID mal einbauen. Bis ich das testen kann vergehen aber ein paar Tage. Ich melde mich dann hier zurück.


Zitat von @TK1987:
Dir ist aber schon klar, dass auch der Befehl "select disk 0" gefährlich werden kann, sobald mehr als nur eine Festplatte verbaut ist?!
Sowas komplett automatisiert machen zu lassen, noch dazu Rechnerübergreifend, wäre mir zu gefährlich.

Ich habe schon einmal darüber nachgedacht. Aber wenn man einen Rechner baut steckt man doch die Platte von der gestartet wird immer an den ersten Anschluß und diese wird doch immer als Disk 0 erkannt? Oder kann diese Platte von Diskpart auch mal als Disk 1 aufgelistet werden wenn sie mal eine höhere Antwortzeit hat, z.B. wenn sie älter wird?
Ein großes Problem ist das ja nicht. Man könnte eine FOR /f Abfrage machen ob auf Disk 0 eine SYSTEM Partition existiert, wenn ja, wird diese verwendet, wenn nein wird weitergesucht. Wirklich sicher wäre aber auch das nicht. Ich habe schon einmal eine externe Platte gehabt auf der aus irgendeinem Grund eine SYSTEM Partition angelegt wurde. Grundsätzlich könnten also beide internen Festplatten eine UEFI Partition haben.
TK1987
TK1987 21.01.2020 aktualisiert um 18:32:13 Uhr
Goto Top
Zitat von @anmelder:
Ich habe schon einmal darüber nachgedacht. Aber wenn man einen Rechner baut steckt man doch die Platte von der gestartet wird immer an den ersten Anschluß und diese wird doch immer als Disk 0 erkannt?
Nein. Ist zwar die Regel, aber ich habe auch schon Fälle erlebt, in denen die Reihenfolge anders erkannt wurde.
Ein großes Problem ist das ja nicht. Man könnte eine FOR /f Abfrage machen ob auf Disk 0 eine SYSTEM Partition existiert, wenn ja, wird diese verwendet, wenn nein wird weitergesucht.
Wohl ein Problem. Hast du zum Beispiel eine Recoverypartition auf einem Rechner, kann auch die fälschlicher Weise erkannt werden. Darüber hinaus können auch durchaus 2 Betriebssysteme vorhanden sein... auch auf jeder Festplatte eins etc.

Du solltest auch mal bedenken, warum es eigentlich kein Universal-Tool gibt, was sowas zu 100% automatisiert erledigt.
Es gibt Tools, die sowas weitestgehend regeln - ohne aber zumindest mal eine Warnung nach dem Motto "Vorsicht Datenverlust - Prüf doch sicherheitshalber mal ob die Partitionen korrekt erkannt wurden" kommt keins davon aus.
Es wird immer Fälle geben, in dem dein Skript im besten Fall noch einfach nur nicht funktioniert, im schlimmsten Fall nämlich groben Bockmist anstellt.

Hinzu kommt das Problem bei Systemen, die in MBR installiert sind. Diskpart kann nämlich nur leere Festplatten in GPT konvertieren. Zumal alte Rechner unter Umständen EFI auch gar nicht booten können usw.
mayho33
mayho33 22.01.2020 aktualisiert um 04:05:28 Uhr
Goto Top
Zitat von @anmelder:
Aber wenn man einen Rechner baut steckt man doch die Platte von der gestartet wird immer an den ersten Anschluß und diese wird doch immer als Disk 0 erkannt? Oder kann diese Platte von Diskpart auch mal als Disk 1 aufgelistet werden wenn sie mal eine

In Zeiten von SATA ist es nicht mehr relevant ob die Systemplatte an Anschluss 0 oder Anschluss 4 hängt.

SATA ist Gleichberechtigt. M2 Anschlüsse bilden da vielleicht noch eine Ausnahme.
Das war bei IDE noch maßgeblich (Master, Slave und eigenem Bridging an der HDD)

Im BIOS, Uefi kann zusätzlich die Bootreihenfolge eingestellt werden.

Steckt man ein Platte am SATA 2 an und setzt die Maschine dann auf ist diese Platte trotzdem C:, in der logischen Reihenfolge aber Disk 1.

Grüße!
anmelder
anmelder 24.01.2020 aktualisiert um 11:56:26 Uhr
Goto Top
Hallo,

TK1987 hatte Recht, der Fehler wurde durch die fehlende ID verursacht.

Für das andere Problem erstelle ich einen neuen Beitrag, ich muß da noch etwas testen. Danke

P.S. Für die Plattenerkennung lasse ich mir etwas einfallen, das sollte lösbar sein.