Hoe gebruik je BCDEdit voor dual boot Windows installaties?
Wat zijn de bcdedit
commando’s die nodig zijn om dual boot tussen verschillende installaties van Windows in te stellen? 5
Achtergrond
Ik heb onlangs Windows 8 geïnstalleerd op een aparte harde schijf1. Nu Windows 8 geïnstalleerd is, wil ik weer dual-booten naar Windows 7.
Ik heb mijn twee2 harde schijven:
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
Dus je kunt zien dat ik mijn twee schijven heb, met de partities die Windows bevatten:
- Windows 7 :
\PhysicalDisk0
(partitie 03) - Windows 8 :
\PhysicalDisk2
(partitie 1)
Wat ik probeer uit te vinden is hoe ik bcdedit
kan gebruiken om het ding dat Windows opstart te laten weten dat er nog een Windows installatie is.
Ik draai bcdedit
nu, het laat de huidige configuratie zien:
>bcdedit /create /d "The old Windows 7" /application osloader
Ik kan geen documentatie vinden over het verschil tussen Windows Boot Manager en Windows Boot Loader.
Documentatie
Er is wat documentatie over Bcdedit
:
- Technet: Command Line Reference - Bcdedit
- Technet: Windows Automated Installation Kit - BCDEdit Command Line Options
- Whitepaper - BCDEdit Commands for Boot Environment (Word Document)
Maar ze leggen niet uit hoe je de binaire boot configuratiegegevens kunt bewerken.
Als ik zou moeten gissen, zou ik denken dat een Windows Boot Manager het BIOS instrueert welk programma het moet draaien. Dat programma zou de gebruiker een aantal opstartkeuzes geven. Dan blijft Windows Boot Loader over als een bepaalde boot-keuze**, die een bepaalde installatie van Windows vertegenwoordigt.
Als dat het geval is, zou ik een nieuwe Windows Boot Loader entry moeten maken.
Dat betekent dat ik de parameter /create
zou kunnen gebruiken:
/create
Maakt een nieuwe boot entry aan:
bcdedit [/ store filename] / create [id] / d description [/ application apptype | / inherit [apptype] | / inherit DEVICE | / device ]
Dus ik ga uit van een syntaxis van:
Apptype Description
BOOTSECTOR The boot sector application
OSLOADER The Windows boot loader
RESUME A resume application
Waar application
een van de volgende types kan zijn:
>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"
Helaas, de enige documentatie over osloader
is “The Windows boot loader”. Ik zie niet hoe dat onderscheid kan maken tussen Windows 8 op de ene harde schijf, en Windows 7 op een andere.
De andere mogelijke parameter bij /create
een boot loader is
Helaas ontbreekt de documentatie voor /device
:
/device
Optioneel. Als id niet is ingesteld op een bekende identifier, de optie die wordt gebruikt om de nieuwe boot entry te specificeren als een extra entry voor apparaatopties.
Aangezien ik id
niet op een bekende identifier heb gezet, moet ik /device instellen op “de optie die wordt gebruikt om de nieuwe boot entry als een extra device options entry te specificeren”. Ik ken al die woorden; ze zijn allemaal Engels. Maar ik heb geen idee wat het zegt; die woorden in die volgorde lijken onzinnig.
Dus ik zit een beetje in de knoop. Ik wil niet worden als Dan Stolts van Microsoft, die zijn harde schijven vernietigde toen hij BCDEdit probeerde te gebruiken :
Ik vond geen inhoud die bijzonder nuttig was toen ik mijn machine vernielde door met BCDEdit te spelen. Deze post zou ok zijn geweest als er veel meer details waren, vooral over het /set commando OSDevice, etc. Dus toen ik mijn machine gerepareerd had, heb ik de oplossing gedocumenteerd en de informatie is hier… .
Ik bedoel, als een Microsoft man niet eens kan uitvinden hoe hij BCDEdit moet gebruiken om zijn BCD te bewerken, welke kans heb ik dan?
Bonus Reading
- BCDEdit Command-Line Options
- Bcdedit
- Server 2008 R2 or Windows 7 System Will NOT Boot After Making Changes To Boot Manager Using BCDEdit
- BCD Editor
[ BCD Editor ]
Server 2008 R2 or Windows 7 System Will NOT Boot After Making Changes To Boot Manager Using BCDEdit
Visual BCD Editor ]0x3&4
[ Windows 7 en Windows 8 RTM Dual Boot Setup ]0x3&
Footnotes
- 1 Omdat het Windows 8 installatieprogramma mijn Windows 7 installatie zou hebben beschadigd, besloot ik mijn “hoofd” harde schijf los te koppelen tijdens de installatie. Wat een langdradige uitleg is van waarom het Windows 8 installatieprogramma de bestaande Windows 7 installatie niet detecteerde. Normaal gesproken zou het installatieprogramma automatisch de vereiste items voor dual-boot hebben aangemaakt. Niet dat de reden waarom ik de vraag stel belangrijk is.
- 2 Echt, er zijn drie schijven, maar de derde is alleen bulkopslag. Het bestaan van een 3e harde schijf is niet relevant voor de vraag. Ik vermeld het alleen voor het geval iemand wil weten waarom de schermafbeelding 3 harde schijven heeft, terwijl ik er maar twee vermeld.
- 3 Ik ben willekeurig begonnen met het nummeren van partities bij “nul”; niet om te impliceren dat partities vanaf nul worden genummerd. Ik noem partities alleen omdat ik niet inzie hoe een boot-loader zijn werk zou kunnen doen zonder te weten in welke partitie, en welke map, een installatie van Windows zich bevindt.
- 4 Ik vraag naar BCDEdit. Ik heb Visual BCD Editor geprobeerd. Het lijkt een visuele BCD editor te zijn. Dat wil zeggen dat het een GUI is, maar gebruikt nog steeds dezelfde terminologie als BCDEdit, en vereist dezelfde kennis die BCD niet documenteert.
- 5 Voor de eenvoud zullen we aannemen dat alle installaties van Windows waartussen ik wil dual-booten Windows Vista of later zijn, waardoor ze allemaal compatibel zijn met de BCDEdit en de binaire bootloader. Het alternatief zou vereisen dat je je verdiept in de fijne kneepjes van de oude
ntloader
. Ik vraag ook niet naar dual booting naar Linux; of hoe te booten naar een Virtual Hard Drive (vhd) image. Gewoon moderne versies van Windows op bestaande harde schijven in dezelfde machine.