Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
winpe [2008/03/02 11:56] mcb30 |
winpe [2010/06/05 07:34] (current) sha0 Add info about next-server DHCP option |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Booting Windows PE ====== | ====== Booting Windows PE ====== | ||
+ | |||
+ | {{:screenshots:windows_aik.png?303×222 |Windows AIK installation screen}} | ||
===== Overview ===== | ===== Overview ===== | ||
- | Windows Preinstallation Environment (WinPE) is a network-bootable version of Windows designed for installation, troubleshooting or system recovery. It is not a fully-functional Windows system; it can be used only for these specific tasks. If you want to boot a fully functional version of Windows, you need to [[:sanboot|Boot from SAN]] instead. | + | Windows Preinstallation Environment (WinPE) is a network-bootable version of Windows designed for installation, troubleshooting or system recovery. It is not a general-purpose Windows system; it can be used only for these specific tasks. If you want to boot a fully functional version of Windows, you need to [[:sanboot|Boot from SAN]] instead. |
===== Obtaining Windows AIK ===== | ===== Obtaining Windows AIK ===== | ||
- | Windows PE is available as part of the Windows Automated Installation Kit (AIK). Download the AIK from its home page at [[http://www.microsoft.com/downloads/details.aspx?FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2&DisplayLang=en]], or from the direct download at [[http://download.microsoft.com/download/8/6/d/86d6ba9c-98ff-444e-87ed-3e76772eb2a6/vista_6000.16386.061101-2205-LRMAIK_EN.img]]. | + | Windows PE is available as part of the Windows Automated Installation Kit (AIK). Download the AIK from its home page at [[http://www.microsoft.com/downloads/details.aspx?FamilyID=94BB6E34-D890-4932-81A5-5B50C657DE08&displaylang=en]], or from the direct download at [[http://download.microsoft.com/download/9/c/d/9cdfa30e-5901-40e4-b6bf-4a0086ea0a6a/6001.18000.080118-1840-kb3aikl_en.iso]]. |
Install the AIK onto a working Windows system (the "technician computer"). The installation requires around 1GB of disk space. | Install the AIK onto a working Windows system (the "technician computer"). The installation requires around 1GB of disk space. | ||
- | |||
===== Setting up WinPE ===== | ===== Setting up WinPE ===== | ||
- | Open the Windows PE Tools Command Prompt (//Start// -> //All Programs// -> //Microsoft Windows AIK// -> //Windows PE Tools Command Prompt//) and enter the following commands: | + | Open the Windows PE Tools Command Prompt (//Start// -> //All Programs// -> //Microsoft Windows AIK// -> //Windows PE Tools Command Prompt//) and enter the following commands (some of which are case-sensitive). Note that if you intending to install a 64 bit version of Windows, the second command below should specify "amd64" instead of "x86" (amd64 is a generic reference to 64 bit support which includes support for both AMD and Intel based 64bit hardware): |
mkdir C:\Temp | mkdir C:\Temp | ||
- | copype x86 C:\Temp\Boot | + | 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 | imagex /mount winpe.wim 1 mount | ||
copy mount\Windows\Boot\PXE\pxeboot.n12 pxeboot.n12 | copy mount\Windows\Boot\PXE\pxeboot.n12 pxeboot.n12 | ||
copy mount\Windows\Boot\PXE\bootmgr.exe bootmgr.exe | copy mount\Windows\Boot\PXE\bootmgr.exe bootmgr.exe | ||
+ | copy mount\Windows\System32\bcdedit.exe bcdedit.exe | ||
imagex /unmount mount | imagex /unmount mount | ||
- | copy ISO\boot\boot.sdi boot.sdi | + | 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" %a in ('%BCDEDIT% -create -d "Windows PE" -application osloader') do set GUID=%a | ||
+ | %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: When using inside a batch file, replace %a with %%a (twice) in the "for" command parameters. | ||
+ | |||
+ | ===== Transferring WinPE to a TFTP server ===== | ||
+ | |||
+ | Copy the //C:\Temp\Boot// directory to your TFTP server. The //Boot// directory must appear directly within your TFTP server's root. For example, if your TFTP server is running on a Linux system and the TFTP server root is ///var/lib/tftpboot//, then the //C:\Temp\Boot// directory must be copied as ///var/lib/tftpboot/Boot//. | ||
+ | |||
+ | Several of the filenames are case-sensitive, and you **must** ensure that the case is preserved when you copy the files. Assuming that your TFTP server root is ///var/lib/tftpboot//, the filenames should appear as: | ||
+ | |||
+ | * ''/var/lib/tftpboot/Boot'' | ||
+ | * ''/var/lib/tftpboot/Boot/pxeboot.n12'' | ||
+ | * ''/var/lib/tftpboot/Boot/bootmgr.exe'' | ||
+ | * ''/var/lib/tftpboot/Boot/BCD'' | ||
+ | * ''/var/lib/tftpboot/Boot/winpe.wim'' | ||
+ | * ''/var/lib/tftpboot/Boot/boot.sdi'' | ||
+ | |||
+ | ===== Configuring DHCP and TFTP ===== | ||
+ | |||
+ | Configure your DHCP server to hand out //"\Boot\pxeboot.n12"// as the boot filename. | ||
+ | |||
+ | **For ISC DHCPD**, you can do this by adding the following to ///etc/dhcpd.conf//. | ||
+ | |||
+ | next-server XXX.XXX.XXX.XXX; | ||
+ | filename "\\Boot\\pxeboot.n12"; | ||
+ | |||
+ | where the **next-server** details either the IP address or DNS hostname of your TFTP server. | ||
+ | {{ :warning.png}} | ||
+ | |||
+ | <sub>Note that you **must** use a backslash (\) as the path separator, rather than the more usual forward slash (/). If you use a forward slash, //pxeboot.n12// will be unable to locate //bootmgr.exe// and the boot will fail. Your TFTP server must be configured to support the use of backslashes as path separators; see [[:tftp_backslash|Supporting broken TFTP clients]] for instructions on configuring your TFTP server to do this. | ||
+ | |||
+ | Note also that each backslash is doubled within ///etc/dhcpd.conf//; this is because ISC DHCPD treats a backslash as an escape character.</sub> | ||
+ | |||
+ | **For Microsoft DHCP Server**, set the following options | ||
+ | |||
+ | Option Number Option Name Value | ||
+ | 066 Boot Server XXX.XXX.XXX.XXX | ||
+ | 067 Bootfile Name boot\pxeboot.n12 | ||
+ | |||
+ | where option 66 refers to your TFTP server's IP address or DNS hostname. | ||
+ | |||
+ | ===== Booting WinPE ===== | ||
+ | |||
+ | Boot your diskless client using gPXE. If all has gone well, you should see it boot from your WinPE image. It takes quite a long time, since WinPE downloads over 160MB of data via TFTP and also seems to occasionally spend several minutes sitting at a blank screen apparently doing nothing. | ||
+ | {{ :screenshots:winpe.png?400x300 |Windows PE booted via gPXE}} | ||
+ | Congratulations on a successful boot of Windows PE! |