Jak używać BCDEdit do dual bootowania instalacji Windows?
Jakie są polecenia bcdedit
niezbędne do skonfigurowania podwójnego rozruchu pomiędzy różnymi instalacjami systemu Windows? 5
Wprowadzenie
Ostatnio zainstalowałem system Windows 8 na oddzielnym dysku twardym1. Teraz, gdy Windows 8 jest już zainstalowany, chcę uruchomić system z powrotem na Windows 7.
Mam moje dwa dyski twarde2:
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
Tak więc można zobaczyć, że mam moje dwa dyski, z partycjami zawierającymi Windows:
- Windows 7 :
\PhysicalDisk0
(partycja 03) - Windows 8 :
\PhysicalDisk2
(partycja 1)
Próbuję dowiedzieć się, jak użyć bcdedit
do poinstruowania urządzenia uruchamiającego system Windows, że istnieje inna instalacja Windows.
Uruchamiając teraz bcdedit
, pokazuje on aktualną konfigurację:
>bcdedit /create /d "The old Windows 7" /application osloader
Nie mogę znaleźć żadnej dokumentacji na temat różnicy między Windows Boot Manager a Windows Boot Loader.
Dokumentacja
Istnieje pewna dokumentacja na temat Bcdedit
:
- Technet: Command Line Reference - Bcdedit
- Technet: Windows Automated Installation Kit - BCDEdit Command Line Options
- Whitepaper - BCDEdit Commands for Boot Environment (Word Document)
Ale nie wyjaśniają one, jak edytować binarne dane konfiguracyjne startu.
Gdybym miał zgadywać, pomyślałbym, że Windows Boot Manager instruuje BIOS, jaki program powinien uruchomić. Ten program dałby użytkownikowi zestaw opcji startowych. To pozostawia Windows Boot Loader jako konkretny wybór, który reprezentuje konkretną instalację Windows.
Jeśli tak jest, musiałbym utworzyć nowy wpis Windows Boot Loader.
To oznacza, że mógłbym chcieć użyć parametru /create
:
/create
Tworzy nowy wpis startowy:
bcdedit [/ store filename] / create [id] / d description [/ application apptype | / inherit [apptype] | / inherit DEVICE | / device ]
Czyli zakładam składnię:
Apptype Description
BOOTSECTOR The boot sector application
OSLOADER The Windows boot loader
RESUME A resume application
Gdzie application
może być jednym z następujących typów:
>bcdedit /create /D "Windows Vista" /device "The Quick Brown Fox"
Niestety, jedyną dokumentacją na temat osloader
jest “The Windows boot loader”. Nie wiem, jak to może rozróżnić pomiędzy Windows 8 na jednym dysku twardym, a Windows 7 na innym.
Innym możliwym parametrem przy /create
bootloaderze jest
Niestety brakuje dokumentacji dla /device
:
/device
Opcjonalnie. Jeśli id nie jest ustawione na znany identyfikator, opcja, która jest używana do określenia nowego wpisu startowego jako dodatkowego wpisu opcji urządzenia.
Ponieważ nie ustawiłem id
na dobrze znany identyfikator, muszę ustawić /device na “opcję, która jest używana do określenia nowego wpisu startowego jako dodatkowego wpisu opcji urządzenia”. Znam te wszystkie słowa; wszystkie są po angielsku. Ale nie mam pojęcia, co to mówi; te słowa w tej kolejności wydają się bezsensowne.
Więc jestem trochę zdezorientowany. Nie chcę być jak Dan Stolts z Microsoftu, który zniszczył swoje dyski twarde próbując użyć BCDEdit :
Nie znalazłem żadnych treści, które byłyby szczególnie pomocne, gdy hosed moja maszyna przez zabawę z BCDEdit. Ten post byłby ok, gdyby było więcej szczegółów, szczególnie na temat komendy /set OSDevice, itp. Więc kiedy już naprawiłem moją maszynę, udokumentowałem rozwiązanie i informacje są tutaj… .
Chodzi mi o to, że jeśli facet z Microsoftu nie potrafi nawet wymyślić jak użyć BCDEdit do edycji swojego BCD, to jakie ja mam szanse?
Bonusowa lektura
- Opcje wiersza poleceń BCDEdit
- Bcdedit
- Server 2008 R2 lub Windows 7 System NIE uruchomi się po wprowadzeniu zmian w Boot Managerze przy użyciu BCDEdit
- - Visual BCD Editor
- Visual BCD Editor
- [ BCDEdit ] Visual BCD Editor ]0x3&4
- [ Windows 7 and Windows 8 RTM Dual Boot Setup ]0x3&
Przypisy
- 1 Ponieważ instalator Windows 8 uszkodziłby moją instalację Windows 7, zdecydowałem się odłączyć mój “główny” dysk twardy podczas instalacji. To jest długie wyjaśnienie, dlaczego instalator Windows 8 nie wykrył istniejącej instalacji Windows 7. Normalnie instalator automatycznie utworzyłby wymagane wpisy dla dual-boot. Nie dlatego, że powód, dla którego zadaję to pytanie, jest ważny.
- 2 W rzeczywistości są trzy dyski, ale trzeci to tylko pamięć masowa. Istnienie trzeciego dysku twardego nie ma znaczenia dla pytania. Wspominam o tym tylko na wypadek, gdyby ktoś chciał wiedzieć, dlaczego zrzut ekranu ma 3 dyski twarde, gdy ja wspominam tylko o dwóch.
- 3 Arbitralnie zacząłem numerować partycje od “zera”; nie po to, by sugerować, że partycje są numerowane od zera. Wspominam tylko o partycjach, ponieważ nie widzę jak jakikolwiek boot-loader mógłby wykonywać swoją pracę bez wiedzy o tym, na której partycji i w którym folderze znajduje się instalacja Windows.
- 4 Pytam o BCDEdit. Próbowałem Visual BCD Editor. Wygląda na to, że jest to wizualny edytor BCD. Oznacza to, że jest to GUI, ale nadal używa tej samej terminologii co BCDEdit, i wymaga tej samej wiedzy, której BCD nie dokumentuje.
- 5 Dla uproszczenia przyjmiemy, że wszystkie instalacje Windows, które chcę uruchomić w trybie dual-boot, to Windows Vista lub nowsze, co czyni je kompatybilnymi z BCDEdit i binarnym programem ładującym. Alternatywa wymagałaby zagłębienia się w zawiłości starego
ntloader
. Nie pytam też o dual bootowanie do Linuksa; ani o to, jak bootować do obrazu wirtualnego dysku twardego (vhd). Po prostu nowoczesne wersje Windows na istniejących dyskach twardych w tej samej maszynie.