This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
appnote:chainload_wds [2014/12/22 16:25] svenx Screenshots from RegEdit and Wireshark |
appnote:chainload_wds [2015/11/05 14:58] svenx Re-word to refer to PXE NBP section of :settings. |
||
---|---|---|---|
Line 17: | Line 17: | ||
''HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WDSServer/Providers/WDSTFTP/ReadFilter'' | ''HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WDSServer/Providers/WDSTFTP/ReadFilter'' | ||
that controls which TFTP paths are mapped to the directory containing | that controls which TFTP paths are mapped to the directory containing | ||
- | the various installation files. | + | the various installation files defined by the ''RootFolder'' registry key in the same location. |
{{ :appnote:regedit-wdstftp.png?400|RegEdit WDSTFTP}} | {{ :appnote:regedit-wdstftp.png?400|RegEdit WDSTFTP}} | ||
Line 44: | Line 44: | ||
Loading the initial WDS network boot program ''wdsnbp.com'' can be | Loading the initial WDS network boot program ''wdsnbp.com'' can be | ||
done either directly from the iPXE shell or via a menu entry. The only | done either directly from the iPXE shell or via a menu entry. The only | ||
- | thing that needs to be modified is the DHCP ''next-server'' setting, | + | thing that needs to be modified is the DHCP ''next-server'' parameter, |
which will let ''wdsnbp.com'' know which server to communicate with. | which will let ''wdsnbp.com'' know which server to communicate with. | ||
- | Due to how iPXE handles [[:settings#scopes|configuration setting | + | |
- | scope]], it is important that the //original// setting is modified. In | + | Be sure to [[:settings#pxe_nbps|set DHCP options]] so that they are |
- | other words, modify ''netX.dhcp/next-server'' (or use an explicit | + | made available to the PXE NBP. For example, the ''next-server'' |
- | interface number: ''net0.dhcp/next-server''), not simply the | + | parameter can be set via ''netX/next-server''. |
- | ''next-server'' or ''netX.net-server'' values. | + | |
Example iPXE commands to chainload ''wdsnbp.com'': | Example iPXE commands to chainload ''wdsnbp.com'': | ||
- | set netX.dhcp/next-server ip.of.wds.server | + | set netX/next-server ip.of.wds.server |
- | imgexec tftp://${netX.dhcp/next-server}/boot/x86/wdsnbp.com | + | imgexec tftp://${netX/next-server}/boot/x86/wdsnbp.com |
===== The WDS boot process ===== | ===== The WDS boot process ===== | ||
Line 93: | Line 92: | ||
* filename: ''boot\x64\pxeboot.n12''. | * filename: ''boot\x64\pxeboot.n12''. | ||
* option 250: ''0b0101100400000001ff'' | * option 250: ''0b0101100400000001ff'' | ||
- | * option 252: \Tmp\x86x64{GUID}.bcd | + | * option 252: ''\Tmp\x86x64{GUID}.bcd'' |
- Client: ''wdsnbp.com'' requests TFTP ''/boot\x64\pxeboot.n12''. | - Client: ''wdsnbp.com'' requests TFTP ''/boot\x64\pxeboot.n12''. | ||
- Client: ''pxeboot'' requests TFTP ''/boot\x64\bootmgr.exe''. | - Client: ''pxeboot'' requests TFTP ''/boot\x64\bootmgr.exe''. | ||
Line 118: | Line 117: | ||
* TFTP error codes from the WDS server. | * TFTP error codes from the WDS server. | ||
* DHCP options in the client requests and server responses. | * DHCP options in the client requests and server responses. | ||
+ | * The WDS event log in Windows. | ||
==== TFTP download errors ==== | ==== TFTP download errors ==== | ||
Line 133: | Line 133: | ||
If either ''wdsnbp.com'' or ''pxeboot.n12'' gets stuck in a request | If either ''wdsnbp.com'' or ''pxeboot.n12'' gets stuck in a request | ||
loop, it is likely that the initial TFTP download worked, but | loop, it is likely that the initial TFTP download worked, but | ||
- | subsequent ones are failing. This happens because iPXE uses forward | + | subsequent ones are failing. This can happen because iPXE uses forward |
slashes in the TFTP file path, while the WDS boot programs are prone | slashes in the TFTP file path, while the WDS boot programs are prone | ||
to using a mix of forward and backward slashes. | to using a mix of forward and backward slashes. | ||
Line 153: | Line 153: | ||
HTTP, especially if there is more than a few ms round-trip time | HTTP, especially if there is more than a few ms round-trip time | ||
between the client and server. This results in somewhat long loading | between the client and server. This results in somewhat long loading | ||
- | times for large WIM images, and particularly affects virtual machines | + | times for large WIM images, particularly on links with medium to |
- | that can take ages to download the files. | + | high latency. |
- | The iPXE author has developed [[:wimboot]], a boot loader that takes | + | A good alternative to the PXE mechanism of WDS is [[:wimboot]], a boot loader that takes |
over the roles of ''wdsnbp.com'' and ''pxeboot.n12''. It lets you | over the roles of ''wdsnbp.com'' and ''pxeboot.n12''. It lets you | ||
fetch all the relevant files over HTTP and hand over execution to | fetch all the relevant files over HTTP and hand over execution to |