====== Differences ====== This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
soc:2009:dverkamp:notes:windows_pe [2009/06/05 08:03] drv created |
soc:2009:dverkamp:notes:windows_pe [2009/06/09 14:51] (current) drv |
||
---|---|---|---|
Line 16: | Line 16: | ||
Success is defined as reaching WinPE's ''X:\Windows\system32'' command prompt. | Success is defined as reaching WinPE's ''X:\Windows\system32'' command prompt. | ||
+ | |||
+ | === Detailed test procedure === | ||
+ | |||
+ | == Prerequisites == | ||
+ | |||
+ | * Vista AIK (http://download.microsoft.com/download/8/6/d/86d6ba9c-98ff-444e-87ed-3e76772eb2a6/vista_6000.16386.061101-2205-LRMAIK_EN.img) | ||
+ | * Windows "technician computer" | ||
+ | * TFTP server (tftpd-hpa) | ||
+ | * DHCP server (ISC DHCPD) | ||
+ | |||
+ | == AIK installation == | ||
+ | |||
+ | The Vista AIK is distributed as an image of an ISO 9660 filesystem. Mount it on a Linux machine or otherwise extract it. (TODO: this step should be more detailed) | ||
+ | |||
+ | Run STARTCD.EXE from the CD image. Select "Windows AIK Setup" and follow the defaults until installation is complete. | ||
+ | |||
+ | == WinPE setup == | ||
+ | |||
+ | Run the Windows PE Tools Command Prompt (//Start โ All Programs โ Microsoft Windows AIK โ Windows PE Tools Command Prompt//). Note that administrative privilege is required for some of the following commands, so the command prompt must be run elevated (Right click -> //Run as administrator//) if using Vista with UAC. | ||
+ | |||
+ | Run the following commands in this command prompt: | ||
+ | |||
+ | mkdir C:\Temp | ||
+ | call copype.cmd x86 C:\Temp\Boot | ||
+ | del /Q etfsboot.com | ||
+ | move ISO\boot\boot.sdi boot.sdi | ||
+ | rmdir /S /Q ISO | ||
+ | imagex /mount winpe.wim 1 mount | ||
+ | copy mount\Windows\Boot\PXE\pxeboot.n12 pxeboot.n12 | ||
+ | copy mount\Windows\Boot\PXE\bootmgr.exe bootmgr.exe | ||
+ | copy mount\Windows\System32\bcdedit.exe bcdedit.exe | ||
+ | imagex /unmount mount | ||
+ | rmdir /Q mount | ||
+ | bcdedit -createstore BCD | ||
+ | set BCDEDIT=bcdedit -store BCD | ||
+ | %BCDEDIT% -create {ramdiskoptions} -d "Ramdisk options" | ||
+ | %BCDEDIT% -set {ramdiskoptions} ramdisksdidevice boot | ||
+ | %BCDEDIT% -set {ramdiskoptions} ramdisksdipath \Boot\boot.sdi | ||
+ | for /f "tokens=3" %i in ('%BCDEDIT% -create -d "Windows PE" -application osloader') do set GUID=%i | ||
+ | %BCDEDIT% -set %GUID% systemroot \Windows | ||
+ | %BCDEDIT% -set %GUID% detecthal Yes | ||
+ | %BCDEDIT% -set %GUID% winpe Yes | ||
+ | %BCDEDIT% -set %GUID% osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions} | ||
+ | %BCDEDIT% -set %GUID% device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions} | ||
+ | %BCDEDIT% -create {bootmgr} -d "Windows Boot Manager" | ||
+ | %BCDEDIT% -set {bootmgr} timeout 30 | ||
+ | %BCDEDIT% -set {bootmgr} displayorder %GUID% | ||
+ | del /Q bcdedit.exe | ||
+ | |||
+ | Note that these commands cannot be directly entered into a batch file due to the extra % substition in the for loop. (TODO: rewrite it so it works in a batch file) | ||
+ | |||
+ | == TFTP server setup == | ||
+ | |||
+ | Copy ''C:\Temp\Boot'' to the TFTP server's directory, so that the files are in /Boot/*. Preserve case on filenames when copying. | ||
+ | |||
+ | Configure the TFTP server to allow backslash as a directory separator (as in [[:tftp_backslash]]). Ensure the TFTP server is restarted after the configuration change. | ||
+ | |||
+ | Add a DHCPD configuration file fragment to boot the Windows PE loader from the TFTP server: | ||
+ | |||
+ | filename "\\Boot\\pxeboot.n12"; | ||
+ | next-server tftp.server.ip.here; | ||
+ | |||
+ | Boot from gPXE as usual; after some time, the Windows PE command prompt should appear. | ||