none
.wim hal issue RRS feed

  • Question

  • Ok, I have a fully functional WDS service and can capture and deploy syspreped windows xp images to my current dual-core processor hardware.  My problem is with some older models. 

    When we created our image originally it was on a Celeron processor and we syspreped it and uploaded to a novell zenworks server, we deployed that image to other production computers and added needed drivers after sysprep, then repackaged and uploaded, rinse and repete and before you know it, we have an image with drivers to work on every model computer we have in the building with our apps and settings included.

    When I upload this syspreped image to wds (from either a mp or up hal machine) it shows up as a MP hal in WDS.  Well only the new dual-core processors that I have will match this hal (and be able to see the image in WDS deployment).  When I pull down the image from zenworks and let it sysprep on a dual-core machine it shows up as a MP, when I pull down the image from zenworks and let it sysprep on an older P4 or AMD machine it shows up as a UP hal, however when I use that exact machine (UP hal) to upload into WDS..... wait for it......it still shows up as a MP hal type.  I am 99% sure its a Hal problem b/c when I image a dual-core machine then remove the hard drive and put it in an older P4 or AMD (UP hal) and let it go through sysprep it works just fine.

    Is there a way to force WDS to ignore the Hal of the machine and show all posted images

    or

    Is there a way to forcebly change the hal on a .wim image as I know the image will work on my hardward b/c thats the machine i uploaded it from...


    And if not...

    In this forum I see others are having the same problem and trying various things to fix it:

    http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1323562&SiteID=17

    But, none of the offered fixes from that thread worked for me.
    Thursday, November 8, 2007 1:51 PM

Answers

  • Ok, I have edited a few of my previous comments as to not confuse people.  I am reposting an updated guide to deploying .wim syspreped xp images via WDS reguardless of HAL.





    Some things to know:

    This guide will only apply the image (reguardless of HAL) to a hard drive, it doesn't mean the image will work on that machine, thats up to you when you create the image.  AKA, this fix doesn't make the image's HAL independent, it makes WDS allow you to apply an image reguardless if it perfectly matches up with your hardware (the whole reason I started this post).  I have never had an issue applying a "newer" MP/UP HAL to an older type HAL hardware (Standard PC, NON-APCI MP, ACPI PC,etc) that you will find with some (even current) motherboards.  When sysprep runs it adds the drivers that are supplied in windows to match up to what it needs just like if you added a video card then ran through sysprep but this time the drivers are allready there.

    I have tried to leave the code as easy to read/modify as possible and still offer as much functionality as possible, feel free to edit to your own needs.

     

    **The Smilies are actual code, for example : followed by D will make a Emoticon, copy/pasting from here to notepad fixes this.**


    Disclaimer:  These instructions are followed at your own risk, you assume all responsibility



    INSTRUCTIONS ON HOW TO APPLY WINDOWS XP IMAGES VIA WDS REGUARDLESS OF HAL:


    1. Download WAIK (Windows Automated Installation Kit) and install to the server you will use as the WDS deployment server.  Follow all install istructions including any prerequesit software installs.

     

    http://www.microsoft.com/downloads/details.aspx?FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2&DisplayLang=en

    2. Get a Windows Vista or
    Server 2008 DVD and copy the boot.wim file from the root of the DVD to a temp folder on your desktop.

    3
    . Open Windows Deployment Services (might as well put a shortcut on the desktop as you will be using it a lot), expand the tree
    to the boot images, right click on boot images and choose to add the boot.wim file from your desktop as a boot image, name it Deploy Boot Image (this is the regular choice for deployment for machines that don't run into the HAL issue)

    4.
    Right click on the new Deploy Boot Image and choose Create Capture Image, save it on your desktop naming it Capture Boot Image.

    5.
    Using WDS add the newly created capture image as a boot image, name it Capture Boot Image.

    6.
    Create a directory named WDSTemp on the root of your C drive and a folder inside that named 1, on the root of the WAIK DVD find the WinPE.cab file and open it, extract the file F1_WinPE.wim, save it to C:\WdsTemp, this will be our tool of delivery later for non matching HALs.

    7. Create the following .bat files.

    7.1 Mount.bat, create in C:\WDSTemp:

    Code Snippet
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /mountrw "C:\wdstemp\F1_WinPE.wim" 1 "C:\wdstemp\1"

     



    7.2 Commit.bat, create in C:\WDSTemp:

    Code Snippet
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /commit /unmount "C:\wdstemp\1"

     

     

    7.3 Note: this is the .bat that will actually apply the syspreped image to your HD so this is the major piece of code you will be editing depending on what type of setup you have.  Read and understand what this batch file does so you can adapt it to your needs.  For example I have two Install image groups in WDS, ProductionShuttles and Servers so the :imagetype, :workstation and Tongue Tiederver sections will be different depending on how many image categories/groups you want to have.  Also the :restart sections has both "-" and "/" flags on its commands in two seperate lines, I did this because depending on what kind of image I was applying it needed the XP or Windows Server 2003 command flags for the shutdown command.

     

    *For anybody that has never seen the "if not '%choice%'=='' set choice=%choice:~0,99%" line before, what the 99 does is extend the number of characters that will be looked at for the %choice% variable, so the whole word of TEST would be used for %choice% instead of just T, we dont actually need 99 characters most of the time but it keeps our options open.

     

    Substitute:

    WDS_SERVER=the name of your WDS server

    IMAGE_GROUP_NAME(1, 2, etc.)=the name of the image group in WDS where the install image is

    DOMAIN_NAME=the netbios name of the domain the WDS server is a part of (eg. CompanyAD)

    USERNAME=the password of the AD account used to authenticate to the image share

    ImagePassword=the password for USERNAME

     

     

    Please note that some of the lines show on this page as two lines but are in fact only one, seperated into two because of spacing, if you copy/paste from this forum page into notepad it will work it self out, if in doubt look up the syntax of the command.


     

    Image.bat, create in C:\WDSTemp

    Code Snippet

     

    color 1e
    cls


    :disclaimer
    cls
    @echo This console will format your hard drive and apply a disk image.
    @echo Do you wish to continue? (Y/N)

    @echo Press D to run Disk Part (D)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice Y/N/D:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='y' goto format
    if '%choice%'=='n' goto end

    if '%choice%'=='d' goto diskpart

    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto disclaimer
    @echo off

     


    :format
    cls
    IF NOT EXIST C:\ GOTO diskpart

    cls
    @echo Would you like a full format or quick format?
    @echo Choose (Q/F)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice Q/F:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='q' goto quick
    if '%choice%'=='f' goto full


    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto format
    @echo off

     

     

    :quick
    cls
    format C: /v:"" /q
    goto imagetype

     


    :full
    cls
    format C: /v:""
    goto imagetype

     

     


    :imagetype
    cls
    @echo prepairing network...
    @echo off
    net use I: \\WDS_SERVER\REMINST\Images /user:DOMAIN_NAME\USERNAME ImagePassword /persistent:no

    cls
    @echo What type of image would you like to apply?
    @echo IMAGE_GROUP_NAME_1 or IMAGE_GROUP_NAME_2 (W/S)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice W/S:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='w' goto workstation
    if '%choice%'=='s' goto server

    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto imagetype
    @echo off

     

     


    :workstation
    cls

    I:
    cd "I:\IMAGE_GROUP_NAME_1"

    cls
    @echo Push any Key to see available images:
    @echo.
    @echo.
    Pause
    cls
    dir *.wim /b

    @echo.
    @echo Enter the exact file name (including .wim extention) of the Image you want to apply.
    @echo.
    @echo off
    set choice=
    set /p choice=Enter image file name:
    if not "'%choice%'"=='' set choice=%choice:~0,99%

    cls
    imagex /ref "I:\IMAGE_GROUP_NAME_1\res.rwm" /apply "I:\IMAGE_GROUP_NAME_1\%choice%" 1 C:\
    goto restart

     

     


    :server
    cls

    I:
    cd "I:\IMAGE_GROUP_NAME_2"

    cls
    @echo Push any Key to see available images:
    @echo.
    @echo.
    Pause
    cls
    dir *.wim /b

    @echo.
    @echo Enter the exact file name (including .wim extention) of the Image you want to apply.
    @echo.
    @echo off
    set choice=
    set /p choice=Enter image name:
    if not "'%choice%'"=='' set choice=%choice:~0,99%

    cls
    imagex /ref "I:\IMAGE_GROUP_NAME_2\res.rwm" /apply "I:\IMAGE_GROUP_NAME_2\%choice%" 1 C:\
    goto restart

     

     


    :restart
    shutdown /r /f
    Shutdown -r -f
    goto end

     

     

    :diskpart
    cls
    @echo Your C drive has no useable partition, please run DistPart or another drive prep tool first then try again.
    @echo.
    @echo Push any key to run DiskPart.
    @echo.
    pause
    cls
    diskpart
    goto disclaimer

     


    :end
    exit

     

     

    8. Browse Explorer into C:\Program Files\Windows AIK\Tools\x86 and copy the imagex.exe file then paste that into the root of ANY Install image groups, (in my example it was ProductionShuttles and Servers) the location should look like this: WhereEverYouInstalledWDS\WDS\Images\ImageGroupName (E:\WDS\Images\Servers).  This allows the image.bat to apply the image.

     

    9. Add a user to your Domain named Image.  Make this account's password never expire and give it full rights to the WDS share permissions and folder permissions.

     

    10. Browse Explorer into C:\WDSTemp and run mount.bat this takes the contents of the F1_WinPE.wim file and unpacks them into the folder named 1. 

     

    11. Copy the image.bat file then browse into C:\WDSTemp\1\Windows\System32, paste the image.bat file.  Right click on startnet.cmd in the same folder and choose edit.  Under wpeinit type image.bat so that it looks like this:

    Code Snippet

    wpeinit
    image.bat

     

     

    12. Browse Explorer into C:\WDSTemp and run Commit.bat, this takes the contents of the folder 1 and re-packs them back into the F1_WinPE.wim file.

     

    13. Using WDS add the F1_WinPE.wim file as a boot image named HAL Independent Boot Image

     

    Now sysprep a machine you want with all the software installed, updates installed, drivers and personal settings and PXE boot into the Capture Boot Image, upload the image into the Image Group you want and your all set!

     

    PXE boot into the HAL Independent Boot Image and wait for wpeinit to finish running and image.bat will start on its own, format, choose the image group and image name and your off and running.  The compression (simply amazing) speeds of WDS apply to imagex as well, a "one image fits all machines" 8.5 Gb image that I use for production pulls down over normal network traffic in 12 minutes.

     

     

     

    2-20-08  1223 page views to date (just a reference)

    Tuesday, February 19, 2008 10:57 PM

All replies

  • Hmm, nobody has any experience with this?
    Friday, November 9, 2007 3:13 PM
  • There is no way that I know of for WDS to ignore HAL's.  Vista is HAL independent but Windows XP is not. 

     

    When using the sysprep (as we have discussed before Smile) to force a new HAL, fails I have always had to find a computer that matches what I need and do a complete new rebuild on the system from scratch (usually a long time) and sysprep that to an image, where the image isn't a replica from anything.  I had to build a UP image from a P3 machine once to accommodate, then wiped it once the image was created.  Old AMD's are an issue though since MP and UP images won't install on some.

     

    On really old systems I just had to resort to creating a Ghost32 image and using it from WDS utility boot that I created from WAIK (which I added ghost32 to for this purpose to it) so it wouldn't automatically go to my WDS server on the OS listings.

     

    WIM are a major advance from RIS but not nearly as flexible and won't work on some scenarios.  Ghost helps in these situations.

     

    Jeff

     

    Friday, November 9, 2007 3:23 PM
  • Thats the strange thing, I did managed to get the hal from MP to UP on the machine via a work around that included:

    1. installing windows to another folder (winxp instead of windows) on the same partition and pushing F5 during the time where you can push F6 to add raid drivers (from there you can select the specific hal you want to use)

    2. boot into the new copy of winodws and copy the hal.dll from the winxp\system32 folder to the windows\system32 folder

    3. boot back into the orriginal windows install and delete the winxp folder and adjust the boot.ini to only load the one install.

    The hal shows (correctly) as UP on the machine (an older p4) and I used that machine to upload the image to WDS, but its still showing as MP on WDS.  I know the Hal is correctly UP on this machine, but when I sysprep (no hal update info in the sysprep.inf file) and send over to WDS, its back to MP and driving me nuts.

    I love the compression, I can put down a 8 Gig image in 10 minutes or less from F12 to sysprep but I can't seem to get WDS to recognize that the UP image is a UP image, it was started on a Celeron (UP) and uploaded from a P4 (UP) but when it gets to WDS, poof!



    Anybody know, is there a way to force a specific hal onto a wim image either during the upload or after?

    Also do you think this applys to my situation?
    http://support.microsoft.com/kb/935772
    Friday, November 9, 2007 4:29 PM
  • Bump for MS response!!
    Monday, November 12, 2007 4:25 AM
  • Edit: Please see the very long post on this page for updated instructions on applying non matching HALs via WDS.

    Monday, November 12, 2007 5:07 PM
  •  

    Thanks for this info but when I tried this, XP installs with a multiprocesor  HAL, even on single processor PC's!

    Surely this cannot be healthy? Am I doing something wrong?

    Tuesday, November 27, 2007 11:08 AM
  •  BenM68 wrote:

     

    Thanks for this info but when I tried this, XP installs with a multiprocesor  HAL, even on single processor PC's!

    Surely this cannot be healthy? Am I doing something wrong?

     

    Installing Multiprocessor HAL Image on Singleprocessor PCs? Didn't this guide made the image HAL "independent"? and does it fail if you install it on a Singleprocessor PC? Did you have problems after installation? What exactly are you suggesting/requesting/stating?

     

    I have the image ready, have not applied it YET, so if there are any pros and cons please post em.

    Wednesday, November 28, 2007 11:44 AM
  • Correct, the HAL type will be wrong b/c of the image, but the image will work just fine, once the machine syspreps it will add any drivers it needs to function or error right there, if you can boot to windows post sysprep, your good to go.  I know its frustrating but until MS unlocks non-matching HALs in WDS this is the only way I have been able to apply the image.
    Wednesday, December 12, 2007 4:17 PM
  • There is a hotfix for WDS which will solve some of your HAL-related problems. The hotfix is here:

     

    http://support.microsoft.com/kb/309283/en-us

     

    Note though: XP, Server 2003 and earlier images are HAL-dependent and installing across HALs is not supported. 

    Saturday, December 15, 2007 1:51 AM
  • How can I download this hotfix? Will it apply to Win2003 SP2?

    Thanks!


    Tuesday, February 19, 2008 12:56 AM
  • Ok, I have edited a few of my previous comments as to not confuse people.  I am reposting an updated guide to deploying .wim syspreped xp images via WDS reguardless of HAL.





    Some things to know:

    This guide will only apply the image (reguardless of HAL) to a hard drive, it doesn't mean the image will work on that machine, thats up to you when you create the image.  AKA, this fix doesn't make the image's HAL independent, it makes WDS allow you to apply an image reguardless if it perfectly matches up with your hardware (the whole reason I started this post).  I have never had an issue applying a "newer" MP/UP HAL to an older type HAL hardware (Standard PC, NON-APCI MP, ACPI PC,etc) that you will find with some (even current) motherboards.  When sysprep runs it adds the drivers that are supplied in windows to match up to what it needs just like if you added a video card then ran through sysprep but this time the drivers are allready there.

    I have tried to leave the code as easy to read/modify as possible and still offer as much functionality as possible, feel free to edit to your own needs.

     

    **The Smilies are actual code, for example : followed by D will make a Emoticon, copy/pasting from here to notepad fixes this.**


    Disclaimer:  These instructions are followed at your own risk, you assume all responsibility



    INSTRUCTIONS ON HOW TO APPLY WINDOWS XP IMAGES VIA WDS REGUARDLESS OF HAL:


    1. Download WAIK (Windows Automated Installation Kit) and install to the server you will use as the WDS deployment server.  Follow all install istructions including any prerequesit software installs.

     

    http://www.microsoft.com/downloads/details.aspx?FamilyID=c7d4bc6d-15f3-4284-9123-679830d629f2&DisplayLang=en

    2. Get a Windows Vista or
    Server 2008 DVD and copy the boot.wim file from the root of the DVD to a temp folder on your desktop.

    3
    . Open Windows Deployment Services (might as well put a shortcut on the desktop as you will be using it a lot), expand the tree
    to the boot images, right click on boot images and choose to add the boot.wim file from your desktop as a boot image, name it Deploy Boot Image (this is the regular choice for deployment for machines that don't run into the HAL issue)

    4.
    Right click on the new Deploy Boot Image and choose Create Capture Image, save it on your desktop naming it Capture Boot Image.

    5.
    Using WDS add the newly created capture image as a boot image, name it Capture Boot Image.

    6.
    Create a directory named WDSTemp on the root of your C drive and a folder inside that named 1, on the root of the WAIK DVD find the WinPE.cab file and open it, extract the file F1_WinPE.wim, save it to C:\WdsTemp, this will be our tool of delivery later for non matching HALs.

    7. Create the following .bat files.

    7.1 Mount.bat, create in C:\WDSTemp:

    Code Snippet
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /mountrw "C:\wdstemp\F1_WinPE.wim" 1 "C:\wdstemp\1"

     



    7.2 Commit.bat, create in C:\WDSTemp:

    Code Snippet
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /commit /unmount "C:\wdstemp\1"

     

     

    7.3 Note: this is the .bat that will actually apply the syspreped image to your HD so this is the major piece of code you will be editing depending on what type of setup you have.  Read and understand what this batch file does so you can adapt it to your needs.  For example I have two Install image groups in WDS, ProductionShuttles and Servers so the :imagetype, :workstation and Tongue Tiederver sections will be different depending on how many image categories/groups you want to have.  Also the :restart sections has both "-" and "/" flags on its commands in two seperate lines, I did this because depending on what kind of image I was applying it needed the XP or Windows Server 2003 command flags for the shutdown command.

     

    *For anybody that has never seen the "if not '%choice%'=='' set choice=%choice:~0,99%" line before, what the 99 does is extend the number of characters that will be looked at for the %choice% variable, so the whole word of TEST would be used for %choice% instead of just T, we dont actually need 99 characters most of the time but it keeps our options open.

     

    Substitute:

    WDS_SERVER=the name of your WDS server

    IMAGE_GROUP_NAME(1, 2, etc.)=the name of the image group in WDS where the install image is

    DOMAIN_NAME=the netbios name of the domain the WDS server is a part of (eg. CompanyAD)

    USERNAME=the password of the AD account used to authenticate to the image share

    ImagePassword=the password for USERNAME

     

     

    Please note that some of the lines show on this page as two lines but are in fact only one, seperated into two because of spacing, if you copy/paste from this forum page into notepad it will work it self out, if in doubt look up the syntax of the command.


     

    Image.bat, create in C:\WDSTemp

    Code Snippet

     

    color 1e
    cls


    :disclaimer
    cls
    @echo This console will format your hard drive and apply a disk image.
    @echo Do you wish to continue? (Y/N)

    @echo Press D to run Disk Part (D)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice Y/N/D:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='y' goto format
    if '%choice%'=='n' goto end

    if '%choice%'=='d' goto diskpart

    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto disclaimer
    @echo off

     


    :format
    cls
    IF NOT EXIST C:\ GOTO diskpart

    cls
    @echo Would you like a full format or quick format?
    @echo Choose (Q/F)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice Q/F:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='q' goto quick
    if '%choice%'=='f' goto full


    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto format
    @echo off

     

     

    :quick
    cls
    format C: /v:"" /q
    goto imagetype

     


    :full
    cls
    format C: /v:""
    goto imagetype

     

     


    :imagetype
    cls
    @echo prepairing network...
    @echo off
    net use I: \\WDS_SERVER\REMINST\Images /user:DOMAIN_NAME\USERNAME ImagePassword /persistent:no

    cls
    @echo What type of image would you like to apply?
    @echo IMAGE_GROUP_NAME_1 or IMAGE_GROUP_NAME_2 (W/S)
    @echo.
    @echo off
    set choice=
    set /p choice=Enter choice W/S:
    if not '%choice%'=='' set choice=%choice:~0,1%

    if '%choice%'=='w' goto workstation
    if '%choice%'=='s' goto server

    @echo.
    @echo.
    cls
    echo "%choice%" is not valid choice please try again.
    @echo.
    pause

    cls
    goto imagetype
    @echo off

     

     


    :workstation
    cls

    I:
    cd "I:\IMAGE_GROUP_NAME_1"

    cls
    @echo Push any Key to see available images:
    @echo.
    @echo.
    Pause
    cls
    dir *.wim /b

    @echo.
    @echo Enter the exact file name (including .wim extention) of the Image you want to apply.
    @echo.
    @echo off
    set choice=
    set /p choice=Enter image file name:
    if not "'%choice%'"=='' set choice=%choice:~0,99%

    cls
    imagex /ref "I:\IMAGE_GROUP_NAME_1\res.rwm" /apply "I:\IMAGE_GROUP_NAME_1\%choice%" 1 C:\
    goto restart

     

     


    :server
    cls

    I:
    cd "I:\IMAGE_GROUP_NAME_2"

    cls
    @echo Push any Key to see available images:
    @echo.
    @echo.
    Pause
    cls
    dir *.wim /b

    @echo.
    @echo Enter the exact file name (including .wim extention) of the Image you want to apply.
    @echo.
    @echo off
    set choice=
    set /p choice=Enter image name:
    if not "'%choice%'"=='' set choice=%choice:~0,99%

    cls
    imagex /ref "I:\IMAGE_GROUP_NAME_2\res.rwm" /apply "I:\IMAGE_GROUP_NAME_2\%choice%" 1 C:\
    goto restart

     

     


    :restart
    shutdown /r /f
    Shutdown -r -f
    goto end

     

     

    :diskpart
    cls
    @echo Your C drive has no useable partition, please run DistPart or another drive prep tool first then try again.
    @echo.
    @echo Push any key to run DiskPart.
    @echo.
    pause
    cls
    diskpart
    goto disclaimer

     


    :end
    exit

     

     

    8. Browse Explorer into C:\Program Files\Windows AIK\Tools\x86 and copy the imagex.exe file then paste that into the root of ANY Install image groups, (in my example it was ProductionShuttles and Servers) the location should look like this: WhereEverYouInstalledWDS\WDS\Images\ImageGroupName (E:\WDS\Images\Servers).  This allows the image.bat to apply the image.

     

    9. Add a user to your Domain named Image.  Make this account's password never expire and give it full rights to the WDS share permissions and folder permissions.

     

    10. Browse Explorer into C:\WDSTemp and run mount.bat this takes the contents of the F1_WinPE.wim file and unpacks them into the folder named 1. 

     

    11. Copy the image.bat file then browse into C:\WDSTemp\1\Windows\System32, paste the image.bat file.  Right click on startnet.cmd in the same folder and choose edit.  Under wpeinit type image.bat so that it looks like this:

    Code Snippet

    wpeinit
    image.bat

     

     

    12. Browse Explorer into C:\WDSTemp and run Commit.bat, this takes the contents of the folder 1 and re-packs them back into the F1_WinPE.wim file.

     

    13. Using WDS add the F1_WinPE.wim file as a boot image named HAL Independent Boot Image

     

    Now sysprep a machine you want with all the software installed, updates installed, drivers and personal settings and PXE boot into the Capture Boot Image, upload the image into the Image Group you want and your all set!

     

    PXE boot into the HAL Independent Boot Image and wait for wpeinit to finish running and image.bat will start on its own, format, choose the image group and image name and your off and running.  The compression (simply amazing) speeds of WDS apply to imagex as well, a "one image fits all machines" 8.5 Gb image that I use for production pulls down over normal network traffic in 12 minutes.

     

     

     

    2-20-08  1223 page views to date (just a reference)

    Tuesday, February 19, 2008 10:57 PM
  • Holy c**p, crackin' good job!

     

    Having just successfully deployed a WDS box delivering Win XP desktop and laptop images this tut will make life much easier given that I already have 2 images (desktop and laptop) b/c of HAL dependancy.

     

    Thanks for taking the time to share.

     

    Wednesday, February 20, 2008 5:09 PM
  •  

    Hey, no problem, I just figured as much fun as it was to make, it would be worth it to share.
    Friday, February 22, 2008 7:27 PM
  • Wow that is alot of work.... I have ran into this same problem i have found that you can use a hex editor like HXD to open the WIM image and modify the >HAL TYPE< property just do a search for that in the WIM and replace all occurences with the correct HAL type of the machine in question.  You will then be able to see the image in your Image Group when booting into WDS.  If you would like more detailed instructions let me know i have them at work.

     

    Thanks,
    Brandon

    Thursday, March 6, 2008 2:06 AM
  • CrashandBurn,

     

    I'm right there with you man, that is a buttload of work.  Unfortunately, I went ahead and did it and burned an entire day struggling with minor hiccups in the code (I think they were specific to my environment, I'm not trying to knock the skill of the programmer, it was pretty killer stuff).  But, by the time I was done, I was awarded with nothing but a BOSD for all my efforts.  Your HXD fix sounds beautiful but I'm not totally familiar with the program.  I've downloaded it and tried various ways of opening it (straight up file->Open then tweaking sector size and type, opening as a disk image, and all other ways I could see).  If you could send those instructions on over, I'd really appreciate it, I've been fighting with WDS and HAL differences for the last week or so and I'm starting to lose touch with reality.

     

    Thanks for any help,


    Just a Monkey with a Keyboard

    Thursday, March 6, 2008 2:56 PM
  • CrashandBurn,

     

    I figured out the answer on my own.  For anyone reading this and banging their heads against the wall like I was, here's how to get at what Crash was talking about:

    Download HXD (just Google it)

    Run HXD

    Open your desired .wim file

    Go to Search -> Find (Ctrl + F)

    In the Search for area, type in hal

    Make sure that the data tye is text-string

    Make sure the Unicode String checkbox is checked (That's where I was screwing up)

    Hit ok

    After the <hal> tag, it'll have a spot that says up or mp, change that to desired type

    Hit F5 and find the nex <hal> tag

    Switch out each hal property until it hits the end

     

    I'm working on installing the image that I did this to so I'm not 100% sure if it's going to work out for me or not, but at least it's a shot.  Either way, thanks Crash for pointing me in a direction that had some progress.  I appreciate it.

     

    Thanks,

    MonkeyWithAKeyboard

    Help Desk Dork

    Thursday, March 6, 2008 8:17 PM
  • Sorry monkey yes that is the correct way of doing it and makes things alot easier...  You do have to be careful when editing the WIM if you notice you are increasing the image size when editing you most likely are messing something up.  Let me know if you have any problems and how that works for you.

     

    Thanks,

    B

     

    Thursday, March 6, 2008 8:22 PM
  •  

    I was rewarded with a good ol' fashioned BSOD.  The machine that I'm trying to do this to is only about a week old and I had it going fine off of my default image so I know it's not a busted machine or anything.
    Thursday, March 6, 2008 8:53 PM
  • What type of HAL is it suppose to be>?  When its installed and working what does it show up as?  And what does the WIM say it is when you open it in HXD?  You have to be carefull when in HXD or you will keep going round and round in circles not fixing your problem.

     

    Thanks,
    B

     

    Thursday, March 6, 2008 9:00 PM
  • My original plain image is an mp.  However, I've got a user that is about to get a new computer but she has some crazy programs that the guy before me didn't keep the installation files for.  So I decided I'd be slick (translation: dumb) and create an image of her computer and attack it that way.  The image created was a up (she had a P4) so the new machine wasn't able to see it.  After I did your HXD fix, it converted over to an mp and the new machine was able to see it and grab it.  However, after it's done with the install and reboots, I get a BSOD.  I was insanely careful when I was in HXD and I made a backup copy of the customized image beforehand too.

    Thursday, March 6, 2008 9:18 PM
  •  

    Yea your screwed.... Smile  No but HXD will allow you to change the Image Attribute in the WIM it doesnt actually change the HAL type which is now your problem.  You can see it and deploy it but the HAL that is in the actuall image is wrong  You can try and download the correct HAL From Intel etc... then mount the image and try and replace with the MP HAL and see if that works.  I would do a google search on replacing the HAL after setup.

     

    This is what makes VISTA awesome no more HAL ***.... Smile

    Thursday, March 6, 2008 9:28 PM
  • Before the advent of WDS I would simply put the following line in my Sysprep.inf before I captured my master image. This master image was using a Multiprocessor HAL.

    [Unattended]
        UpdateUPHAL = "ACPIAPIC_UP,%WINDIR%\Inf\Hal.inf"

    Source: http://blog.hishamrana.com/2006/02/22/how-to-image-windows-xp-with-ghost-and-sysprep/

    This simple line would simply "downgrade" the HAL to Uniprocessor if need be. If the machine you were deploying to was multiprocessor then the line would be ignored and the Multiprocessor HAL from the master image would be kept.

    We're now getting into using SCCM 2007 to deliver images through WDS. For some reason, no matter what I do with Sysprep, WDS ALWAYS deploys the image as Multiprocessor, even if the machine i'm deploying it to is Uniprocessor. Why do we have to go through all of these steps and work arounds with WDS when before it was 1 simple line in Sysprep?

    Has anyone successufully used this technique through SCCM 2007?
    Thursday, March 6, 2008 11:36 PM
  • Wow guys, thanks for all the extra info. 

     

    Just to be sure that were not confusing anybody I want to remind the readers that the code I released here was to allow a PXE booting PC to view all the images (reguardless of the image's HAL) and apply them to a disk (not that every image will work with just any computer's HAL), this is a fix mostly for older HAL typed PCs that can still use a newer HAL (acpi --->mp for example). 

     

    Hacking the .wim with a hex editor and changing the HAL properties to another HAL (as described above) will also allow you to view that particular image while PXE booting from a matching HAL but again won't guarantee that the install image will work with the hardware its being applyed to.

     

    So in summery these two methods will allow you to see and apply an image to any HAL type, but if they work or not is up to the HAL of the target machine.  Neither of these fixes will create an image that will work on all HAL types or an HAL independant.

    Monday, March 10, 2008 7:13 PM
  •  

    Hi everybody, I wanted to add something usefull that I have been working on lately to automate the injection of drivers into .wim files, boot images more specifically.  Basically I kept running into different server hardware that had a Raid controler or a NIC card that WDS didn't have drivers to work with, so I made this.

     

     

     

    Instructions on adding drivers to a boot image .wim file.

     

    1. If you followed my instructions on the previous instructional post you should allready have a C:\WDSTemp folder with a few batch files and C:\WDSTemp\1 folder for mounting images.  Create a folder named Drivers in the WDSTemp location (C:\WDSTemp\Drivers).

     

    2.  Find/download/copy the drivers that you will need into the Drivers folder (a good practice is to make a driver cache folder with sub folders describing what drivers are what and for what hardware).  Remember the driver you are injecting here is being installed into a WIN PE 2.0 image, typically Vista or Server 2008 drivers will work but sometimes 2003/xp and previous will also work.  Occasionally a manufacturer will have special RIS/WDS deployment drivers as well.  We are looking for .inf and supporting files here so if you have a .exe, find and copy the files it installs into the Drivers folder instead of the exe.

     

    Create Driver Injection.bat in C:\WDSTemp

    Code Snippet

    color 1f
    cls
    @echo Push any Key to see available images:
    @echo.
    @echo.
    @echo off
    Pause

    cls
    @echo List of available .wim images:
    dir *.wim /b
    @echo.
    @echo.
    @echo Type the image name you want to inject drivers into.
    @echo.
    @echo off
    set choice=
    set /p choice=Enter full image file name (including .wim extension):
    if not "'%choice%'"=='' set choice=%choice:~0,99%


    C:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /mountrw "C:\wdstemp\%choice%" 1 "C:\wdstemp\1"


    cls
    @echo.
    @echo Image 1 of %choice% mounted, now injecting all .inf files from drivers folder.
    @echo.
    @echo.
    @echo.
    c:
    cd "C:\Program Files\Windows AIK\Tools\PETools"
    peimg /inf=C:\wdstemp\drivers\*.inf C:\wdstemp\1\Windows
    @echo.
    pause


    cls
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /commit /unmount "C:\wdstemp\1"

     

     

     

    cls
    @echo Image 1 injected and unmounted, starting image 2 of %choice% now
    @echo.
    pause

    cls
    C:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /mountrw "C:\wdstemp\%choice%" 2 "C:\wdstemp\1"


    cls
    @echo Image 2 of %choice% mounted, now injecting all .inf files from drivers folder.
    @echo.
    @echo.
    c:
    cd "C:\Program Files\Windows AIK\Tools\PETools"
    peimg /inf=C:\wdstemp\drivers\*.inf C:\wdstemp\1\Windows
    @echo.
    pause

    cls
    c:
    cd C:\Program Files\Windows AIK\Tools\x86
    imagex.exe /commit /unmount "C:\wdstemp\1"
    @echo.
    @echo.

    cls
    @echo Drivers sucessfully injected into Image 1 and 2 of %choice%.
    @echo.
    pause

     

     

     

    3. Open WDS and Export the image you want to add drivers, place the file in C:\WDSTemp, then delete the image from WDS

     

    4. Kick off the .bat file and follow the instructions, it will inject the drivers into the 1st and 2nd sub-image if there is a 2nd image (remember boot files typically have atleast 2 images in a .wim file).

     

    5. From WDS, add the newly upgraded boot image from C:\WDSTemp

    Monday, March 31, 2008 6:47 PM
  • Great Job Man!!

     

    This works awesome. I just wanted to note that your article combined with the one listed below I have been able to create a Mostly HAL Independent image and deploy it easily. The only drawbacks are that you cannot mix architectures (ex. Intel/AMD). Other than that I can deploy one image to both multi and uniproccessor machines with no HAL error.

    http://vernalex.com/guides/sysprep/index.shtml

     

    Thanks much,

    compgy

    Monday, May 19, 2008 8:02 PM
  •  

    Hey Jarrod,

    When I used your image.bat script it would not connect to my server.  It gave me a file not found message.   But when I do it manually it connects and I am able to run imagex just fine.  Any ideas.   This is on a Dell 755.  Does it need to pause for a minute or something?  Any ideas?   I have double checked my syntax in the image.bat and it looks fine. 

     

    Thanks,

    Jason

    Friday, September 5, 2008 10:10 PM
  • Do you have a Cisco switch connected? If so i recently found that if you do, it does this. I had to turn on portfast on the connected ports on the switch then it would connect. When WinPE is starting up, it starts immediately searching for a DHCP address then times out before the Cisco Switch can finish its port negotiation then it runs the bat file. Since the PC has no ip address it then fails. I found this because PC's (mainly newer Dell models) that were connected directly to the switch would not connect, but if i had a small desktop switch that was between my core Cisco and my PC it would connect. Hope this helps.

     

    Thanks,

    Compgy

    Friday, September 5, 2008 11:11 PM
  •  

    Well besides CCNA level issues (good advice Compgy!)...I would say double check the actual batch, run each line one by one from the command prompt without the %choice% but including the actual commands, most likely its a syntax issue, make sure its adding the .wim extension for example.

     

    Also double check the permissions on the file share from the image server.

    Friday, September 12, 2008 4:30 PM
  • Hi,

     

    I solved this by just forcing a uniprocessor mode in the BIOS of the computer to be imaged (HP Compaq 2510p laptop with Centrino processor).  The source image was retrieved from a Xeon computer running Windows XP SP2, and HAL mode was acpiapic_up in WDS console.

     

    Once the image was installed, I just reset the BIOS setting back to multiprocessor mode.

     

    So, no need to touch the .wim file, nor injecting drivers... which makes life easier.

     

    I hope this helps!

     

    Jordi

     

     

    Tuesday, October 7, 2008 4:05 PM
  • What a document!

     

     

    I have tried it but the problem is connecting to my wdsserver. I am gonna try it mannually but i think the problem is that i usally don't connect thru a drive letter but unc path.

     

     

    The question is:

    What part of your batchfile is making the boot image HAL independed?

    Is it this line:

    imagex /ref "I:\IMAGE_GROUP_NAME_1\res.rwm" /apply "I:\IMAGE_GROUP_NAME_1\%choice%" 1 C:\

     

    Wednesday, October 15, 2008 8:50 AM
  • Djork:  Some computer's BOIS settings will allow a processor mode change (mostly boards that can house different types of processors), this article was written assuming that a simple solution wasn't available, but as you saw once the image is applyed, the vast majority of time it works reguardless of the original HAL type.

     

    surfer10:  I'm sorry to hear your having issues using WDS.  I use a Drive letter as its easier to navigate once its mapped, UNC paths tend to need too many quotation marks around long path names to be usefull in my openion.

     

    I'm also sorry to say that you misunderstood the purpose of the batch file.  The entire document here is to apply an image REGUARDLESS OF HALL to any computer able to receive one.  Images using Windows XP can not be HAL independant, but thats not to say that an image with a different HAL can't still be used by another computer type.

     

    To clear things up, I'll refer you to one of my earlier posts:

     

    Just to be sure that were not confusing anybody I want to remind the readers that the code I released here was to allow a PXE booting PC to view all the images (reguardless of the image's HAL) and apply them to a disk (not that every image will work with just any computer's HAL), this is a fix mostly for older HAL typed PCs that can still use a newer HAL (acpi --->mp for example). 

     

    So in summery these methods will allow you to see and apply an image to any HAL type, but if they work or not is up to the HAL of the target machine.  These fixes will not create an image that will work on all HAL types nor an HAL independant image.

     

    Wednesday, October 29, 2008 9:02 PM
  • Hi!

     

    I see that you have some more instructions on this issue, would you like to send them to me.

    I have som e problems too see what i should change specificly.

    I would be very pleased if do that.

     

    Berst Regards

     

    / Anders

    Friday, November 14, 2008 8:57 AM
  •  

    Anders: We need to start at the beginning, can you describe the problem your having?  All the info I have beisdes personal experience is posted in this thread.

     

    I am more than happy to help, however I would like to keep our corespondance here rather than email or another form of communication so that if we resolve the issue others can benefit form the assistance.

    Monday, November 17, 2008 3:47 PM
  • Hi!

     

    Sorry if i was a little indistinct before.

    My scenario is like this.

    I have about 400 laptop`s of same model (Acer extensa 5220) wich i would like to deploy by the wds server.

    So i do like this, install one pc (Win XP) with all the necessary application i need.

    Then i sysprep the machine with the option of minisetup and resell.

    Now i pxe boot the machine and make a capture of it and send the image to the wds server. SO FAR SO GOOD.

    Now i should install the same machine by the recently uploaded image.

    So i pxe boot again and choose the boot.wim instead, fill in all the necessary credentials.

    Now starts my problems, I can`t see any images i have captured from the specific machine.

    The only images i see is the default Windows Vista and also image`s from older machine with an up processor.

    I have a feeling that it has something to do with the HAL but i`m not famillier with the changes wich is described here.

    I saw somewhere that a solution could be to turn of the hyperthreding, but with this machines, there is no such option in the bios.

     

    The server is a W2K3 SP2K R2.

     

    I hope that i have explain my problems much better this time.

     

    Best Regards

     

    / Anders

     

    Monday, November 17, 2008 5:40 PM
  • Hey CrashandBurn

     

    I would be grateful if you let us know the detailed instructions.

     

    Thanks in Advance

    Mohan

     

    Wednesday, November 19, 2008 4:23 PM
  • Anders 2:

     

    Ok, it sounds like you have a good boot/deploy image, a good capture image and have sucessfully uploaded a laptop image to the WDS server.

     

    If it still can't see the image when you PXE boot into the boot/deploy image then I have to assume its a HAL mismatch.  WDS will only show the exact matching HAL as an available image.  You can confirm this by opening the WDS application on your WDS server, right click the image and look at the properties, it will show the HAL.

     

    If you know the image will work on the laptop even though the HALs don't match up then you can follow my instructions from the 12th post on this thread.  Those instructions allow a PXE booting machine to view and apply images reguardless of HAL (please note it does not create a HAL-less image or guarantee that the image will work once its been applied).  Basically all the instructions are doing is using the command line version of WDS in a batch format.

     

    Good luck.

    Thursday, November 20, 2008 5:15 PM
  • This is an awesome document.
    I have one question.
    By following the whole process i can deploy Windows XP without having any problem.
    One concern how to automate the Windows Key installation and other questions for Admin Account/Password and other stuff which is asked later when Windows XP boots.
    Please help with this.
    Then this document will be the best document ever.

    Waiting for your reply.

    Irshad
    Wednesday, December 3, 2008 2:33 PM
  •  

    Irshad, what your looking for is a sysprep answer file, you can make one that sysprep will follow.

     

    When you extract all the contents of the deploy.cab to C:\sysprep one of them will be setupmrg.exe, run this and create a sysprep fully automated answer file, then when you run sysprep check the option for use mini setup.

     

    After sysprep runs and you make your image the computer will run through sysprep but the answer file will be used to fill in the windows key and everything else.  Choose to automate the name of the computer for total hands free automation.

     

    Hope this has helped.  If your looking for more info I would sugest reading up on sysprep a bit more.

    Friday, December 5, 2008 2:00 PM
  • Thanx a Ton Jarrod.

    I have one last question which will finish my entire problem of OS Deployment .

    How do i integrate Additional Lan drivers in the Windows XP Image and also in the Boot.Wim image.

    These two things will help me.

    Please help me.

    Once Again i am very happy to say that You Rock.....

     

    Thanx in Advance.

     

    Irshad Ahmed.

    Tuesday, December 9, 2008 6:28 AM
  • Irshad, glad your enjoying WDS the way that I am.

     

    On the 2nd page of this thread I give instructions on how to add all types of drivers to .wim files.  If you have a .exe you will need to extract the .inf and supporting files to use for the import not the .exe itself.  The instructions are written for the boot image but will work for all images.  You will need to export an image before you inject drivers.

     

    Another option for install images is that you can lay the image on a working machine, install the new drivers, then sysprep/image upload.

    Tuesday, December 9, 2008 9:37 PM
  • I currently am trying to apply an XP image captured from a Compaq 8510p to a Compaq nc8000.  It downloads the image, it applys the image and then it tries to start that very 1st restart, but it then goes to a black screen with I solid white line at the bottom and nothing happens.

    I'm thinkig that issue may be that  the 8510p has the Intel Core 2 DUO CPU, while the nc8000 has a Intel Pentium M processor. Do you think this is the issue? Do you think the previous posts on here will fix it?
    Wednesday, January 14, 2009 6:24 PM
  • Dmobley1022, you are correct that the issue is the processor.  Images taken from a Dual core processor are going to be MP (multi processor) HAL types, where as the single processor in the Pentium M is going to be a UP (uni processor) HAL type.  If in the bios of the Dual core machine you can turn off multi-threading it will sometimes be able to image capture as a UP image still.

    Other than that your stuck...sorry, MP images won't work on UP HALs.


    MCSA:Security
    Thursday, January 15, 2009 6:55 PM
  • Hi,
    There is one issue which i face with this deployment.
    My Windows WMI gets corrupt after the installation.
    I have to repair the WMI after every installation.
    Is there any way to fix this issue.
    Please reply.

    Thanx in advance.

    Irshad.

    irshadahmed
    Tuesday, March 10, 2009 8:20 AM
  • Irshad, sorry to hear your running into trouble.

    I have no experience with corrupt WMIs, hopefully somebody else here will know the answer.

    MCSA:Security
    Thursday, March 12, 2009 12:37 PM
  • I've choosen to go MonkeyWithAKeyboard's method and it worked like a charm! Thanks for sharing.
    Tuesday, September 22, 2009 8:04 PM
  • Hi

    I followed the above mentioned process and works like a charm. I am now successfully able to deploy all the images without any HAL issues. One question though. Is it possible to insert authentication mode in the above process?. Like when the client computer boots into this "Hal Independent Deployment Image" and starts applying the image it should prompt for a user name and password and should proceed only if part of a particular group on domain say "Admins" or "Imaging group". This will help in preventing normal non-admin users to log into this system and play with it.
    Thursday, September 24, 2009 4:16 PM
  • Hi aamit79, glad to hear your deployments are going well!

    There are a few things you can do to add a layer of security to the "Hal Independent Deployment Image". 

    Easiest to my mind is adjusting the batch file.  When it attempts to map a drive letter to the image share, if you leave the part blank that puts the password and mark @echo on above it so you can see the text, it should prompt you for username's password.  Adjust the share to only allow certain users and/or groups and presto, insta-security!

    example:

    Old code
    :imagetype
    cls
    @echo prepairing network...
    @echo off
    net use I: \\WDS_SERVER \REMINST\Images /user:DOMAIN_NAME \USERNAME ImagePassword /persistent:no


    New code
    :imagetype
    cls
    @echo prepairing network...
    @echo on
    net use I: \\WDS_SERVER \REMINST\Images /user:DOMAIN_NAME \USERNAME  /persistent:no


    Try it out and let us know, good luck!

    MCSA:Security
    Thursday, October 8, 2009 1:01 PM
  • I followed this line by line, got to the point where i type in what image i want to apply.  As soon as i do that, it throws some error and immediately reboots.  I cannot see what the error is because it restarts right away.  Is there a way to pause the screen before it reboots, or am i doing something else wrong?  Your help would be greatly appreciated.  Thank you!
    Friday, January 22, 2010 8:20 PM
  • Dmobley1022, you are correct that the issue is the processor.  Images taken from a Dual core processor are going to be MP (multi processor) HAL types, where as the single processor in the Pentium M is going to be a UP (uni processor) HAL type.  If in the bios of the Dual core machine you can turn off multi-threading it will sometimes be able to image capture as a UP image still.

    Other than that your stuck...sorry, MP images won't work on UP HALs.


    MCSA:Security

    There is a hotfix available to let MP HAL images deploy to UP machines: http://support.microsoft.com/kb/935772. This hotfix is a little more complex then normal, as you'll need to manually update wdsclient.dll in your boot image to the new version.
    Monday, February 1, 2010 8:10 PM
  • This is great work.  I will have to make a few modifications for my specific needs but it works great.
    Tuesday, February 16, 2010 9:14 PM
  • Thanks mswillis5, glad it was helpfull, if nothing else it was a great learning experience.
    MCSA:Security CCNA
    Tuesday, April 13, 2010 5:27 PM