Wielu z nas testuje systemy przed ich oficjalnym wydaniem. Robimy to z wielu powodów, ale do najczęstszych można zaliczyć chęć poznania nowych funkcjonalności, przygotowanie się na nowe zadania i problemy, zwiększenie szans na zdanie egzaminu będącego w fazie beta. Są nawet firmy, które wdrażają programy w wersji Release Candidate w środowisku produkcyjnym. Wszystkich testerów łączy jedno — konieczność przygotowania infrastruktury do testów.
Ilość osób, które zdecydowały się pobrać Windows 7 Beta 1, przeszła najśmielsze oczekiwania firmy Microsoft. Serwery odpowiedzialne za udostępnianie obrazów plików instalacyjnych z Windows 7 zwracały informacje o niedostępności, powodując frustrację internautów. Bez odpowiedzi pozostaje pytanie, jak dużo osób, które pobrały ten system kliencki oraz Windows Server 2008 R2, zainstalowało go i rozpoczęło testy. Wielu z nich nie zrobiło tego, gdyż pomimo że pobrali plik ISO, obawiali się tego, czy instalacja nowego systemu nie spowoduje konfliktów z wcześniej zainstalowanym systemem podstawowym.
Oczywiście, można pójść na łatwiznę, instalując i testując nowy system wyłącznie w środowisku wirtualnym. Zazwyczaj tak się robi i jeśli chodzi o Windows 7, nie ma z tym żadnego problemu, gdyż można go zainstalować na jednej z platform do wirtualizacji firmy Microsoft: Virtual PC 2007, Virtual Server 2005 lub Hyper-V. Dużo gorzej wygląda sprawa z Windows Server 2008 R2, poniewż wymaga on platformy wirtualizacyjnej wspierającej systemy-guesty 64-bitowe. Produktem firmy Microsoft, który to potrafi, jest wyłącznie Hyper-V, będący rolą systemu Windows Server 2008 oraz bezpłatnego Hyper-V Server 2008. Na pewno należy podkreślić, iż system zainstalowany jako wirtualna maszyna pracuje wolniej, wymaga lepszego sprzętu oraz nie może w pełni wykorzystać wszystkich podzespołów fizycznego komputera.
Czy pozostaje wyłącznie instalacja systemu na kolejnej partycji? Nie! W tym artykule pokażę, że istnieje jeszcze jedna, nowa metoda na instalację, która według mnie jest dużo prostsza i wygodniejsza niż te opisane powyżej. Niniejszy artykuł jest swego rodzaju case study, w którym opisuję, jak sobie poradziłem z przygotowaniem systemów w środowisku testowym. Postanowiłem to opisać, ponieważ w czasie szukania rozwiązań okazało się, że w sieci znajduje się całkiem dużo informacji na ten temat, ale nie są one podane w sposób przejrzysty, pełny, a czasami pojawiały się w nich przekłamania.
Kilku osobom opisującym na blogach sposoby bootowania (rozruchu) systemu Windows 7 z plików VHD oraz kilku moim znajomym specjalistom IT zadałem pytanie: „Czy da się zainstalować Windows 7 na dysku wyłącznie jako VHD, bez wcześniej zainstalowanego na dysku systemu Windows 7?”. 90% odpowiedziało, że „nie da się” lub nie byli pewni, czy to można wykonać. To nowy system i zrozumiałe jest, że pojawiły się takie odpowiedzi. Przecież sam nie byłem pewny odpowiedzi na to pytanie, a że nie udało mi się jej znaleźć, postanowiłem to sprawdzić. W artykule pokazałem w dwu scenariuszach, jak przygotować systemy uruchamiające się z plików VHD.
Scenariusze
W artykule opisałem dwa najczęściej spotykane scenariusze, w których:
- Użytkownik posiada zainstalowany system Windows Vista. Chce zainstalować co najmniej jeden system operacyjny Windows 7 lub Windows Server 2008 R2 w pliku VHD.
- Użytkownik posiada czysty dysk. Chce na nim zainstalować co najmniej jeden system operacyjny Windows 7 lub Windows Server 2008 R2 w pliku VHD.
UWAGA: Windows Server 2008 R2 może zostać zainstalowany wyłącznie na komputerze wyposażonym w procesor 64-bitowy.
Wymagania
Abyśmy mogli rozpocząć przygodę z nowym systemem operacyjnym, nasz komputer musi spełniać co najmniej minimalne wymagania, które w przypadku Windows 7 zostały przez firmę Microsoft określone następująco:
- Procesor 1 GHz 32-bit lub 64-bit,
- RAM 1 GB,
- 16 GB wolnego miejsca na dysku,
- Karta graficzna ze wsparciem dla DirectX 9 oraz 128 MB,
- DVD-R/W.
W przypadku Windows Server 2008 R2 minimalne wymagania są podobne:
- Procesor 1.4 GHz 64-bit,
- RAM 512 MB,
- 10 GB wolnego miejsca na dysku,
- DVD-R/W.
Należy pamiętać także o tym, że w dniu, w którym artykuł został opublikowany na WSS.pl (21 stycznia 2009), Windows 7 i Windows Server 2008 R2 są nadal w fazie beta. Oznacza to tyle, że nie zostały one jeszcze w pełni ukończone, czyli mogą nadal zawierać dość dużo błędów, a ich stabilność oraz brak kompatybilności z niektórymi urządzeniami oraz oprogramowaniem mogą być powodem różnych problemów. Licencja zabrania także wykorzystywania tych systemów w środowisku produkcyjnym.
Aktualnie udostępnione wersje beta 1 będą działały poprawnie do 1 lipca 2009 roku. Oczywiście, po tym okresie będzie można zainstalować kolejną wersję beta lub czekać na wydanie odsłony finalnej. Należy pamiętać także o tym, że nie przewiduje się aktualizacji wersji beta do RTM.
Scenariusz 1
Moje testy uruchamiania systemu z pliku VHD rozpocząłem od instalacji Windows 7 obok zainstalowanego już wcześniej — w sposób tradycyjny — Windows Vista. Na drugiej partycji miałem system Windows Server 2008, więc nie było innej możliwości niż instalacja na VHD.
Pobrałem ISO, nagrałem z niego płytę DVD z Windows 7, ustawiłem bootowanie z napędu CD/DVD w BIOS i uruchomiłem komputer. Przywitał mnie ekran powitalny instalatora.
Aby zainstalować system Windows 7 w pliku VHD, należało go oczywiście utworzyć. W tym celu uruchomiłem linię komend poprzez wciśnięcie przycisków Shift-F10. Na wolumenie C fizycznego dysku utworzyłem poleceniem md folder wirtualne_dyski, aby w dalszych krokach przechowywać tam pliki VHD.
Tworzenie dysków wirtualnych należy wykonać za pomocą dostępnego w systemie narzędzia diskpart.exe. Pozwala ono na zarządzanie z linii komend dyskami, partycjami oraz wolumenami.
Należy pamiętać, że 16 GB to minimalna wymagana wielkość dysku, na którym zostanie zainstalowany system Windows 7. Rekomendowana nie oznacza oczywiście, że partycja systemowa musi mieć 16 GB. Do celów testowych zainstalowałem system na 10 GB partycji systemowej.
Polecenie create vdisk narzędzia diskpart.exe tworzy wirtualny dysk typu „fixed” o rozmiarze 10 GB na partycji C fizycznego dysku:
create vdisk file=c:\wirtualne_dyski\W7.vhd type=fixed maximum=10000
Kolejny krok to wybranie wcześniej utworzonego dysku wirtualnego poleceniem select:
select vdisk file=c:\wirtualne_dyski\W7.vhd
Teraz wystarczy podłączyć go do systemu w celu przeprowadzenia na nim dalszej instalacji:
attach vdisk
Po poprawnym wykonaniu powyższych komend należy zamknąć diskpart.exe oraz linię komend, wydając dwukrotnie polecenie exit.
Naszym oczom powinien ukazać się wcześniejszy ekran instalatora, gdzie należy kliknąć Next, a później Install now.
Po przeczytaniu oraz akceptacji umowy licencyjnej należy wybrać typ instalacji Custom (advanced).
Kolejny etap zawiera informacje o dostępnych dyskach oraz partycjach. Jako że wirtualny dysk został podłączony, ale nie zostały na nim utworzone partycje, będzie on widoczny jako dysk z niezalokowanym miejscem. Należy go wybrać, a całość potwierdzić przyciskiem Next.
UWAGA: Ostrzeżenie Windows Cannot be installed to this disk należy zignorować.
Nie jest konieczne wcześniejsze tworzenie wolumenu oraz jego formatowanie, gdyż całą pracę wykona za nas instalator. Oczywiście, jeśli ktoś się uprze, to nic nie stoi na przeszkodzie, by zrobić to ręcznie, korzystając z narzędzi w linii komend — zostanie to pokazane w czasie omawiania kolejnego scenariusza.
Rozpocznie się właściwa instalacja, która w zależności od jakości płyty DVD oraz posiadanej konfiguracji sprzętowej powinna trwać około 15 – 40 minut. Jest ona na tyle prosta, że nie została omówiona w tym artykule. W trakcie jej trwania zostanie automatycznie dodany wpis „Windows 7” do Windows Boot Manager, co spowoduje, że po uruchomieniu komputera wyświetli się ekran z wyborem systemu.

W dostępnych w internecie instrukcjach na temat instalacji i uruchamiania systemów z plików VHD mowa jest o konieczności edycji Windows Boot Manager za pomocą instrukcji bcdedit.exe. Oczywiście, taką modyfikację można wykonać, ale na pewno nie jest to konieczne! Napisałem o tym dlatego, że może to wprawić część osób w zakłopotanie i spowodować problemy ze zrozumieniem tego procesu. W dalszej części artykułu pokażę także, jak zmodyfikować Windows Boot Manager. W innych materiałach często jest mowa o tym, że należy mieć wcześniej zainstalowany (w sposób tradycyjny) system Windows 7. Jak już pokazałem, nie jest to prawda.
To tak naprawdę już koniec! Oczywiście, jeśli potrzebujecie, możecie zainstalować kolejny system Windows 7 lub Windows Server 2008 R2. Ich instalacja nie różni się niczym od powyżej pokazanej procedury.
A jeśli już się Wam znudzi system zainstalowany w wirtualnym dysku i będziecie chcieli się go pozbyć, to wystarczy, że skasujecie VHD. Prawda, że to banalnie proste? Oczywiście, po usunięciu pliku powinno się zadbać o usunięcie wpisu z Windows Boot Manager — na przykład przy użyciu polecenia bcdedit.exe. Do poprawnej pracy zainstalowanych systemów nie jest to konieczne, ale jeśli takich wpisów po nieistniejących systemach będzie kilka, to może to wprowadzić pewne zamieszanie przy wyborze właściwego. Narzędzie zostało opisane w dalszej części tego artykułu.
Scenariusz 2
Kolejny scenariusz, jaki przedstawię w tym artykule, przeznaczony jest dla użytkownika posiadającego w komputerze czysty dysk twardy — bez systemu operacyjnego. Zadaniem, jakie sobie postawiłem, była instalacja na nim jednego lub większej ilości systemów Windows 7 lub Windows Server 2008 R2 w plikach VHD. Efekt finalny będzie według mnie ciekawy, gdyż odmienny od standardowo przeprowadzonej instalacji — na woluminie fizycznego dysku twardego będzie wyłącznie jeden lub więcej plików VHD. Jest to rozwinięcie scenariusza 1., z którym należy się wcześniej zapoznać.
Pierwszą czynnością, jaką należy wykonać, jest utworzenie partycji na czystym dysku fizycznym. Aby to zrobić, należy uruchomić instalator systemu z płyty instalacyjnej Windows 7 i tak jak w scenariuszu 1. przejść do linii komend poprzez wciśnięcie kombinacji klawiszy Shift+F10.
Narzędziem, które posłuży nam do utworzenia partycji oraz jej sformatowania, będzie oczywiście wcześniej poznany diskpart.exe.
Pierwszym krokiem będzie ustawienie fokusu na określony dysk. Przydatnym poleceniem do określenia identyfikatora dysku może być list disk, które służy do wyświetlania informacji podsumowujących na temat poszczególnych dysków w komputerze. W przykładzie poniżej, wybranym numerem identyfikacyjnym dysku jest 0:
select disk 0
Po wybraniu dysku należy utworzyć partycję podstawową. W naszym przykładzie jej wielkość wynosi 20 GB:
create partition primary 20000
Szybkie formatowanie partycji w systemie plików NTFS wykona polecenie:
format fs=ntfs quick
Polecenie active posłuży do ustawiania jako aktywnego woluminu, na który aktualnie skierowany jest fokus:
active
Ostatnie polecenie ustawia literę wolumenu na C:
assign letter=C
Po przygotowaniu dysku i wolumenu należy utworzyć wirtualny dysk. Zostało to opisane w scenariuszu 1., więc poniżej umieściłem dla przypomnienia listę komend, jakie należy wykonać:
create vdisk file=c:\W7.vhd type=fixed maximum=10000
select vdisk file=c:\W7.vhd
attach vdisk
Reszta kroków jest identyczna jak w scenariuszu 1.
Edycja Windows Boot Manager
Prędzej czy później po instalacji więcej niż jednego systemu operacyjnego na dysku przychodzi moment, że zaczyna się robić bałagan w Windows Boot Manager. Mogą na przykład powstać dwa (lub więcej) identyczne wpisy, co spowoduje trudność w wybraniu odpowiedniego systemu:
Do edycji Windows Boot Manager służy polecenie systemowe bcdedit.exe. Należy użyć najnowszej wersji, czyli tej zawartej w Windows 7 oraz Windows Server 2008 R2. Konieczne jest też uruchamianie programu z prawami administratora, gdyż w innym przypadku zamiast bcededit przywita nas komunikat: „The boot configuration data store could not be opened. Access is denied.”.
Poniżej podałem kilka przykładów użycia bcdedit.exe do modyfikacji nazwy uruchamianego systemu operacyjnego, kolejności wpisów oraz czasu wyświetlania menu startowego.
W pierwszym kroku należy wyświetlić identyfikatory jako GUID poleceniem:
bcdedit /v
Należy spisać wartość pola identifier systemu, który chcemy zmodyfikować — jest on w postaci {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}. Identyfikator należy następnie wprowadzić jako argument przełącznika /set oraz za pomocą description ustawić nowy ciąg, który ma być wyświetlany jako nazwa systemu operacyjnego przy rozruchu:
bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} description "Windows 7 VHD"
Kolejność wyświetlania systemów można zmienić za pomocą przełącznika /display order. Za identyfikatorem należy także określić, czy system ma być pierwszy /addfirst lub ostatni /addlast na liście. Użycie /delete usuwa wpis z listy.
bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addfirst
Przełącznik /default pozwala ustawić domyślnie uruchamiany przy starcie komputera system operacyjny:
bcdedit /default {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Ustawienie czasu (w sekundach), po którym zostanie uruchomiony domyślny system, można ustawić poprzez zmianę wartości w sekundach przełącznika /time out:
bcdedit /timeout 10
System Configuration
Pisząc o bcdedit, często zapomina się, że część zadań można wykonać w sposób mniej hardcorowy za pomocą kilku kliknięć w narzędziu systemowym System Configuration. Do tych zadań należy kasowanie wpisów, ustawianie domyślnie startującego systemu oraz ustawienie czasu, po którym domyślny system zostanie uruchomiony. System Configuration uruchamia się poprzez wydanie polecenia MSConfig.exe.
Podsumowanie
Funkcjonalność, którą przedstawiłem w artykule, na pierwszy rzut oka może wyglądać na mało przydatną. Im dłużej używałem wirtualnych dysków, tym więcej widziałem płynących z jej używania korzyści. Teraz zaliczam ją do najbardziej użytecznych funkcji nowego systemu. Jest ona szczególnie ważna dla osób, które potrzebują kilku zainstalowanych systemów, ale z różnych powodów nie chcą testować rozwiązań wyłącznie w środowiskach wirtualnych. Dla części użytkowników, szczególnie tych mniej obeznanych z komputerami, na pewno ważne będzie też to, że do uruchamiania kilku systemów nie jest już konieczne dzielenie dysku fizycznego na kilka partycji.