A bare-metal deployment is build using Altiris Deployment Solutions (HP Rapid Deployment Pack, to be precise). When a client boots Windows PE 2.1 to execute a job (installation of operating system) it doesn’t seem to get an IP address from the DHCP server (Restarting DHCP client service: retry x).
This is strange since the WinPE 2.1 image is downloaded via a PXE boot which acquired a IP address from the DHCP server without problems, the DHCP mechanism is working.
This caused me some serious headache a few months ago (at another customer). I investigated the problem and found the cause of the problem.
The problem is caused by a missing / wrong driver for the network interface card. Since no message is displayed that a driver is missing, I assume a wrong driver is loaded. Because the wrong driver is loaded the TCP/IP stack isn’t working properly which results in the message seen above.
By adding the correct driver to the WinPE driver repository the problem is probably solved.
Determine NIC installed
Since the machine is provisioned with a Windows 7 installation out-of-the-box it is easy to determine the NIC installed. In this case a ‘Realtek RTL8168D/8111D-Family PCE-E Gigabit Ethernet NIC’.
To determine if the driver is already present in the driver repository of the WinPE image I need the Vendor and Device ID.These are visible in the ‘Details’ tab of the properties of the NIC by selecting ‘Hardware-ID’s’ in the combo box. In this case the vendor ID is 10EC (Realtek) and the Device ID is 8168. The device contains the ‘RTL8167’chipset according to the PCI database.
Finding the correct driver
Now we know the NIC (and chipset) we can find a driver for WinPE 2.1. Since WinPE 2.1 is used we’re looking for a Windows Server 2008 / Windows Vista SP1 driver. A quick Google search (for Vista drivers) led me to a driver on the Realtek site.
Adding driver to WinPE driver repository
The boot image for Windows PE can be altered from the Altiris Deployment Solutions console via ‘Tools –> PXE Configuration’. This will open the ‘PXE Configuration Utility’ showing all boot options.
- Select the WinPE2.1 boot image and click ‘Edit’. This will open the ‘Edit Shared Configuration’ dialog.
- This will open the ‘Boot Disk Creator’ dialog.
- Select the root node and open the context menu (right mouse click) and select ‘Edit Configuration…’
- Click Next until you reach ‘Step 2 of 12 : Windows PE Hardware Device Drivers’
- Deselect ‘Auto-detect all device drivers’ (if selected)
- Check if a driver for the device (Vendor ID / Device ID) is already present. In my case it was and I decided to replace it with a new driver.
- Click ‘Have Disk’
- Add the driver you downloaded before (both x86 and x64 if required)
- Select ‘Auto-detect all device drivers’ (if it was selected in step 4)
- Click Next until you reach ‘Step 11 of 12: Edit configuration’
- During step 11 the WinPE boot image will be re-created by extracting the WIM images, injecting drivers and scripts, and rebuilding (and optionally compressing) the WIM image. This is done for all selected architectures (X86 / X64 / IA64).
- Wait until ‘Step 12 of 12: Boot Disk Creation Complete’ is shown and click ‘Finish’
- Close the ‘Edit Shared Configuration’ dialog
- Click ‘Save’ in the ‘PXE Configuration Utility’
- Select the tab ‘Status’ and wait until the status of all PXE servers change from ‘Updating’ to ‘Ready’.
And you’re done! Replacing the driver solved the problem, the client got an IP address and continued to perform the task it was given.