Wie verwende ich BCDEdit zum Dual-Booten von Windows-Installationen?

29

Welche bcdeditBefehle sind erforderlich, um den Dual-Boot-Modus zwischen verschiedenen Windows-Installationen einzurichten? 5

Hintergrund

Ich habe kürzlich Windows 8 auf einer separaten Festplatte 1 installiert . Nachdem Windows 8 installiert ist, möchte ich wieder auf Windows 7 zurückgreifen.

Ich habe meine zwei 2 - Festplatten:

Screenshot des Windows-Partitionsmanagers

Sie sehen also, dass ich zwei Festplatten mit den Partitionen habe, die Windows enthalten:

  • Windows 7 : \\PhysicalDisk0(Partition 0 3 )
  • Windows 8 : \\PhysicalDisk2(Partition 1)

Ich versuche herauszufinden, wie ich bcdeditdas Ding, das Windows bootet, anweisen kann, dass es eine andere Windows-Installation gibt.

Wird bcdeditgerade ausgeführt, zeigt es die aktuelle Konfiguration an:

C:\WINDOWS\system32>bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
integrityservices       Enable
default                 {current}
resumeobject            {ce153eb7-3786-11e2-87c0-e740e123299f}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.exe
description             Windows 8
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {ce153eb9-3786-11e2-87c0-e740e123299f}
integrityservices       Enable
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {ce153eb7-3786-11e2-87c0-e740e123299f}
nx                      OptIn
bootmenupolicy          Standard
hypervisorlaunchtype    Auto

Ich kann keine Dokumentation zum Unterschied zwischen Windows Boot Manager und Windows Boot Loader finden .

Dokumentation

Es gibt einige Unterlagen zu Bcdedit:

Sie erklären jedoch nicht, wie die binären Startkonfigurationsdaten bearbeitet werden.

Wenn ich raten müsste, würde ich denken, dass ein Windows- Start- Manager das BIOS anweist, welches Programm es ausführen soll. Dieses Programm würde dem Benutzer eine Reihe von Boot-Optionen geben. Damit bleibt Windows Boot Loader eine bestimmte Boot- Wahl , die eine bestimmte Installation von Windows darstellt.

In diesem Fall muss ein neuer Windows-Bootloader- Eintrag erstellt werden.

Dies bedeutet, dass ich möglicherweise den folgenden /createParameter verwenden möchte :

/erstellen

Erstellt einen neuen Starteintrag:

Bcdedit [/ store Dateiname ] / erstellen [ id ] / d Beschreibung [/ Anwendung apptype | / inherit [ apptype ] | / DEVICE erben | / Gerät ]

Daher gehe ich von einer Syntax aus:

>bcdedit /create /d "The old Windows 7" /application osloader

Wo applicationkann einer der folgenden Typen sein:

Apptype     Description
BOOTSECTOR  The boot sector application
OSLOADER    The Windows boot loader
RESUME      A resume application

Leider über die einzige Dokumentation osloaderist „Der Lader Windows - Boot“ . Ich sehe nicht, wie das zwischen Windows 8 auf einer Festplatte und Windows 7 auf einer anderen unterscheiden kann.

Der andere mögliche Parameter bei /createeinem Bootloader ist

>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"

Leider fehlt die Dokumentation für /device:

/Gerät

Wahlweise. Wenn id nicht auf einen bekannten Bezeichner festgelegt ist, die Option, mit der der neue Starteintrag als zusätzlicher Eintrag für Geräteoptionen angegeben wird.

Da ich keinen idbekannten Bezeichner festgelegt habe, muss ich / device auf "die Option festlegen, mit der der neue Starteintrag als zusätzlicher Geräteoptionseintrag angegeben wird" . Ich kenne all diese Worte. Sie sind alle Engländer. Aber ich habe keine Ahnung, was es sagt; diese Wörter in dieser Reihenfolge scheinen unsinnig.

Also bin ich etwas angeschlagen. Ich möchte nicht wie Dan Stolts von Microsoft sein, der beim Versuch, BCDEdit zu verwenden, seine Festplatten zerstört hat :

Ich habe keine Inhalte gefunden, die mir beim Spielen mit BCDEdit besonders geholfen haben. Dieser Beitrag wäre ok gewesen, wenn es viel mehr ins Detail vor allem auf dem / set Befehl osdevice ist usw. Also , wenn ich habe meine Maschine befestigt, dokumentierte ich die Lösung und die Informationen sind hier ... .

Ich meine, wenn ein Microsoft-Typ nicht einmal herausfinden kann, wie man BCDEdit verwendet, um sein BCD zu bearbeiten, welche Chance habe ich dann?

Bonus Lesung

Fußnoten

  • 1 Da der Windows 8 - Installer beschädigt würde mein Windows 7 installieren, habe ich beschlossen , meine ziehen „main“ Festplatte während der Installation. Dies ist eine langatmige Erklärung dafür, warum das Windows 8-Installationsprogramm die vorhandene Windows 7-Installation nicht erkannt hat. Normalerweise hätte das Installationsprogramm die erforderlichen Einträge für Dual-Boot automatisch erstellt. Nicht, dass der Grund , warum ich die Frage stelle, wichtig wäre.
  • 2 Eigentlich gibt es drei Laufwerke, aber das dritte ist nur Massenspeicher. Das Vorhandensein einer dritten Festplatte ist für die Frage unerheblich. Ich erwähne es nur für den Fall, dass jemand wissen möchte, warum der Screenshot 3 Festplatten hat, wenn ich nur zwei erwähne.
  • 3 Ich habe willkürlich damit begonnen, Partitionen bei "Null" zu nummerieren . Dies bedeutet nicht, dass Partitionen ab Null nummeriert werden. Ich erwähne nur Partitionen, weil ich nicht weiß, wie ein Bootloader seine Aufgabe erfüllen kann, ohne zu wissen, in welcher Partition und in welchem ​​Ordner sich eine Windows-Installation befindet.
  • 4 Ich frage nach BCDEdit. Ich habe Visual BCD Editor ausprobiert . Es scheint sich um einen visuellen BCD-Editor zu handeln. Dies bedeutet, dass es sich um eine grafische Benutzeroberfläche handelt, die jedoch dieselbe Terminologie wie BCDEdit verwendet und dasselbe Wissen erfordert, das BCD nicht dokumentiert.
  • 5 Der Einfachheit halber nehmen wir an, dass alle Installationen von Windows, zwischen denen ich einen Dual-Boot ausführen möchte, Windows Vista oder höher sind, wodurch sie alle mit BCDEdit und dem binären Bootloader kompatibel sind. Die Alternative würde erfordern, sich mit den Feinheiten der alten zu beschäftigen ntloader. Ich frage auch nicht nach einem Dual-Boot unter Linux. oder wie man ein Virtual Hard Drive (vhd) Image bootet. Nur moderne Versionen von Windows auf vorhandenen Festplatten auf demselben Computer.
Ian Boyd
quelle

Antworten:

16

Dies ist keine direkte Antwort auf die Frage vor "Hintergrund", sondern verweist auf eine alternative Lösung zum Erstellen von Ladeeinträgen zum Booten von zwei (und mehr) Windows Vista und späteren Betriebssystemen. Bitte beachten Sie auch meine zweite Antwort über die in Visual BCD verwendete Terminologie.

Keine Anleitungen, Geräte, Objekte, Elemente und bla, bla, bla.

Mein Hintergrund (bei Interesse überspringen und weiter unten zur Lösung gehen):

Ich habe Visual BCD Editor implementiert.

Während des Implementierungsprozesses musste ich alle verfügbaren Quellen auf der bcdedit- und WMI-BCD-Provider-Schnittstelle lesen (Programmierschnittstelle, kann mit C ++, C # verwendet werden). Die Dokumentation von Microsoft ist wirklich schlecht.

Im BCD befinden sich Objekte (Lader, Einstellungen, Geräteelemente). Es gibt keine Dokumentation über die Verbindungen zwischen Objekten, obwohl Abhängigkeiten bestehen.

Es gibt mehr als 140 (!) Elemente (Eigenschaften) von BCD-Objekten in Windows 7. Ich kenne die Bedeutung einiger Elemente nicht - es gibt einfach keine Dokumentation.

In Windows 8 gibt es neue Elemente - ich denke, die Gesamtzahl nähert sich jetzt 180 (!!). Keine Dokumentation.

Auf der anderen Seite gibt es zwei sehr leistungsfähige Dienstprogramme zum Manipulieren des BCD: bcdboot und reagentc.

bcdboot - erstellt / repariert den Standard-Loader sowie die gesamte BCD- und Boot-Umgebung!

reagentc - installiert / deinstalliert die Wiederherstellungsumgebung (winre.wim)

Beide Tools sind auch nicht sehr gut dokumentiert.

Alternative Lösung:

Es ist so gut wie nicht erforderlich, dass Sie bcdedit verwenden, da Sie mit bcdboot Loader für Windows Vista und neuere Windows-Betriebssysteme erstellen können. Sie erstellen Loader für das früheste Betriebssystem.

Angenommen, Sie arbeiten unter Windows 8:

1. bcdboot f: \ windows (dies entspricht Windows 7 wie auf dem betreffenden Bild)

2. bcdboot c: \ windows (dies entspricht Windows 8)

Getan !

Grundregel von Microsoft für den Startvorgang: Die Startumgebung (und BCD) sollten sich immer auf [erste Festplatte + aktive Partition] befinden. (auf dem Bild - Disk 2 => Erste Diskette in der BIOS-Startsequenz!)

Last but not least gibt es das Dienstprogramm bootsect zum Schreiben von MBR und PBR (Master- und Partitions-Boot-Record) - jetzt Standard in Windows 8 (war früher nur in WinRE verfügbar).

Wenn Sie also nur bootsect und bcdboot verwenden, können alle Boot-Einheiten für ein Dual-Boot-System erstellt / repariert werden.

Ich denke, der Startvorgang für Vista und höher ist auf vielen Internetseiten sehr gut beschrieben, sogar auf Microsoft.com.

Hinweis:

Eine der besten Websites zu Windows BCD ist die Website von Geoff Chappell - dort finden Sie detailliertere Informationen als auf Microsoft.com. Interessierte Benutzer finden dort nützliche Informationen und einige wichtige Hinweise zur Dokumentation von bcdedit.

snayob
quelle
9

Beim Formatieren des Laufwerks C: zur Neuinstallation von Windows wurde der Master-Boot-Datensatz gelöscht, und das Windows 7-Installationsprogramm konnte ihn nicht wiederherstellen. Ich könnte ein GUI-BCDedit-Tool wie Visual BCD Edit verwenden, aber warum sollte ich etwas installieren müssen, wenn es einen einfachen Befehl im bcdedit consol-Programm geben sollte, der die Arbeit erledigen kann? Nach langem Durchsuchen der Online-Hilfedateien gab ich bcdedit auf und fand die Antwort hier in Digressions begraben. Um einen Boot-Eintrag für die zweite Partition zu erstellen, müssen Sie bcdboot verwenden

Angenommen, Sie befinden sich in C: \ Windows:

1. bcdboot e: \ windows

2. bcdboot c: \ windows

Beim Neustart wird das Windows-Startmenü mit zwei Einträgen für Windows 7 angezeigt. Wenn Sie den Eintrag auswählen, der in C: \ Windows startet, können Sie den Eintrag für diese Partition umbenennen mit:

bcdedit / set {current} beschreibung "Windows 7 (Partition 1)"

Dies macht das beim Start gebootete Betriebssystem zum Standardeintrag im Boot-Menü:

bcdedit / default {current}

Dadurch wird das Standard-Betriebssystem beim Start als erstes Element im Startmenü festgelegt

bcdedit / displayorder {default} / addfirst

Oder Sie können das Betriebssystem beim Start zum ersten Element im Startmenü machen:

bcdedit / dispalyorder {current} / addfirst

Starten Sie nun neu und wählen Sie den zweiten Punkt im Boot-Menü, der mit "Windows 7" beschriftet sein soll. Nach dem Booten in E: \ Windows das beim Start gebootete Betriebssystem umbenennen:

bcdedit / set {current} beschreibung "Windows 7 (Partition 2)"

Testen Sie, ob das Startmenü ordnungsgemäß funktioniert, und speichern Sie die BCD-Daten auf einer Partition, auf der kein Betriebssystem installiert ist:

bcdedit / export D: \ Saved_BCD_Settings \ SavedBCD

Wenn Sie es später vermasseln, können Sie das BCD-Boot-Menü wiederherstellen mit:

bcdedit / import D: \ Saved_BCD_Settings \ SavedBCD

Motorradjunge
quelle
Mein Motorradjunge, du wiederholst gerade meine Antwort, die ich vor einem Monat gegeben habe. -1.
Snayob
@snayob, ich schätze deine Antworten (+1), aber Motorcycleboy geht ein bisschen detaillierter auf Befehle ein, nachdem man die Boot-Einträge erstellt hat. In dieser ganzen Diskussion fehlt etwas, wofür der entsprechende Befehl bcdeditsteht bcdboot e:\windows(siehe hier für die Frage)
Davor Josipovic
Ich glaube nicht, dass es ein Äquivalent zu bcdedit-Befehlen für "bcdboot e: \ windows" gibt, wenn bcdboot die gesamte Boot-Umgebung kopiert und repariert (bootmgr + \ boot folder + repariert BCD + fügt einen Eintrag für das angegebene Betriebssystem hinzu)
snayob
{current}funktioniert nicht.
Orient
5

Einige Anmerkungen zu Kritikern in der ursprünglichen Frage zur Verwendung derselben Terminologie in Visual BCD, die Microsoft für bcdedit verwendet.

Das BCD-Konzept wurde von Microsoft entwickelt. Es kommt mit einer eigenen Terminologie. Ich glaube nicht, dass ich das ändern kann. Ich kann es nur verlängern.

Microsoft hat zwei Möglichkeiten für den Zugriff auf / das Bearbeiten von BCD angegeben:

  1. Verwenden von bcdedit.exe - Befehlszeilenschnittstelle
  2. BCD WMI Provider-Schnittstelle - Programmatische Schnittstelle

Beide Schnittstellen sprechen von BCD-Objekten und -Elementen. Dies ist ein allgemeines Konzept, das sowohl in der Programmierung als auch in anderen Bereichen des Menschen verwendet wird. Wir könnten sogar zur Philosophie gehen, die die Terminologie von Objekten, Eigenschaften und Beziehungen zur Beschreibung der Welt und des Universums verwendet.

Der Zugriff auf BCD-WMI-Provider ist flexibler, da ein Programmierer auf jedes Objekt und Element in BCD zugreifen und frei darauf zugreifen kann.

Visual BCD nutzt die BCD-WMI-Anbieterschnittstelle in vollem Umfang und implementiert den Zugriff auf dieselbe Weise, wie wir ihn für den Zugriff auf die Windows-Registrierung mit regedit.exe verwenden. Darüber hinaus automatisiert das Tool zwei Hauptaufgaben - die Erstellung von Loadern und die Reparatur von Dual-Boot-Systemen . Kein anderes Tool bietet eine solche automatische Ein-Klick-Funktionalität . Ich würde sagen, das ist eine neue Terminologie und eine neue Abstraktionsebene . Ich würde die von Microsoft erstellte Basis nicht ändern, ich kann nur darauf aufbauen.

Anfänger klicken einfach auf eine Schaltfläche und eine komplexe Operation wird ausgeführt! Es wird kein Hintergrund benötigt! Sie müssen nicht einmal wissen, wie viele Windows-Versionen Sie installiert haben - das Tool versucht, alle zu finden und dann Lader für sie zu erstellen, wenn entsprechende Lader nicht bereits in BCD vorhanden sind - die verwendete Terminologie - "Erstellen fehlender Windows-Lader" - I Denke, jeder, der Englisch spricht, könnte einen solchen Vorgang verstehen / klicken / bestätigen oder irre ich mich?

Die Komplexität von Objekten und Elementen in BCD liegt auf der Hand, da das Konzept das Booten neuerer und älterer Windows-Betriebssysteme sowie fremder Betriebssysteme wie Linux, Unix usw. umfasst. Darüber hinaus handelt es sich um ein allgemeines Konzept für das Booten von MBR und EFI auf einer Vielzahl von Geräten.

Der komplexeste Teil von BCD ist das Gerätekonzept . Sie haben ein Partitionsgerät, ein Ramdisk-Gerät, ein Dateigerät, ein Gerät suchen - Sie müssen einige Zeit damit verbringen, es zu verstehen, und ich denke nicht, dass dies für den normalen Windows-Benutzer ist. Die Foren sind voll mit Fragen zu Festplattenpartitionen, was ein weitaus weniger komplexes Thema ist. Viele Windows-Benutzer kennen beispielsweise den Unterschied zwischen einer primären und einer logischen Partition gar nicht. Sie müssen sich mit Partitionen auskennen, wenn Sie Dual- / Multi-Booten möchten. Sie müssen Land kaufen, wenn Sie ein zweites Haus bauen möchten.

Das BCD-Konzept ist seit Vista dasselbe - in Windows 7/8 werden nur neue Elemente definiert.

Ich denke, dass die Registrierungsstruktur für BCD ausgewählt wurde, da Windows diese Schnittstelle bereits implementiert und es sich um eine zuverlässige Transaktionsschnittstelle handelt, die erwiesenermaßen über die Jahre funktioniert. Ob das Windows-Registrierungskonzept im Allgemeinen ein gutes oder ein schlechtes Konzept ist, ist ein anderes Thema.

Es ist Aufgabe des Programmierers / Entwicklers, eine benutzerfreundlichere Oberfläche zu erstellen. Ich begann damit, dasselbe Interface zu geben - ein GUI-Äquivalent zu bcdedit - später kann das Interface auf einer höheren Ebene basierend auf Verwendungsmustern abstrahiert werden. Eine strukturierte Ansicht von BCD ist bereits implementiert. Dies ist die Basisabstraktionsschicht.

Die nächste Abstraktionsebene besteht darin, sich auf die Beziehungen zwischen Objekten zu konzentrieren, da dieses Thema von Microsoft nicht behandelt wird. Keine leichte Aufgabe. Mit der Abstraktion kommt eine neue Terminologie.

snayob
quelle
Ich verstehe, dass BCD ein sehr leistungsfähiges System mit vielen komplexen Optionen umfasst. Andererseits denke ich, dass ich eine sehr einfache Frage habe, die viele Menschen im Laufe der Jahre gestellt haben - aber nie gelöst werden konnten. "Ich habe Windowshier und eine andere da Windowsdrüben. Wie kann ich zwischen ihnen booten?" Statt eines vollständigen Tutorials zu allen Optionen von BCDEdit hoffte ich auf die Befehle, die nur dieses eine (scheinbar einfache) Problem lösen können. Vielleicht fast etwas so einfaches wie msconfig, außer es Sie können einige der auf einen anderen Windows installieren und es wird es für Sie hinzuzufügen.
Ian Boyd
Ich muss sagen, Ihr Tool ist viel leistungsfähiger als EasyBCD.
Milind R
3

Sie benötigen einen BCDEdit /setBefehl zum Konfigurieren des Startvolumes. Fügen Sie dann den Eintrag zum Windows Boot Manager-Betriebssystemmenü hinzu, indem Sie den BCDEdit /displayorderBefehl aufrufen .

bcdedit / set {ntldr} Gerätestart

Es wird auch die Partition des anderen Betriebssystems oder den folgenden Befehl identifizieren

bcdedit / set {ntldr} Gerätepartition = C:

In der folgenden Zeile wird der Eintrag durch Hinzufügen zum Menü startfähig gemacht

bcdedit / displayorder {ntldr} / addlast

Sie können überprüfen, ob der neue Eintrag im Startmenü angezeigt wird, indem Sie den Befehl ausführen bcdedit /enum ACTIVEund nach dem Windows Legacy OS Loader-Eintrag suchen.

Hinweis : Der /createBefehl wird verwendet, um ein Nicht-Microsoft-Betriebssystem zum Bootloader-Eintrag hinzuzufügen.

Weitere Informationen hierzu finden Sie in diesem Quellartikel


Zu Ihrer Frage zu " Unterschied zwischen Windows-Bootloader und Bootmanager "

Aus Wikipedia

Der Windows NT-Startvorgang wird gestartet, wenn der Computer einen Windows-Bootloader findet, einen Teil des Windows-Betriebssystems, der für das Auffinden und Starten von Microsoft Windows verantwortlich ist. Auf IA-32- oder x64-Systemen heißt der Bootloader Windows Boot Manager (BOOTMGR). Vor Windows Vista war der Bootloader jedoch NTLDR.

Siehe auch auf technet .


Visual BCD Editor ist eine erweiterte GUI-Version des Windows-Dienstprogramms bcdedit.

Es ist das erste GUI-Tool, das die vollständige Bearbeitung des BCD-Speichers (Windows 7 / Vista Boot Configuration Data) implementiert.

Download-Seite für den visuellen BCD-Editor.

Versuchen Sie, die Option im Tool zu reparieren.

avirk
quelle
Informationen zum Windows-Start-Manager : Der Windows-Start-Manager ist im Grunde ein Mini-Betriebssystem, das Ihre Starterfahrung steuert und es Ihnen ermöglicht, die auszuführende Startanwendung auszuwählen. Es gibt verschiedene Startanwendungen (z. B. Windows Boot Loader), die jeweils unterschiedliche Aktionen ausführen. Beispielsweise lädt eine Windows-Bootloader-Anwendung Windows. [...] Wenn Sie beispielsweise zwei verschiedene Versionen von Win7 auf verschiedenen Partitionen installiert haben, werden zwei Windows-Bootloader-Einträge angezeigt. (von hier genommen )
Davor Josipovic
3

Obwohl alt, möchte ich die Antworten ergänzen, da einige der obigen Antworten falsche Informationen enthalten. Sie funktionieren wahrscheinlich, aber Sie brauchen auf keinen Fall ein externes Programm, oder auch nur bcdboot, um es zu tun. Als Referenz sind die korrekten Informationen wie folgt:

Schneller BCD-Hintergrund, falls neu

BCD ist die Windows-Startkonfiguration. Es enthält zahlreiche Abschnitte, die jeweils durch einen Namen ("Beschreibung" genannt) und einen Bezeichner gekennzeichnet sind, der ungefähr so ​​aussieht: "{0743bb44-fda6-11e3-90c8-e3ee27f3aec6}".

Es gibt mehrere "bekannte Bezeichner", und bcdedit verwendet diese stattdessen, wo immer dies möglich ist (es sei denn, Sie verwenden die /v (ausführliche) Option mit /enum). Sie sehen folgendermaßen aus: "{bootmgr}", "{memdiag}". Dies sind nur Kurznamen für vollständige Bezeichner, die jedoch einfacher zu verarbeiten sind. Sie können entweder verwenden.

Sie können diese Abschnitte mit dem folgenden Befehl Liste (die „alle“ ist optional , aber ohne es wird nicht eine vollständige Liste sehen): bcdedit /enum all.

Typische Ausgabe:

C:\Windows\system32>bcdedit /enum all

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {92b1a1b0-c023-11e3-b3f1-ec4d94108574}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {92b1a1b2-c023-11e3-b3f1-ec4d94108574}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {92b1a1b0-c023-11e3-b3f1-ec4d94108574}
nx                      OptIn

Um die Identifizierung von Geräten zu vereinfachen, wird ein Format wie das folgende verwendet \Device\HarddiskVolume2, die Partition wird jedoch anhand des Buchstabens ("C:") erkannt, wenn eine zugewiesen ist.

Die von erstellte Liste /enum allbeginnt mit einem optionalen Abschnitt für den Firmware-Boot-Manager (wenn Ihr Motherboard über EFI verfügt). Sein Kurzname ist "{fwbootmgr}" . Es steuert die anfängliche EFI-Startauswahl (ob der normale Windows-Start-Manager oder bestimmte Geräte verwendet werden sollen). Im Allgemeinen können Sie {fwbootmgr}, falls vorhanden, ignorieren.

Darunter befindet sich der "Windows Boot Manager" (Bezeichner "{bootmgr}" ). Dies ist eine, mit der Sie arbeiten werden. Es enthält die Konfiguration für das Grundmenü oder was auch immer Sie sonst beim Start bekommen (wenn Windows Boot Manager funktioniert und BCD an erster Stelle finden kann).

Unter {bootmgr} befinden sich eine beliebige Anzahl von Abschnitten "Windows Boot Loader" und möglicherweise weitere Abschnitte, von denen jeder eine Aktion oder eine Startoption steuert.

Dual Boot mit bcdedit einrichten (sonst brauchst du nichts)

Zum Dual-Booten teilen Sie bcdedit mit, dass /copyein Windows- Bootloader- Eintrag für Ihr erstes Betriebssystem vorhanden ist.

  • /copy um einen vorhandenen Eintrag zu kopieren
  • {current}ist die Kennung des Eintrags, den Sie kopieren möchten. Es ist eine Verknüpfung für das aktuelle Startelement. Wenn dies nicht der Fall ist, den Sie dual booten möchten, verwenden Sie den richtigen Bezeichner für den gewünschten. Der Beschreibungstext für jeden Eintrag hilft dabei, den gewünschten zu finden.
  • /d "Description for copied entry wird die Beschreibung des neuen Artikels sein

Es erstellt eine Kopie dieses Eintrags, gibt ihm die angegebene Beschreibung und antwortet mit der neuen Kennung, die es der Kopie gegeben hat:

bcdedit /copy {current} /d "Copy of my current Windows Boot Loader"

The entry was successfully copied to {5599a3fc-e4ee-11e7-a5f3-c86000d0b92a}.

Dadurch wird ein unabhängiger Eintrag mit dem richtigen Namen erstellt. Jetzt müssen Sie ihm mitteilen, was zu tun ist. Da sich in den letzten Betriebssystemen so gut wie nichts geändert hat, können Sie das Gerät und das OSDevice einfach auf Ihre Win7-Partition einstellen, und es wird wahrscheinlich funktionieren. Schauen Sie sich bei Bedarf die Ausgabe von / enum an, wenn Sie Win7 normal starten, und kopieren Sie die Einträge, die zu erwarten scheinen. In der Regel reicht es jedoch aus, Ihrem zweiten Betriebssystem vorübergehend einen Buchstaben wie "Q" zuzuweisen, und dann lautet der Befehl: bcdedit /set {NEW_IDENTIFIER} device partition=Q:oder so, und das Gleiche für osdevice. bcdedit sortiert die Laufwerksbuchstaben, siehe unten. Sie können den temporären Laufwerksbuchstaben löschen, sobald er in bcd verwendet wurde.

Als nächstes fügen Sie es der Liste der Einträge in {bootmgr} mit hinzu bcdedit /displayorder {NEW_ID} /addlastund - entscheidend - weisen Sie bcd an, ein Boot-Menü mit anzuzeigen bcdedit /set {bootmgr} displaybootmenu Yes.

Getan.

Hinweis - Es ist sicher, "ungerade" oder "falsche" Laufwerksbuchstaben in BCD zu verwenden, und es ist sicher, wenn die Ausgabe von / enum diese ebenfalls enthält.

Um es klar auszudrücken, brauchen Sie sich keine Sorgen zu machen, dass Ihr neues Gerät als Q: (oder wie auch immer) identifiziert wird, wenn es "C:" sein sollte. bcdedit speichert die Festplatten-ID, nicht den Buchstaben. Es ist lediglich das Akzeptieren und Anzeigen von Q:, um hilfreich zu sein. Wenn ein Gerät einen Buchstaben hat, wird dieser zur Vereinfachung standardmäßig anstelle der Geräte-ID angezeigt. Sie können dies sehen, indem Sie den Buchstaben aus dem 2. Betriebssystem in DISKPART oder DISKMGMT.MSC entfernen oder zuweisen. Die Ausgabe von / enum wird stattdessen sofort auf \ Device zurückgesetzt. Es ist tatsächlich die richtige Festplatten-ID gespeichert, und wenn es zum Booten verwendet wird, findet Windows das Gerät - der Buchstabe dient der Vereinfachung und wird nie gespeichert.

Stilez
quelle
Woher kommst du {0743bb44-fda6-11e3-90c8-e3ee27f3aec6}? Sie haben den {current} Windows-Bootloader bereits kopiert . Von was machst du sonst noch eine Kopie? (Nicht der Windows Boot Manager, den ich nehme)
Ian Boyd
Vielen Dank. Ich kann bestätigen, dass dies so funktioniert hat: Windows 10 Version 1903 (Build 18362). Ich hatte ein Image einer Windows 10-NTFS-Partition, die ich auf einer Partition auf einem anderen Computer wiederhergestellt habe. Ich habe einen Neustart von einem Installationsmedium auf Windows Recovery durchgeführt und mithilfe von diskpart einen Treiberbuchstaben zugewiesen. Dann habe die bcdedit / Kopie der {default} (keine {current} in WinRE) und bcdedit / von Gerät und Gerät auf neues Laufwerk gesetzt. Beim Neustart hatte ich die Wahl zwischen verschiedenen Betriebssystemen und das alte Image wurde neu gestartet. Es handelte sich um Windows 10, das unabhängig von einer vollständigen HW-Änderung sehr flexibel gebootet werden kann.
Marko Kohtala
2

Als Antwort auf die spezifische Frage des Autors, wie sie in den Kommentaren wiederholt wird (obwohl sie sich von seiner ursprünglichen Frage bezüglich der bcdedit.exeSequenzen unterscheidet, um dasselbe zu erreichen):

Vielleicht fast so etwas Einfaches wie msconfig, außer dass Sie damit zu einer anderen Windows-Installation navigieren und diese für Sie hinzufügen können.

EasyBCD ist genau das, was Sie suchen (kostenlos für den persönlichen Gebrauch). Es ist ein visuelles Dual-Boot-Manager-Tool für Windows, und das Hinzufügen eines neuen Windows-Eintrags erfolgt mit einem Mausklick, genau wie Sie es beschrieben haben .

EasyBCD ist mit vielen Ressourcen online, daher werde ich hier nicht alles wiederholen. Grundsätzlich fasst EasyBCD die Komplexität von zusammen bcdedit.exeund erweitert es mit seinen eigenen Bootloader-Modulen, damit Sie Dual-Boot mit anderen (neueren oder älteren) Versionen von Windows sowie Linux, BSD und mehr einrichten können.

Vollständige Offenlegung: Ich bin der Hauptautor von EasyBCD.

Mahmoud Al-Qudsi
quelle
-1
bcdedit
bcdboot
bcdedit /create

Dies kann auf eine Datei wie eine .vhd-Datei verweisen, die jedoch als Partitionsdiskpart erstellt und initialisiert und angehängt oder im laufenden Betrieb bereitgestellt und als Betriebssystem neu gestartet werden. Das Betriebssystem kann in einer anderen Partition versteckt sein. Eine andere Partition kann in einer anderen Partition und dem Betriebssystem darin versteckt sein. Wenn Sie ausführen bcdedit, um auf eine andere VHD-Datei verwiesen zu werden, unabhängig davon, wo sie sich befindet. Es lädt auf. Mein Lehrer zeigte dies im Unterricht, versagte jedoch oder weigerte sich, eine andere Erklärung abzugebenbcdedit . Dies funktioniert jedoch, um das voll funktionsfähige Betriebssystem zu verbergen und zu betreiben.

  1. bcdboot e:\windows
  2. bcdboot c:\windows
Über-Rajan
quelle