Windows PE w połączeniu z VMWARE

Tuesday, October 14, 2008, autor: Rafał

Jakiś czas temu próbowałem utworzyć wirtualną maszynę w oparciu o płytę z obrazem dysku. Takie płyty załączane są do wielu sprzedawanych obecnie laptopów na wypadek, gdy trzeba będzie powrócić do pierwotnej konfiguracji laptopa (płyty takie określa się często jako  System Recovery DVD lub Restore DVD) . W moim przypadku chodziło o płytę DVD, którą pracownicy mojej firmy mają odtwarzać oprogramowanie dostarczone przez dział IT (system Windows XP Pro plus kilka dodatkowych programów). Płyta, z której korzystałem była oparta na usłudze Windows Deployment Services. Na dysk twardy ładowany jest mini system operacyjny oparty na Windows, a następnie konfigurowany specjalnymi skryptami. Pierwszy skrypt wymagał połączenia z siecią, aby na podstawie adresu MAC sprawdzić, czy komputer jest dodany w domenie i jaka jest jego nazwa. Po stwierdzeniu, że jest to nowy komputer skrypt nadał mu nową nazwę i kontynuował wykonywanie kolejnych kroków.
Problem, jaki się pojawił przy próbie instalowania takiego systemu na wirtualnej maszynie był związany z wykryciem sieci. Pomimo, że kabel sieciowy był wpięty, a połączenie ustawione jako „Bridged” (ustawienia Ethernet w VMWare), sieć nie była wykrywana.
Znalazłem rozwiązanie polegające na zdefiniowaniu określonej karty sieciowej.
Po zrzuceniu obrazu na wirtualny dysk (po wystartowaniu DVD, zrzucany jest obraz z plików Norton GHOSTa), przy restarcie zatrzymałem maszynę i wyedytowałem plik VMX dodając tam następującą linię:

ethernet0.virtualDev = “e1000″

Wystartowałem ponownie maszynę. Tylko przy takim ustawieniu sieć była wykrywana przez Windows PE.

Rozwiązało to problem na chwilę, bo przy kolejnych restartach konfigurowany system operacyjny (Windows XP) nie znajdował pasującego sterownika karty. Najczęściej dostarczane obrazy na DVD posiadają z góry zdefiniowany zestaw sterowników (ma  to ograniczyć swobodę wykorzystania obrazu). Są one dobierane na podstawie sprzętu, który występuje w danej firmie. W przypadku płyt dołączanych do laptopów, zawierają one sterowniki dla danego modelu laptopa.

Problem obszedłem następująco:
Kiedy na początku miałem zdefiniowany „e1000”, to poczekałem aż system wymusi kolejny restart i skrypty instalacyjne zaczną działać. Przy kolejnym restarcie zatrzymałem maszynę i po raz kolejny wyedytowałem VMX wpisując tam:

ethernet0.virtualDev = “vmxnet”
ethernet0.connectionType = “bridged”

Wystartowałem maszynę i skrypty instalacyjne zaczęły działać. Kiedy pojawiło się pytanie o sterowniki wykorzystałem VMware tools, które dla VMWare Server domyślnie znajdują się w katalogu:
C:\Program Files\VMware\VMware Server

Znajdziemy tam plik windows.iso. Jest to obraz ISO płyty CD. Wystarczy go podpiąć do wirtualnego napędu CD. Na płycie znajdują się sterowniki do vmxnet. Jest to płyta VMware Tools. Podobne mamy np. dla linuksa (linux.iso).

Przy okazji instalacji z obrazu odkryłem sposób w jaki można ingerować w wykonywanie poszczególnych kroków. Wystarczy, że po zrzuceniu obrazu z płyty na wirtualny dysk (plik VMDK), dysk taki zamontujemy w systemie hosta. Możemy wówczas edytować skrypty cmd (np. te z katalogu \minint\Windows\System32). Oto przykład skryptu:

@echo off
echo Please wait…
wpeinit
cls
start /w x:\minint\keyboard\set_keyboard.hta
start /w x:\jobs\cust_menu.hta
cls
echo Please wait…
IF EXIST x:\windows\details_tmp.xml (
exit
) ELSE (
x:\boot\bootsect.exe /nt52 x:
exit

Wystarczy np. wstawić komendę pause, aby przerwać wykonywanie którejś z komend. Gdy ją przerwiemy, wówczas poprzez CTRL+ALT+DEL dostaniemy się do menadżera zadań, w którym możemy uruchomić nowe okienko z linią komend.

Task Manager - New Task

Wybieramy New Task i wpisujemy tam komendę cmd.

Z braku czasu i chęci (nie jest mi to potrzebne) nie testowałem opisanej metody na płytach załączanych do laptopów (np. z preinstalowanym Windows VISTA), ale myślę, że jest to pewien pomysł, aby ingerować w wykonywane podczas instalacji skrypty i  usunąć z listy niepotrzebnie instalowane programy (problem ten poruszyłem częściowo tutaj). Do skryptów możemy się dostać, gdy po wykonaniu zrzutu zawartości płyty na dysk twardy, przy kolejnym starcie uruchomimy system Linux z płyty typu LiveCD. Po wyedytowaniu skryptów możemy zrestartować komputer i zezwolić na wykonywanie zmodyfikowanych przez nas skryptów.



 

 
Tags:
 



Zostaw komentarz


 


 


 


 

*
Wpisz słowo z obrazka. Kliknij na obrazku aby usłyszeć angielską wersję audio
Kliknij na obrazku aby usłyszeć angielską wersję audio