Microsoft deployment tools vmware xp amd pcnet nic missing

From Svendsen Tech PowerShell Wiki
Jump to: navigation, search




General Information

I ran into this issue while I was setting up Windows Deployment Services and Microsoft Deployment Tools (the 2012 beta right now), generated a Lite Touch boot image and tried to PXE boot into Windows PE from it, using a VMware virtual machine, configured for 32-bit Windows XP.

This issue occurs with (at least) VMware Workstation 7, WMware Workstation 8, VMware ESX(i) 4.1 and VMware ESXi 5.0. I think it also happens with VMware Server 2. It will happen with any virtual machine that uses the AMD PCnet network interface card (NIC), unless the driver is added to the Windows AIK Win PE boot image by Microsoft in the future.

I had forgotten about this issue when I initially started deploying Windows XP at work using WDS/MDT 2010, while using VMware virtual machines heavily for building and testing images. That was in the early days before expenses could be covered, so I am pretty sure this first occurred while I was using the free VMware Server 2 version. Sadly, VMware Server 2 doesn't seem to be maintained anymore; last I checked the latest update was from 2009 (written 2011-10-27). VMware Workstation is a better product for desktop use on modern operating systems and hardware (VMware Server isn't officially supported on post-XP Windows, but most things will work).

With VMware Workstation version 8 came "shared VMs" and remote connection capabilities. You can now connect to VMs on computer B from computer A using the VMware Workstation GUI, and VMs will continue to run after a user logs off.

Error Message

I am now testing the MDT 2012 beta (November 2011), and ran into the issue again when I first PXE booted a VM in a fresh MDT/WDS test environment. The VM was in ESXi 5.0, which I recently upgraded to from ESXi 4.1. This is a home lab with officially unsupported hardware. Hardware support seems to be a lot better in ESXi 5.0 as the VMs run a lot smoother and it detected the Realtek NICs. Anyway, the error I got was:

Wizard Error

A connection to the deployment share (\\server\DeploymentShare$) could not be made.
The following networking device did not have a driver installed.
PCI\VEN_2011&DEV_2000&SUBSYS_20001022&REV_10

Abort - Abort Litetouch and cleanup (No Recovery).
Retry - Retry network operation.
Ignore - Cancel out of Litetouch (Retry later).

Mdt-amd-pcnet-vmware-lite-touch-error-message.png

Solution

Fortunately, I knew what to do: Add the AMD PCnet NIC driver in MDT and rebuild the boot images by updating the deployment share. So I found the old driver I downloaded some time ago.

Side note: I hate finding drivers from those horrible driver sites, and don't trust them at all, so I think I found this driver on some VMware communities forum, but I honestly don't remember. If it's any consolation, a fairly paranoid person deemed the source credible at the time, and has been using them for years.

AMD PCnet Family NIC Driver Download

Here is a driver for the NIC used by Windows XP / Server 2003 VMware virtual machines.

AMD_PCnet_family_VMware_nic_V4.51.zip

Brief Description of How To Add the Driver in MDT

  • Download and unzip the driver
  • In Deployment Workbench, connect to the correct deployment share, if necessary.
    • Go to Deployment Share -> MDT Deployment Share -> Out-of-Box Drivers.
    • Create a folder or the required folder structure for the VMware NIC drivers or use an existing folder.
    • Right-click the appropriate driver folder and choose "Import Drivers".
    • Follow the wizard and use the root of the unzipped folder with AMD PCnet NIC drivers as "Driver source directory".
      • This will create a duplicate driver entry, indicated by " (1)" at the end of the name. I deleted the duplicate without losing functionality.
    • Update the deployment share, by right-clicking "MDT Deployment Share" and choosing "Update Deployment Share".

Mdt-amd-pcnet-deployment-workbench-nic-driver-added.png Mdt-amd-pcnet-update-deployment-share.png

How to Add the Driver Using the Command-line Tool Dism.exe

This is not specific to Microsoft Deployment Tools. To edit the MDT Lite Touch image, copy the appropriate image (wim file) from <drive:>\DeploymentShare\boot and work on that.

The easiest way is probably to set up a PE environment. I'm talking about 32-bit XP and presumably editing a 32-bit/x86 image for 32-bit XP deployment, so we'll use an x86 image. The procedure will be almost identical for a 64-bit Win PE image. Start PowerShell as administrator and go to the directory "C:\Program Files\Windows AIK\Tools\PETools" (command: cd 'C:\Program Files\Windows AIK\Tools\PETools' ) and issue the command seen at the top here (note: if the target directory already exists, you will get an error message):

Set Up a Win PE x86 Mount Environment

PS C:\Program Files\Windows AIK\Tools\PETools> .\copype.cmd x86 C:\pe-x86

===================================================
Creating Windows PE customization working directory

    C:\pe-x86
===================================================

        1 file(s) copied.
        1 file(s) copied.
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\bcd
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\boot.sdi
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\bootfix.bin
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\etfsboot.com
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\chs_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\cht_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\jpn_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\kor_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\wgl4_boot.ttf
9 File(s) copied
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\bcd
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\chs_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\cht_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\jpn_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\kor_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\wgl4_boot.ttf
6 File(s) copied
        1 file(s) copied.

Success

Updating path to include peimg, cdimage, imagex

   C:\Program Files\Windows AIK\Tools\PETools\
   C:\Program Files\Windows AIK\Tools\PETools\..\AMD64

PS C:\Program Files\Windows AIK\Tools\PETools> cd C:\pe-x86
PS C:\pe-x86> 

Get the Required Dism Files

PS C:\pe-x86> copy 'C:\Program Files\Windows AIK\Tools\x86\Servicing\*.*' .

Change the part of the path with "x86" to "amd64" if you're working on a 64-bit image.

Get Information About the Win PE File

You can get some information about the Win PE boot image with this command:

PS C:\pe-x86> .\Dism.exe /get-wiminfo /wimfile:winpe.wim

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Details for image : winpe.wim

Index : 1
Name : Microsoft Windows PE (x86)
Description : Microsoft Windows PE (x86)
Size : 721,731,007 bytes

The operation completed successfully.
PS C:\pe-x86> 

Mount the Win PE Image

Create the subdirectory "mount" below the current working directory if it's missing (command: md mount).

PS C:\pe-x86> .\Dism.exe /mount-wim /wimfile:winpe.wim /index:1 /mountdir:mount

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Mounting image
[==========================100.0%==========================]
The operation completed successfully.
PS C:\pe-x86> dir .\mount

Add the Driver

First I read the help text about adding drivers:

PS C:\pe-x86> .\Dism.exe /image:mount /add-driver /?

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7600.16385


/Add-Driver {/Driver:<folder_containing_INF> | /Driver:<path_to_driver.inf>}
            [/recurse] [/ForceUnsigned]

  Adds drivers to an offline image. Use /recurse to query all subfolders for
  drivers. Use /ForceUnsigned to add unsigned drivers to X64-based images.
  This command is not supported against an online image.

    Examples:
      DISM.exe /Image:C:\test\offline /Add-Driver
        /Driver:D:\Drivers\Usb\Usb.inf

      DISM.exe /Image:C:\test\offline /Add-Driver /Driver:D:\Drivers /recurse

Then I added the driver:

PS C:\pe-x86> .\Dism.exe /image:mount /add-driver /driver:C:\drivers\AMD_PCnet_family_vmware_nic_V4.51 /recurse

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image Version: 6.1.7600.16385

Searching for driver packages to install...
Found 2 driver package(s) to install.
Installing 1 of 2 - C:\drivers\AMD_PCnet_family_vmware_nic_V4.51\WinServer2003_SignedDriver\netamd.inf: The driver
package was successfully installed.
Installing 2 of 2 - C:\drivers\AMD_PCnet_family_vmware_nic_V4.51\WinXP_SignedDriver\netamd.inf: The driver package
was successfully installed.
The operation completed successfully.

Unmount WIM and Save Changes

Finally I unmounted the WIM and saved the changes:

PS C:\pe-x86> .\Dism.exe /unmount-wim /mountdir:mount /commit

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Image File : C:\pe-x86\winpe.wim
Image Index : 1
Saving image
[==========================100.0%==========================]
Unmounting image
[==========================100.0%==========================]
The operation completed successfully.

End Result

Wds-menu.png Winpe-xp-vmware-vm-nic-configured.png