tinyapps.org / docs / Slipstream Windows 7 SP1 convenience rollup into a universal x86/x64 installer


The Windows 7 SP1 convenience rollup is essentially Service Pack 2 for Windows 7, containing "all the security and non-security fixes released since the release of Windows 7 SP1 that are suitable for general distribution, up through April 2016."

Here is the process I used to create an AIO (All In One) x86/x64 Windows 7 installer with the Windows 7 SP1 convenience rollup and Windows Update fix included:

1. Make some directories:

mkdir.bat
md C:\ISO\unpackedx86
md C:\ISO\unpackedx64
md C:\ISO\Win7SP1x86
md C:\ISO\Win7SP1x64
md C:\packages\x86
md C:\packages\x64

2. Download the 32 and 64-bit versions of the convenience rollup (KB3125574), the patch necessary to install it (KB3020369), and the "July 2016 update rollup for Windows 7 SP1 and Windows Server 2008 R2 SP1" (KB3172605), which, among other things, fixes Windows Update:

download.bat
bitsadmin /transfer /download /priority foreground https://download.microsoft.com/download/C/0/8/C0823F43-BFE9-4147-9B0A-35769CBBE6B0/Windows6.1-KB3020369-x86.msu C:\packages\x86\Windows6.1-KB3020369-x86.msu
bitsadmin /transfer /download /priority foreground http://download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu C:\Packages\x86\windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu
bitsadmin /transfer /download /priority foreground https://download.microsoft.com/download/C/D/5/CD5DE7B2-E857-4BD4-AA9C-6B30C3E1735A/Windows6.1-KB3172605-x86.msu C:\packages\x86\Windows6.1-KB3172605-x86.msu
bitsadmin /transfer /download /priority foreground https://download.microsoft.com/download/5/D/0/5D0821EB-A92D-4CA2-9020-EC41D56B074F/Windows6.1-KB3020369-x64.msu C:\packages\x64\Windows6.1-KB3020369-x64.msu
bitsadmin /transfer /download /priority foreground http://download.windowsupdate.com/d/msdownload/update/software/updt/2016/05/windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu C:\Packages\x64\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu
bitsadmin /transfer /download /priority foreground https://download.microsoft.com/download/5/6/0/560504D4-F91A-4DEB-867F-C713F7821374/Windows6.1-KB3172605-x64.msu C:\Packages\x64\Windows6.1-KB3172605-x64.msu

3. Download imagex and oscdimg to %systemroot% or anywhere else in your PATH

4. Extract Windows 7 SP1 x86 ISO or DVD to C:\ISO\Win7SP1x86

5. Extract Windows 7 SP1 x64 ISO or DVD to C:\ISO\Win7SP1x64

6. Check the 32 bit image:

C:\>dism /Get-WIMInfo /WimFile:C:\ISO\Win7SP1x86\sources\install.wim

Details for image : C:\ISO\Win7SP1x86\sources\install.wim

Index : 1
Name : Windows 7 STARTER
Description : Windows 7 STARTER
Size : 8,074,968,070 bytes

Index : 2
Name : Windows 7 HOMEBASIC
Description : Windows 7 HOMEBASIC
Size : 8,127,590,116 bytes

Index : 3
Name : Windows 7 HOMEPREMIUM
Description : Windows 7 HOMEPREMIUM
Size : 8,569,006,173 bytes

Index : 4
Name : Windows 7 PROFESSIONAL
Description : Windows 7 PROFESSIONAL
Size : 8,450,188,760 bytes

Index : 5
Name : Windows 7 ULTIMATE
Description : Windows 7 ULTIMATE
Size : 8,610,128,720 bytes

There are 5 versions included; we'll need to run the following batch file to patch them all:

patchx86.bat
@echo off

set mnt=C:\ISO\unpackedx86
set src=C:\ISO\Win7SP1x86\sources

set update1=C:\packages\x86\Windows6.1-KB3020369-x86.msu
set update2=C:\packages\x86\windows6.1-kb3125574-v4-x86_ba1ff5537312561795cc04db0b02fbb0a74b2cbd.msu
set update3=C:\Packages\x86\Windows6.1-KB3172605-x86.msu

dism /Mount-Wim /WimFile:%src%\install.wim /index:5 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:4 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:3 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:2 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:1 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

echo Process complete

pause

exit

7. Checking the 64 bit installer, we find that there are only 4 versions, not 5 (since Starter is 32 bit only):

C:\>dism /Get-WIMInfo /WimFile:C:\ISO\Win7SP1x64\sources\install.wim

Deployment Image Servicing and Management tool
Version: 6.1.7600.16385

Details for image : C:\ISO\Win7SP1x64\sources\install.wim

Index : 1
Name : Windows 7 HOMEBASIC
Description : Windows 7 HOMEBASIC
Size : 11,710,161,360 bytes

Index : 2
Name : Windows 7 HOMEPREMIUM
Description : Windows 7 HOMEPREMIUM
Size : 12,222,587,449 bytes

Index : 3
Name : Windows 7 PROFESSIONAL
Description : Windows 7 PROFESSIONAL
Size : 12,122,886,417 bytes

Index : 4
Name : Windows 7 ULTIMATE
Description : Windows 7 ULTIMATE
Size : 12,285,492,779 bytes

So our batch file looks like this:

patchx64.bat
@echo off

set mnt=C:\ISO\unpackedx64
set src=C:\ISO\Win7SP1x64\sources

set update1=C:\packages\x64\Windows6.1-KB3020369-x64.msu
set update2=C:\packages\x64\windows6.1-kb3125574-v4-x64_2dafb1d203c8964239af3048b5dd4b1264cd93b9.msu
set update3=C:\packages\x64\Windows6.1-KB3172605-x64.msu

dism /Mount-Wim /WimFile:%src%\install.wim /index:4 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:3 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:2 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

dism /Mount-Wim /WimFile:%src%\install.wim /index:1 /MountDir:%mnt%
dism /Image:%mnt% /Add-Package /PackagePath:%update1%
dism /Image:%mnt% /Add-Package /PackagePath:%update2%
dism /Image:%mnt% /Add-Package /PackagePath:%update3%
dism /Unmount-Wim /MountDir:%mnt% /commit

echo Process complete

pause

exit

8. Combine the 32 and 64 bit wim images into a new image named C:\ISO\all.wim:

combine.bat
@echo off

imagex.exe /export C:\ISO\Win7SP1x86\sources\install.wim 5 C:\ISO\all.wim "Windows 7 Ultimate x86"
imagex.exe /export C:\ISO\Win7SP1x64\sources\install.wim 4 C:\ISO\all.wim "Windows 7 Ultimate x64"
imagex.exe /export C:\ISO\Win7SP1x86\sources\install.wim 4 C:\ISO\all.wim "Windows 7 Professional x86"
imagex.exe /export C:\ISO\Win7SP1x64\sources\install.wim 3 C:\ISO\all.wim "Windows 7 Professional x64"
imagex.exe /export C:\ISO\Win7SP1x86\sources\install.wim 3 C:\ISO\all.wim "Windows 7 Home Premium x86"
imagex.exe /export C:\ISO\Win7SP1x64\sources\install.wim 2 C:\ISO\all.wim "Windows 7 Home Premium x64"
imagex.exe /export C:\ISO\Win7SP1x86\sources\install.wim 2 C:\ISO\all.wim "Windows 7 Home Basic x86"
imagex.exe /export C:\ISO\Win7SP1x64\sources\install.wim 1 C:\ISO\all.wim "Windows 7 Home Basic x64"
imagex.exe /export C:\ISO\Win7SP1x86\sources\install.wim 1 C:\ISO\all.wim "Windows 7 Starter x86"

echo Process complete

pause

exit

9. Rename C:\ISO\all.wim to C:\ISO\install.wim and move to C:\ISO\Win7SP1x86\sources\, replacing the existing version (which you may want to save elsewhere first for possible future reuse)

10. Delete C:\ISO\Win7SP1x86\sources\ei.cfg

11. Create a new ISO (AIO.ISO) incorporating the combined install.wim file:

C:\>oscdimg.exe -lWIN7AIO -m -u2 -bC:\ISO\Win7SP1x86\boot\etfsboot.com C:\ISO\Win7SP1x86 C:\ISO\AIO.ISO

12. Boot from the new ISO:

Windows 7 AIO installer

Notes:

References:


last update: 2016.09.20