This info is copied from the CHM file provided in the 8.1 update ADK. This is a reference post and will likely just confuse you if you don't know what you're doing. Formatting info: Spoiler Format the drive with the WIMBoot partition layout 1. Boot the reference PC into Windows PE 5.1. 2. Format the drive using the following partition layout: • System (EFI System Partition): Size: 100MB. If the primary drive is less than 16GB, you can use a minimum size of 32MB. If the primary drive is an Advanced Format 4K Native drive (4-KB-per-sector), the minimum size is 260 MB. • MSR (x86 and x64 only, not needed for ARM) • Windows. • Images. Set this partition with the following attributes: • Location: End of the disk • Type: de94bba4-06d1-4d40-a16a-bfd50179d6ac (PARTITION_MSFT_RECOVERY_GUID) • Attributes: 0x8000000000000001 (GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER & GPT_ATTRIBUTE_PLATFORM_REQUIRED) • File system: NTFS • Drive Letter: Set a temporary drive letter, for example, M. • Size: Must be big enough to hold install.wim, winre.wim, and custom.wim files plus at least 50 MB of free space. Note If you plan to make changes on the factory floor in the custom.wim file, be sure to leave enough space for these additions. But try not to add too much free space, especially on devices with limited drive space, because this partition can’t be resized after you've added files to it. To work around this problem, you can set up this Images partition later. For more info, see Deploy WIMBoot Images: If you don't know the size of the images upfront. Sample Diskpart script The script temporarily assigns these drive letters: Windows=C and Images=M. If you’re deploying to PCs with unformatted hard drives, you might want to modify this script to use a drive letter that’s near the end of the alphabet, such as W, to avoid drive letter conflicts. Do not use X, because this drive letter is reserved for Windows PE. After the PC reboots, the Windows partition is assigned the letter C, and the other partitions don’t receive drive letters. We've added volume names to the partitions, but they aren’t required. Code: 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 format quick fs=ntfs label="Images" assign letter=m set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001 list volume exit Add the Windows and recovery files 1. Create a folder called "Windows Images" on the Images partition. This folder name is required. Code: md "M:\Windows Images\" 2. Copy the Windows image from the USB or network drive (N) to the Windows Images folder. Rename the Windows image to install.wim if necessary. Code: copy N:\Images\install_update1.wim "M:\Windows Images\install.wim" 3. Apply the Windows image to the Windows partition (drive C), using the /WIMBoot option. Recommended: create a temporary scratch folder for DISM to avoid issues related to short file names. To prevent capturing the DISM logs in your image, choose a location that is in your DISM Exclusion list. For more info, see DISM Configuration List and WimScript.ini Files. When you use the DISM /Apply-Image command with the /WIMBoot option, the ImageFile location and ApplyDir partition must be on the same hard drive. Code: md C:\Recycler\Scratch DISM /Apply-Image /ImageFile:"M:\Windows Images\install.wim" /ApplyDir:C: /Index:1 /WIMBoot /ScratchDir:C:\Recycler\Scratch Note When you apply the Windows image using /WIMBoot, DISM adds pointer files from the Windows partition to the Images partition. These pointer files make the PC appear and function as if the Windows files were stored on the Windows partition. But they still primarily reside inside the install.wim file in the Images partition. Do not remove the install.wim file after applying the image. 4. Create boot files and set them to boot to the Windows partition. Code: C:\Windows\System32\bcdboot C:\Windows 5. Copy the Windows RE file to the Images folder. Note that Winre.wim may be a hidden file. Use robocopy or xcopy to copy the file. In this example, the "echo f" command suppresses the xcopy "File or Directory" prompt: Code: md M:\Recovery\WindowsRE echo f | xcopy N:\Images\winre.wim M:\Recovery\WindowsRE\winre.wim /h 6. Register the Windows RE partition. Code: C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows 7. If your partition configuration is different from the recommended configuration listed above, create a ResetConfig.xml file and include it in the M:\Windows Images\ folder to enable your users create bare metal recovery media. For more info, see ResetConfig XML Reference. Sample command-line script Code: @echo off echo == ApplyWIMBootImage.cmd == echo == These commands deploy a specified Windows echo image file to the Windows partition, and configure echo the system partition. rem Usage: ApplyWIMBootImage InstallWim WinREWim rem Example: ApplyWIMBootImage N:\Images\Install-WIMBoot.wim N:\Images\WinRE-WIMBoot.wim if "%2" equ "" ( echo == Error: Specify a Windows image and a Windows RE image file. echo Example: ApplyWIMBootImage N:\Images\Install-WIMBoot.wim N:\Images\WinRE-WIMBoot.wim exit /b 0 ) rem == Add the Windows image to the Images partition == md "M:\Windows Images\" copy %1 "M:\Windows Images\install.wim" rem == Create a scratch directory for DISM operations md "C:\Recycler\Scratch" rem == Apply the Windows image to the Windows partition == dism /Apply-Image /ImageFile:"M:\Windows Images\install.wim" /ApplyDir:C: /Index:1 /WIMBoot /ScratchDir:C:\Recycler\Scratch rem == Create boot files on the System partition == C:\Windows\System32\bcdboot C:\Windows :rem == Add the Windows RE image to the Images partition == md M:\Recovery\WindowsRE copy %2 M:\Recovery\WindowsRE\winre.wim :rem == Register the location of the recovery tools == C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows c:\windows\system32\icacls "M:\Windows Images" /inheritance:r /T c:\windows\system32\icacls "M:\Windows Images" /grant:r SYSTEM:(R) /T c:\windows\system32\icacls "M:\Windows Images" /grant:r *S-1-5-32-544:(R) /T Optional: Test the PC, and then reset itTo test the PC: 1. Reboot the PC and log in as a user. 2. Install and run performance test software in the Windows environment. To reset the PC: 1. Reboot the PC into Windows PE 5.1. 2. Temporarily assign drive letters to the Windows and Images partitions. Code: Diskpart /s ResetWIMBootDriveLetters.txt ResetWimBootDriveLetters.txt: Code: rem == Diskpart /s ResetWIMBootDriveLetters.txt == select disk 0 select partition 1 assign letter s select partition 3 assign letter c select partition 4 assign letter m list volume exit 3. Reapply the Windows image to the Windows partition. Recommended: create a temporary scratch directory for DISM. Code: rem == ResetWIMBootImage.cmd == format C: /Q /FS:NTFS /v:"Windows" md C:\Recycler\Scratch DISM /Apply-Image /ImageFile:"M:\Windows Images\install.wim" /ApplyDir:C: /Index:1 /WIMBoot /ScratchDir:C:\Recycler\Scratch Create WimBOOT images: Spoiler Create WIMBoot Images Windows image file boot (WIMBoot) helps you save hard drive space by booting to a WIM file rather than a set of uncompressed Windows files. For more info about WIMBoot images, see Windows Image File Boot (WIMBoot) Overview. To save room on the images, separate the Windows Recovery Environment (Windows RE) image from the main Windows image. Otherwise, this image will take up 200 MB or more of extra drive space in your image and will otherwise never be used. This image is stored inside the main Windows image at \Windows\System32\Recovery\winre.wim, and might be a hidden file. This page focuses on a method to create WIMBoot images that use a minimum of drive space. It also discusses other methods to create WIMBoot images to reduce the total number of Windows images that you manage. Update your Windows image • Install Windows 8.1 Update to your Windows 8.1 and Windows RE images. For more info, see Install the Windows 8.1 Update. Install the Windows 8.1 Update version of the Windows ADK • On your technician PC, install the Windows 8.1 Update version of the Windows Assessment and Deployment Kit (Windows ADK). Recommended Method: Create a WIMBoot-optimized imageCreate a temporary copy of the install.wim image • Copy the install.wim to a new temporary file. You'll use this copy of the file to create your WIMBoot image. Code: Copy C:\Images\install_updated.wim C:\Images\install_temp.wim 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\Windows Dism /Mount-Image /ImageFile:"C:\Images\install_temp.wim" /Index:1 /MountDir:C:\mount\Windows 2. Move the winre.wim file out of the image. Code: move C:\mount\Windows\Windows\System32\Recovery\winre.wim C:\images\winre.wim Optimize the Windows image for WIMBoot • Optimize the image for WIMBoot to gain free drive space in the final image. Note Don't optimize the image using the /WIMBoot option for traditional (flat-boot) PCs, or for images used in enterprise deployments. The optimization process removes features for on-demand installation that might be needed for these PC deployments. For more info, see To remove Windows features for on-demand installation. Code: Dism /Optimize-Image /Image:C:\mount\Windows /WIMBoot • Unmount the image and commit the changes. Code: Dism /Unmount-Image /MountDir:C:\mount\Windows /Commit Boot the image to apply the updates and to clean up the image 1. On your reference PC, boot to Windows PE 5.1, apply your Windows image, and then boot the PC again. For more info, see Samples: Applying Windows, System, and Recovery Partitions by using a Deployment Script. 2. Press CTRL+SHIFT+F3 at OOBE to enter audit mode. 3. Clean up the Windows image to gain additional free drive space in the final image. Use /StartComponentCleanup to clean up the superseded components and reduce the size of the component store. If you've already used the /ResetBase option when creating your base Windows 8.1 Update image, you don't need to run it again. To see the file size reduction, you'll need to either recapture or export the image. Code: Dism /Cleanup-Image /Online /StartComponentCleanup 4. Use Sysprep to generalize and shut down the PC. Code: C:\Windows\System32\Sysprep\sysprep /generalize /shutdown /oobe 5. Boot the PC to Windows PE 5.1. If the PC starts to reboot to Windows, you'll need to let it finish booting and then use Sysprep to generalize and shut down the PC again. 6. Recommended: Create a temporary scratch directory, for example, C:\Recycler\Scratch. Choose a location on a physical drive to avoid issues related to capturing files with long file names in the default Windows PE virtual scratch space. Choose a space that’s in the DISM Exclusion list to prevent capturing the DISM logs in your image. For more info, see DISM Configuration List and WimScript.ini Files. Code: md C:\Recycler\Scratch 7. Recapture the Windows image. This captures the applied updates and removes any files that were marked as superseded during DISM /Cleanup-Image. Use the /WIMBoot option to save the image as a WIMBoot image. Save the file to a location on a USB drive or your network (example: N:\Images), and give the image a name (example: Enterprise_x64 with 8.1 Updates). Code: DISM /Capture-Image /WIMBoot /ImageFile:"N:\Images\install_wimboot.wim" /CaptureDir:C: /Name:"WIMBoot Enterprise_x64 with 8.1 Updates" /ScratchDir:C:\Recycler\Scratch Method 2: Add WIMBoot support to a standard image • To quickly add WIMBoot support to a standard (flat-boot) image to a WIMBoot image, you can either capture or export the image. The final image size will be larger than if you had optimized the image using the instructions on this page. You’ll also need a separate, updated Windows RE (winre.wim) file. For more info, see Install the Windows 8.1 Update. Example: Code: Dism /Export-Image /WIMBoot /SourceImageFile:C:\Images\install.wim /SourceIndex:1 /DestinationImageFile:C:\Images\install_wimboot.wim Note If you don’t optimize the image (Dism /Optimize-Image /WIMBoot), you can use this image for both standard and WIMBoot PCs. This can help you manage fewer images in your deployment process. Additional notes • Don’t append images into an existing WIM file, because WIMBoot only supports using the first Windows image in the file (index value of 1). Prepare a WinPE 5.1 image: Spoiler Create a bootable Windows PE 5.1 Drive: (Note that everything you do here needs to be done with a cmd prompt that has ran the DandISetEnv.bat in the adk install folder. There's a link to a cmd /k version on your start menu after installing the 8.1 update 1 ADK) Create a bootable Windows PE 5.1 drive by adding the Windows 8.1 update package to Windows PE 5.0, and then cleaning up the image. Add the Windows 8.1 updates to the WinPE 5.0 image: 1. Mount the Windows PE image. Code: Dism /Mount-Image /ImageFile:"C:\WinPE_amd64\media\sources\boot.wim" /index:1 /MountDir:"C:\WinPE_amd64\mount" 2. Add the Windows 8.1 Update into Windows PE. This is the same package used to update Windows 8.1: Code: Dism /Add-Package /PackagePath:C:\MSU\Windows8.1-KB2919442-x64.msu /Image:C:\WinPE_amd64\mount /LogPath:AddPackage.log Dism /Add-Package /PackagePath:C:\MSU\Windows8.1-KB2919355-x64.msu /Image:C:\WinPE_amd64\mount /LogPath:AddPackage.log Dism /Add-Package /PackagePath:C:\MSU\Windows8.1-KB2932046-x64.msu /Image:C:\WinPE_amd64\mount /LogPath:AddPackage.log 3. Optimize the image: Code: Dism /image:c:\WinPE_amd64\mount /Cleanup-Image /StartComponentCleanup /ResetBase (This resetbase step didn't work for me with the 17025 leaked msu files because of pending flags, but perhaps in the rtm version it will) 4. Unmount the Windows PE image. Code: Dism /Unmount-Image /MountDir:"C:\WinPE_amd64\mount" /commit Create media 1. Create bootable media, such as a USB flash drive. Code: MakeWinPEMedia /UFD C:\WinPE_amd64 F: (It's what the chm says. You can do the iso file for working with a vm if you prefer, just run makewinpemedia.bat without arguments and it will list the optional arguments and format) 2. Boot the media. Windows PE starts automatically. After the Windows PE window appears, the wpeinit command runs automatically. This may take a few minutes. On the winpe5.1 I personally don't prefer to use the makewinpemedia.bat because it doesn't have a pause in the boot option. Use the oscdimg.exe command from my example in post 1 if you want the press any key to boot prompt.
Um, that's not very impressive, seeing as how a clean boot (not "fast startup") for my UEFI+SSD W8.1 systems is around 10 seconds. Get a modern system with UEFI and SSD and then wonder how you ever lived without them. I'm also skeptical that it would be able to speed up boots substantially. Yes, it reduces I/O, but since this is available only on SSDs, the I/O should already be pretty fast. Booting is also a somewhat CPU-intensive process, and using WIM will increase the CPU strain. It is entirely possible that this would result in the bottleneck shifting from the I/O to the CPU and thus limit the potential speed improvements. Anyway, I think this is something that is really aimed at products like Windows tablets such as my Dell Venue 8 Pro. * Space is at a major premium in these sorts of systems. My DV8P has only 32GB of storage, and most of that is taken by the OS. If the OS can live as a compressed WIM image, that would save a substantial amount of space. * If the WIM is kept read-only, then this would make recovery much, much easier. It would be like Android, where the OS lives secluded in its own read-only partition and everything else, even updates for the apps that were bundled in the core OS, are put into a separate partition, which means that resetting a system to a pristine factory state is trivially easy--just nuke the writeable partition. Right now, the built-in reset feature in W8 isn't as robust as wouldn't be able to guarantee that the system would be in a 100% cleaned state because it doesn't have that kind of firm line in the sand. This sort of OS-as-an-image approach would resemble that of other tablets and is well-suited for the kind of casual consumption usage pattern of tablets. It's seems less well-suited for general computing.
Yah, honestly I don't know how fast that chromebook boots up. I didn't wanna look like an ass saying it was 5 seconds if it was closer to 10. I think it's probably a lot closer to 5. I'm definitely looking forward to getting an ssd. Money has been tight for me. I refuse to do what a lot of those scumbags on the internet do and post a lot of illegal downloads on sites and work out a deal with a file hosting site. That just seems sh**ty to me and I'm not down for actually taking money for something that wasn't mine in the first place. Edit: As far as the read-only I believe it allows expansion as long as the partition is large enough, but I seem to recall reading somewhere that there was a partial image file or something... There's a lot of info to digest. Right now I'm going through it step by step trying to actually do it, before doling out advice. Pardon me if I'm a bit unresponsive whilst churning through the steps...
Of course the WIM is read only. Also take a look at the format info in the OP. Code: 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 format quick fs=ntfs label="Images" assign letter=m set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" gpt attributes=0x8000000000000001 exit
There is no speed increase possible with this (not sure why you even think so?), instead its a speed decrease and of course you need a SSD, on a HDD this isn't viable. It's really only interesting to save space, not so much if you want speed.
As I noted in my earlier post, I don't think a speed increase is likely (or if there is, it would be very small), but this sort of thing is not unprecedented. Firefox, for example, keeps all of its core files in one giant zip file (omni.jar). Why? To speed startup. CPU cycles are abundant. I/O is scarce. Even with SSDs, I/O is often still the bottleneck. For the kinds of systems that I suspect WimBoot is targeted for (tablets), the storage is usually eMMC and isn't very fast. It's still solid-state storage, so it doesn't have a huge random access penalty (which is what the SSD requirement is really about), but these things aren't very fast. Meanwhile, the Bay Trail CPU is surprisingly muscular. Anyway, until we see this in action in the real world, it's hard to predict how things will pan out performance-wise. I think a large speed increase is highly unlikely, but I'm also not ready to say that it will be a speed decrease.
I could see lower-end SSD drives and tablets gaining more benefit, but who knows exactly what it does? Do I think someone would shave 50% off their boot time? Unlikely; but 20% doesn't seem unreasonable. Is it worth the hassle? For most people no. For system builders and tech saavy people, I'd say yes, it's worth it; depending on the performance gain. Even if we successfully test this with the pre-release build, it won't matter until we re-do the test with the actual RTM build.
WimBootConfig.ini file created after applying Spring Update (not sure, but i think it's found in C:\Windows\servicing\Editions) as showing, it controls the Optimize-Image process Spoiler Code: [Registry] HIVE_SYSTEM, ADD, REG_DWORD, Setup, OptimizeWimBoot, 1 ; mark that this image has been optimized HIVE_SYSTEM, ADD, REG_DWORD, ControlSet001\Services\EventLog\Application, MaxSize, 10485760 ; Set the maximum .evtx log sizes HIVE_SYSTEM, ADD, REG_DWORD, ControlSet001\Services\EventLog\Security, MaxSize, 10485760 ; HIVE_SYSTEM, ADD, REG_DWORD, ControlSet001\Services\EventLog\System, MaxSize, 10485760 ; HIVE_SOFTWARE, ADD, REG_DWORD, Microsoft\Windows\CurrentVersion\SideBySide\Configuration, SupersededActions, 3; enable progressive-seal HIVE_SOFTWARE, ADD, REG_DWORD, Microsoft\Windows\CurrentVersion\SideBySide\Configuration, LatentActions, 1; delete LDR updates HIVE_SOFTWARE, ADD, REG_DWORD, Microsoft\Windows\CurrentVersion\SideBySide\Configuration, NumCBSPersistLogs, 1 ; keep only one archived cbs.log file HIVE_SOFTWARE, ADD, REG_DWORD, Microsoft\Windows\CurrentVersion\SideBySide\Configuration, CBSLogCompress, 1 ; keep the cbs.log file NTFS compressed HIVE_SOFTWARE, ADD, REG_DWORD, Policies\Microsoft\Windows\Installer, MaxPatchCacheSize, 5 ; cap PatchCache folder size to 5% of disk [Optional Features] RemoveDisabledFeatures=1 [Directives] DisableWinSxSComponentBackups=1 representative reg file: Spoiler Code: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\HIVE_SYSTEM\Setup] "OptimizeWimBoot"=dword:00000001 [HKEY_LOCAL_MACHINE\HIVE_SYSTEM\ControlSet001\Services\EventLog\Application] "MaxSize"=dword:10485760 [HKEY_LOCAL_MACHINE\HIVE_SYSTEM\ControlSet001\Services\EventLog\Security] "MaxSize"=dword:10485760 [HKEY_LOCAL_MACHINE\HIVE_SYSTEM\ControlSet001\Services\EventLog\System] "MaxSize"=dword:10485760 [HKEY_LOCAL_MACHINE\HIVE_SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Configuration] "CBSLogCompress"=dword:00000001 "NumCBSPersistLogs"=dword:00000001 "LatentActions"=dword:00000001 "SupersededActions"=dword:00000003 "DisableComponentBackups"=dword:00000001 [HKEY_LOCAL_MACHINE\HIVE_SOFTWARE\Policies\Microsoft\Windows\Installer] "MaxPatchCacheSize"=dword:00000005
That would explain the slack of 50 megs in the partition instructions. Obviously the wim can fluctuate, but is not meant to do so very much. They seem to be limiting the size of logs for the wim so that it cannot balloon too much.
Got it to work on VMware Workstation... I used the 17025 leak and it seems to work, though I cannot tell if there's any speed improvement because its a vm and the disk image in on my rotary drive. I'll see if I can work up some instructions to clarify things. The sysprep seems to be the only highly involved part. The rest is just in the preparation... Once you have the scripts and everything is setup correctly, it's relatively easy. I'll post a small 7z of the scripts Guess I'm the one who gets the cookie. (>'O')>( : : ) NOM NOM NOM Edit: lemme edit these screenshots so you guys don't see the embarrassing games I play in my free time...
This look interesting but what exactly does it help improve? I'm already booting up like in 10 seconds with my SSD with Windows 8.1.
It's primarily aimed at lowering the unit cost of tablets (smaller SSD's will now be a viable option)