WMUG
The Windows Management User Group

4GB WIM file size limit when deploying a Captured XP Image on a DVD in BDD 2007

When trying to create a bootable DVD to install a backup of a system I thought the easiest way would be to use BDD 2007 but that turned out to be more difficult than I expected..
When the WIM image file is larger than 4GB OSCDIMG.EXE fails generating the ISO file because of restriction of the max file size on DVD.
One would think by using ImageX.exe to split the WIM file would solve the problem but unfortunately importing split WIM files is not supported in BDD 2007.
But with little cheating we can trick the Deployment Workbench.


I‘ve set the same name for all objects and directory names “ImageDeploy” just to simplify, when splitting the WIM file use the same filename in the prefix so the modified script can use the split files.

  1. Backup and modify “Drive:\Distribution\Scripts\LTIApply.wsf” as shown at the bottom of this page .
  2. Split the WMI file: imagex.exe /check /split ImageDeploy.wim ImageDeploy.swm 4000
  3. Create a Operataing System as Custom Image file and choose the captured WIM file.
  4. Replace the WIM file with the SWM files in "Drive:\Distribution\Operating Systems\ImageDeploy"
  5. Create a new build
  6. Create a new Deployment point as Removable media
  7. Perform "Update (files only)" the deployment point
  8. Make sure the old WIM file can not be found in either "Drive:\Distribution\Operating Systems\ImageDeploy" or "Drive:\<ImageDeploy>\Content\Deploy\Operating Systems\<ImageDeploy>"
  9. Perform "Update" the deployment point to generate the ISO file


Note that this only applies to XP images, Vista is handled differently in the script and I may work on that later.

Also keep this in mind when applying XP images using BDD 2007:
http://www.deployvista.com/Blog/tabid/70/EntryID/17/Default.aspx

 

 

 

LTIApply.wsf changes:
Locate lines 551, 555 and 578 for modifications,

 

'Lalli, added splitfile detection

       If not oFSO.FileExists(sImagePath) then

    if not oFSO.FileExists(Left(sImagePath, Len(sImagePath)-4) & ".swm")  then

      oUtility.ValidateConnection sImagePath

    End if 

       End if

 

'Lalli, added splitfile detection

       If not oFSO.FileExists(sImagePath) then

         If not oFSO.FileExists(Left(sImagePath, Len(sImagePath)-4) & ".swm")  then

      oLogging.CreateEntry "Image file " & sImagePath & " does not exist, aborting", LogTypeError

      ApplyImage = Failure

      Exit Function

    End if

       End if

 

 

       ' Clean off old OS if running in PE

 

       If oEnvironment.Item("OSVersion") = "WinPE" then

             CleanDrive

       End if

 

 

 

       ' Apply the new image

 

       iRc = oUtility.FindFile("imagex.exe", sImageX)

       If iRc <> Success then

             oLogging.CreateEntry "ERROR: Unable to find ImageX", LogTypeError

             ApplyImage = Failure

             Exit Function

       End if

 

'Lalli, added splitfile detection

  If oFSO.FileExists(Left(sImagePath, Len(sImagePath)-4) & ".swm") then

    sCmd = "cmd /c """"" & sImageX & """ /ref """ & Left(sImagePath, Len(sImagePath)-4) & "*.swm" & """ /apply """ & Left(sImagePath, Len(sImagePath)-4) & ".swm" & """ " & sImageIndex & " C:\ >> " & oUtility.LogPath & "\LTIApply_imagex.log 2>&1"""

  Else

         sCmd = "cmd /c """"" & sImageX & """ /apply """ & sImagePath & """ " & sImageIndex & " C:\ >> " & oUtility.LogPath & "\LTIApply_imagex.log 2>&1"""

  End if

 

 


Posted Apr 26 2007, 12:43 PM by Larus Milan Bulat