Windows 8.1 Update 1 WimBOOT discussion

Discussion in 'Windows 8' started by murphy78, Mar 6, 2014.

  1. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    Change the shrink amount from 10000 to whatever you need for both the images +50mb
    if total size of images is 4028mb, make it 4078 shrink
     
  2. Hunk_4TH

    Hunk_4TH MDL Member

    Aug 6, 2012
    155
    7
    10
    Any idea why I'm getting the error I posted a few posts back? I tried Googling and I guess since this whole Wimboot thing is still young and new nothing much comes up. At least nothing helpful :/
     
  3. robertnik

    robertnik MDL Novice

    Aug 9, 2013
    5
    1
    0
    I'm trying, but I do not understand everything, I'm sorry.
    Here you have posted that you can add size.
    technet.microsoft.com/en-us/library/dn605112.aspx




    Does such a script with the parameter size is not enough?
    rem == Diskpart /s CreatePartitions-WIMBoot.txt ==
    rem == These commands set up the hard drive partitions
    rem for WIMBoot.
    rem
    rem Adjust the partition sizes to fill the drive
    rem as necessary. ==
    select disk 0
    clean
    convert gpt
    rem == 1. System partition (ESP) ===================
    create partition efi size=100
    format quick fs=fat32 label="System"
    rem == 2. Microsoft Reserved (MSR) partition =======
    create partition msr size=128
    rem == 3. Windows partition ========================
    create partition primary
    shrink minimum=10000
    format quick fs=ntfs label="Windows"
    assign letter=c
    rem === 4. Images partition ========================
    create partition primary size=2920
    format quick fs=ntfs label="Images"
    assign letter=m
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    list volume
    exit
     
  4. azlvda

    azlvda MDL Member

    Jun 28, 2009
    128
    63
    10
    should like this

    rem == Diskpart /s CreatePartitions-WIMBoot.txt ==
    rem == These commands set up the hard drive partitions
    rem for WIMBoot.
    rem
    rem Adjust the partition sizes to fill the drive
    rem as necessary. ==
    select disk 0
    clean
    convert gpt
    rem == 1. System partition (ESP) ===================
    create partition efi size=100
    format quick fs=fat32 label="System"
    rem == 2. Microsoft Reserved (MSR) partition =======
    create partition msr size=128
    rem == 3. Windows partition ========================
    create partition primary
    shrink minimum=2920
    format quick fs=ntfs label="Windows"
    assign letter=c
    rem === 4. Images partition ========================
    create partition primary
    format quick fs=ntfs label="Images"
    assign letter=m
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    list volume
    exit
     
  5. robertnik

    robertnik MDL Novice

    Aug 9, 2013
    5
    1
    0
    #145 robertnik, Apr 14, 2014
    Last edited: Apr 14, 2014
    @azlvda
    Thank you very much.

    @Hunk_4TH
    Unfortunately, I do not know English and I find it hard to explain.
    Stacked like I did (x86), but I have a few of posts and I can not paste citations with links ... I had to write it on my forum, please do not be angry for it.
    Maybe in that order will get you easier.
    tablet8.czo.pl/topics12/14.htm#14
     
  6. Hunk_4TH

    Hunk_4TH MDL Member

    Aug 6, 2012
    155
    7
    10
    Thanks for trying to explain though I really didn't understand any of that I'd be lying if I said I did lol. Please don't take that the wrong way.
     
  7. Niekess

    Niekess MDL Addicted

    Mar 31, 2011
    836
    564
    30
    I'm thinking of doing this onto my Surface Pro. But before I'm doing it. Does anyone notice anything in performance? I do play sometimes a few games and hope they are not affected with this, which I doubt but just in case.

    Also for when I will do it, is the tutorial in the main post the one to go with using a MSDN iso?
     
  8. bjf2000

    bjf2000 MDL Expert

    Apr 11, 2008
    1,103
    200
    60
    The only performance comment I've seen so far is from the Technet article above, in the comments, where someone says there is "some impact."

    If it's at all analogous to booting your machine into a Win8 that's a VHD, then there is definitely an impact. I hope it's better than that.
     
  9. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    I don't think it's meant to be a performance increase, so much as a space saver.
    At first I thought it was all about performance increase as well, but I'm not sure you'd really notice it very much.
    You would trade-off the time it takes to load uncompressed files for the time it takes to decompress the files.
    I'm pretty sure the main point of WimBoot was for the space saving feature.
     
  10. Niekess

    Niekess MDL Addicted

    Mar 31, 2011
    836
    564
    30
    #150 Niekess, Apr 17, 2014
    Last edited: Apr 17, 2014
    A small performance decrease will not be a problem I guess. It's mostly hardware for games and drivers which are loaded once.
    Anyway, is the guide in the main post valid for the MSDN iso? I'm just a programmer so really can use a guide on how to do this for my 64GB Surface Pro.

    Edit: Nvm, I see it got updated. Will go through this soon when my MSDN subscription from MSP is active or the iso of new update gets on Dreamspark. :)
    But just to be ensure. At the point of "Boot from ISO" is it safe to get my SSD formatted completely right?
     
  11. abbodi1406

    abbodi1406 MDL KB0000001

    Feb 19, 2011
    17,479
    92,723
    340
    #151 abbodi1406, Apr 17, 2014
    Last edited by a moderator: Apr 20, 2017
    Using the Update iso make easier to create a wimboot image
    you simply mount install.wim, move winre.wim out, optimize the image, commit/unmount, export as wimboot
    • Separate the Windows RE image from the main Windows image
    1. Create a mount directory for your install.wim files and mount the image.
    Code:
    md C:\mount
    Dism /Mount-Image /ImageFile:install.wim /Index:1 /MountDir:C:\mount
    2. Move the winre.wim file out of the image.
    Code:
    attrib -S -H -I C:\mount\Windows\System32\Recovery\winre.wim
    move C:\mount\Windows\System32\Recovery\winre.wim .\
    • Optimize the image for WIMBoot to gain free drive space in the final image.
    Code:
    Dism /Optimize-Image /Image:C:\mount /WIMBoot
    • Unmount the image and commit the changes.
    Code:
    Dism /Unmount-Image /MountDir:C:\mount /Commit
    • Export the image with WIMBoot support.
    Code:
    Dism /Export-Image /WIMBoot /SourceImageFile:install.wim /SourceIndex:1 /DestinationImageFile:install_wimboot.wim /CheckIntegrity
     
  12. Hero1711

    Hero1711 MDL Novice

    May 4, 2011
    8
    9
    0
    #152 Hero1711, Apr 17, 2014
    Last edited: Apr 17, 2014
    @murphy78: Thanks for the tutorial.

    I've already deployed the WIM Boot and booted into Windows. But then I noticed that WinRE wasn't enabled.
    I'm trying to enable the WinRE but I couldn't use the winre.wim image in the "Images" partition.
    My ReAgent.xml after the "C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows" command:
    <?xml version='1.0' encoding='utf-8'?>

    <WindowsRE version="2.0">
    <WinreBCD id="{00000000-0000-0000-0000-000000000000}"/>
    <WinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <ImageLocation path="\Recovery\WindowsRE" id="0" offset="60354985984" guid="{8cd76a91-101b-4719-84d8-fa7c146227c4}"/>
    <PBRImageLocation path="\Windows Images" id="0" offset="60354985984" guid="{8cd76a91-101b-4719-84d8-fa7c146227c4}" index="1"/>
    <PBRCustomImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}" index="0"/>
    <InstallState state="0"/>
    <OsInstallAvailable state="1"/>
    <CustomImageAvailable state="0"/>
    <IsAutoRepairOn state="1"/>
    <WinREStaged state="1"/>
    <OperationParam path=""/>
    <OsBuildVersion path="9600.17031.amd64fre.winblue_gdr.140221-1952"/>
    <OemTool state="0"/>
    <IsServer state="0"/>
    <DownlevelWinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <IsWimBoot state="1"/>
    <ScheduledOperation state="4"/>
    </WindowsRE>

    Error when trying to enable:
    C:\Windows\system32>C:\Windows\System32\Reagentc /Enable
    REAGENTC.EXE: Operation failed: 70

    REAGENTC.EXE: An error has occurred.

    The "Images" partition is indeed de94bba4-06d1-4d40-a16a-bfd50179d6ac as reported by diskpart. I couldn't find any partition with guid 8cd76a91-101b-4719-84d8-fa7c146227c4 as in the ReAgent.xml. When I tried to change the 2 guid of ImageLocation and PBRImageLocation to de94bba4-06d1-4d40-a16a-bfd50179d6ac it didn't work either.
     
  13. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    #153 murphy78, Apr 17, 2014
    Last edited: Apr 17, 2014
    (OP)
    If you use a different architecture on your install image than your destination image, you have to use winrecfg (winpe packages)

    The only other thing I could think of is that you are not using the scripts I provided.
     
  14. Hero1711

    Hero1711 MDL Novice

    May 4, 2011
    8
    9
    0
    Both are Pro VL x64.

    What I did:

    1. Install Windows 8.1 U1 VL x64 to the VM.
    2. Create temp user account and makes changes to windows as I like.
    3. Go to audit mode and delete the temp user account, clean up, resetbase, sysprep.
    4. Boot into Win PE 5.1 (on the Windows 8.1 U1 VL x64 Install ISO) and delete the admin user folder, softwaredistribution, \Windows\System32\Recovery\Winre.wim.
    5. Still in Win PE 5.1, optimize the installed Windows with /WIMBoot and then capture it to .wim (I choose the dest as C:\Recycler\Images\install_wimboot.wim so it will be excluded by the capturing process).
    6. After that, I copy the install_wimboot.wim to the host machine.
    7. On the host machine, I get the boot.wim from the Windows 8.1 U1 VL x64 Install ISO's sources folder, do resetbase on it, commit, export so it has smaller size (180MB), and put it in C:\WINPE_AMD64\media\sources\.
    8. On the host machine, I get winre.wim by mounting the original install.wim from the Windows 8.1 U1 VL x64 Install ISO, and put it in C:\WINPE_AMD64\media\Images\.
    9. On the host machine, I copy the install_wimboot.wim to C:\WINPE_AMD64\media\Images\, and rename it as install.wim oscdimg.

    In short: I did use the scripts you provided but instead of using winre.wim from the \Windows\System32\Recovery\ of the VM, I followed the instructions on TechNet to get it directly from the install.wim of the Windows 8.1 U1 install ISO (original).
     
  15. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    Well I don't know what to tell you. You're probably not assigning a drive letter or don't have permissions for files or something...
    The scripts handle the attributes and letters. You're probably forgetting a step.
     
  16. Hero1711

    Hero1711 MDL Novice

    May 4, 2011
    8
    9
    0
    #156 Hero1711, Apr 17, 2014
    Last edited by a moderator: Apr 20, 2017
    I did use your provided scripts, and when ApplyWIMBootImage.cmd executed this
    Code:
    C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows
    it returned
    Code:
    Directory set to: \\?\GLOBALROOT\device\harddisk0\partition4\Recovery\WindowsRE
    
    REAGENTC.EXE: Operation Successful.
    P.S.: Looked back at my steps above, I realized that the post wasn't complete. Continue:

    9. On the host machine, I copy the install_wimboot.wim to C:\WINPE_AMD64\media\Images\, and rename it as install.wim.
    10. Then use the oscdimg command to create the iso (yes I did change paths in the command).
    11. Boot the VM on the newly created iso. Deploying using your provided scripts:
    Code:
    diskpart /s CreatePartitions-WIMBoot.txt
    ApplyWimBootImage d:\Images\install.wim d:\Images\winre.wim
    12. After that, exit the cmd so the VM restarts.

    Screenshot of the entire script process (1.cmd and 2.cmd are the scripts that I wrote to ask for the disk number and volume names, but the process is basically the same):
    WIMBootDeploy.png
     
  17. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    If it says reagentc.exe successful, what's the problem?
     
  18. Hero1711

    Hero1711 MDL Novice

    May 4, 2011
    8
    9
    0
    #158 Hero1711, Apr 17, 2014
    Last edited by a moderator: Apr 20, 2017
    I edited my post above to include the screenshot of the deployment process.

    The problem is that when verifying with C:\Windows\System32\Reagentc /Info /Target C:\Windows it returns that the RE is disabled, and I can't enable it:
    Code:
    
    
    WIMBoot-REDisabled.png

    With RE disabled, when going to Advanced boot options, there is only Startup Settings:
    WIMBoot-AdvancedOptions.png
     

    Attached Files:

  19. murphy78

    murphy78 MDL DISM Enthusiast

    Nov 18, 2012
    7,432
    11,763
    240
    The only thing I can think of is that your winpe image isn't working correctly or something.
    Did you use the copype command to make your winpe and add all the update hotfixes?
     
  20. Hero1711

    Hero1711 MDL Novice

    May 4, 2011
    8
    9
    0
    #160 Hero1711, Apr 17, 2014
    Last edited: Apr 17, 2014
    As I said:
    No, the boot.wim in the Windows 8.1 U1 iso is already version 5.1. No update needed.
    I used the copype, then I replaced the boot.wim with the one from the Windows 8.1 U1 iso.

    Finally I was able to enable RE by editing the ReAgent.xml:
    <?xml version='1.0' encoding='utf-8'?>

    <WindowsRE version="2.0">
    <WinreBCD id="{00000000-0000-0000-0000-000000000000}"/>
    <WinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <ImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>

    <PBRImageLocation path="\Windows Images" id="0" offset="60354985984" guid="{de94bba4-06d1-4d40-a16a-bfd50179d6ac}" index="1"/>
    <PBRCustomImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}" index="0"/>
    <InstallState state="0"/>
    <OsInstallAvailable state="1"/>
    <CustomImageAvailable state="0"/>
    <IsAutoRepairOn state="1"/>
    <WinREStaged state="0"/>
    <OperationParam path=""/>
    <OsBuildVersion path="9600.17031.amd64fre.winblue_gdr.140221-1952"/>
    <OemTool state="0"/>
    <IsServer state="0"/>
    <DownlevelWinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <IsWimBoot state="1"/>
    <ScheduledOperation state="4"/>
    </WindowsRE>

    then run C:\Windows\System32\Reagentc /Enable to enable it.
    View attachment 28377

    After enabling RE, the ReAgent.xml file was modified by Windows:
    <?xml version='1.0' encoding='utf-8'?>

    <WindowsRE version="2.0">
    <WinreBCD id="{3a9908bc-c662-11e3-ad54-bf53f38c89bb}"/>
    <WinreLocation path="\Recovery\WindowsRE" id="0" offset="240123904" guid="{ec11f92b-3dbd-4c35-84c1-26e8e522f277}"/>
    <ImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <PBRImageLocation path="\Windows Images" id="0" offset="60354985984" guid="{ec11f92b-3dbd-4c35-84c1-26e8e522f277}" index="1"/>

    <PBRCustomImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}" index="0"/>
    <InstallState state="1"/>
    <OsInstallAvailable state="1"/>
    <CustomImageAvailable state="0"/>
    <IsAutoRepairOn state="1"/>
    <WinREStaged state="0"/>
    <OperationParam path=""/>
    <OsBuildVersion path="9600.17031.amd64fre.winblue_gdr.140221-1952"/>
    <OemTool state="0"/>
    <IsServer state="0"/>
    <DownlevelWinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <IsWimBoot state="1"/>
    <ScheduledOperation state="5"/>
    </WindowsRE>

    Compared to the original file after the C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows:
    <?xml version='1.0' encoding='utf-8'?>

    <WindowsRE version="2.0">
    <WinreBCD id="{00000000-0000-0000-0000-000000000000}"/>
    <WinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <ImageLocation path="\Recovery\WindowsRE" id="0" offset="60354985984" guid="{8cd76a91-101b-4719-84d8-fa7c146227c4}"/>
    <PBRImageLocation path="\Windows Images" id="0" offset="60354985984" guid="{8cd76a91-101b-4719-84d8-fa7c146227c4}" index="1"/>

    <PBRCustomImageLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}" index="0"/>
    <InstallState state="0"/>
    <OsInstallAvailable state="1"/>
    <CustomImageAvailable state="0"/>
    <IsAutoRepairOn state="1"/>
    <WinREStaged state="1"/>
    <OperationParam path=""/>
    <OsBuildVersion path="9600.17031.amd64fre.winblue_gdr.140221-1952"/>
    <OemTool state="0"/>
    <IsServer state="0"/>
    <DownlevelWinreLocation path="" id="0" offset="0" guid="{00000000-0000-0000-0000-000000000000}"/>
    <IsWimBoot state="1"/>
    <ScheduledOperation state="4"/>
    </WindowsRE>

    All functions like "Refresh your PC", "Reset your PC" work fine. "Advanced options" shows what it is supposed to:
    View attachment 28378