Purpose:
Make a small CD sized image to be used for a fast virtual machine which runs most Windows Desktop applications, can be updated with Windows Update, using minimal memory and minimal HD space.
This is not a general guide, but just the steps I documented for my own needs, which may prove helpful to others who want to accomplish something similar. Its mostly for Windows 8, but also applies to Windows 7. Where there are differences, this is noted. (My steps & descriptions are very concise and without pictures, so this may not work as a beginners guide, but you can find a nice one here.
System Requirements
- Recent version of Parallels (version 10) on a recent version of OS X (Yosemite) and 8 GB RAM (this will probably work similarly in VMware)
- Windows ISO file: RTM or Download version of Windows 7 SP1 or Windows 8.1
- NTLite with at least the Home license, after trying out the free version (it cannot remove as much as the licensed one)
Preparations
- Preferably, create a Virtual Machine as a Host for NTlite with the full version of the target OS
- for example Windows 8 Pro 32 bit
- assign at least 2GB memory for the OS hosting NTlite
- Install NTlite on the Host
- use HWlist, if targeting the OS for other hardware
- Download Windows 8.1 ISO from Microsoft (this includes a lot of recent updates already) or use RTM/MSDN ISO
- http://windows.microsoft.com/en-us/windows-8/create-reset-refresh-media
- Official downloads for Windows 7 SP1 are available here with an (unused?!) product key. Iso images can be also be found on MSDN; and by looking up for example en_windows_7_professional_with_sp1_x86_dvd_u_677056.iso with a hash of SHA1: D89937DF3A9BC2EC1A1486195FD308CD3DADE928 (Google: ‘mydigitallife MSDN Windows 7’)
- Extract contents to a folder on the Desktop, for example ‘Windows8Pro’
NTlite Settings
- Toolbar – Add – Image Folder – select ‘Windows8Pro’: to select the OS source
- For Windows 8.1, let NTlite convert the compressed .esd to a .wim
- Backup this folder for re-use later for example Windows8ProForNTlite
- Add this folder as the source
- Toolbar – Load: Load Windows 8.1 Pro from install.wim (wait a minute…)
- In Components:
- Toolbar – Compatibility: select things you want to keep working…
- Printing
- Recommended All
- USB support
- Windows Update
- Host Machine (or HWlist)
- Toolbar – Expand All – Uncheck All: now only the absolute minimum is selected to be installed
- Add to that the following, by checking what you need:
- Application Compatibility! (needed for a lot of older applications)
- Media – high definition audio device (both)
- wdmaudio (if not already selected)
- Floppy Disk Support (otherwise Device Manager will have an unassigned Device from Parallels)
- Group Policy Client & Local Security Policy (useful for changing some otherwise inaccessible settings)
- Wallpapers (Default)
- Internet Explorer client
- optional: Accessories – Mouse pointers
- optional: add ‘Time Service’ (did not work in Windows 8.1, but OK in Windows 7)
- Win7: Desktop Window Manager (for Audio and Network Connections to work – may get fixed in later NTlite version)
- No need to add Metro (almost all settings can be done elsewhere)
- Toolbar – Compatibility: select things you want to keep working…
- In Features:
- Internet Explorer is enabled
- In Updates – Integrate Update Packages:
- Automatically using the NTLite (v1.7+) with the Download Updates function, more info here
- Or manually:
- To find out relevant Update packages, you should first make an NTlited install without integrated updates
- then run Windows Update and make a list of all important Security Updates by KB number
- Download the relevant updates based on the list created in the first step
- manually from Microsoft Download Center (search by KB number) or some other tool
- To find out relevant Update packages, you should first make an NTlited install without integrated updates
- Integrate relevant updates
- In Tweaks:
- optional: modify ‘Services’ according to Black Viper Safe list usually a few dozen changes
- Auto Reboot on BSOD – disable
- UAC: disable prompt on Secure Desktop
- In Unattended:
- Toolbar – Enable, then Auto-fill
- modify Administrator user as needed including Password “yyyyyy”, possibly check Autologon
- optional: Toolbar – Add local account: Group – Users, …
- Toolbar – Configure disk partition: Check… Install to this partition, Maximum, OK
- use Generic install Key for Windows 8.1 (Bing it 😉
- Toolbar – Enable, then Auto-fill
- In Post Setup:
- Add 7Zip
- Add Sysinternals Process Explorer (self-expanding 7zipped exe)
- Add WinDirStat http://windirstat.info/index.html
- optional: Add Firefox
- add some tweaks, reg hacks etc. (see below)
- Win8DisableSwapfile.reg – disable Metro swapfile
- Win8NoLockScreen.reg – disable the Lock Screen
- setvmem.bat – set smaller Virtual Memory
- In Apply:
- Toolbar – check Clean Update backup, optional: check Reuse Driver Cache
- Toolbar – check Save changes to image
- Toolbar – keep check on Backup Log & Backup preset
- optional: Toolbar – check ESD compression (gets the image down to almost CD size, but can take about 15 mins longer) without ESD compression the image will be around 900 MB
- Toolbar – check Create ISO image: Save to outside of the VM and name it something meaningful (Windows_8.1_Pro_32bit_en_US_NTLite4.iso)
- In Source – Toolbar – Save – Preset name: for example Win8NTlite4
Installation in Parallels VM:
- Select image file
- Select Operating System – ‘Windows 8.1’ (if not recognised)
- Win8: Select ‘Look like Windows 7’ (to get Start8 start menu)
- Customize: Sharing, Applications, Startup, Memory, disable USB Webcam
- Install should then all be fully automatic for Windows 8, Windows 7 may ask for a key, which can be skipped
- when creating partition manually: search for “How to Avoid Reserved or Hidden Partition in Windows 8”
After Installation in Parallels VM:
- Parallels Hard Disk will be about 2.3 – 2.8 GB, memory usage about 250 MB (win8.1)
- Win7: disable system restore
- set 125% Windows & Font scaling (on Hi-Res monitors)
- Install Parallels Tools
- Win7: Install Parallels ‘Mac Look’
- adjust fonts & sizes Segoe UI 11px
- Win8: ‘Windows 7 Look’ (Win8)
- Win7: Install Parallels ‘Mac Look’
- add Process Explorer shortcut
- check or install WinDirStat
- In Win8.1:
- Start8
- optional: Update Start8 to version 1.5+ (from website)
- sometimes problems with uninstall-loop in Windows 8.1
- optional: Update Start8 to version 1.5+ (from website)
- Start 8 settings:
- Desktop: Disable all Windows 8 Hot corners
- Configure:
- Show ‘Run’
- Hide shortcuts:
- Games (do not work)
- Help and Support, etc.
- Start8
- Check for Updates in Windows Update (first time can be slow)
- ignore (most) Optional Updates
- change Settings (uncheck ‘give me recommended updates…’)
- hide unwanted updates, especially if you skipped some intentionally during the integration
- make Firefox default (if installed)
- launch 7Zip as Admin to associate file-types with all users
- disable Windows Error Reporting in Group Policy
- Administrativ Templates – Windows Components – Windows Error Reporting
- Activation
- check: %windir%\system32\cmd /c slmgr/dli
- optional: Install downloaded Theme
- Check Device Manager
- Win7: sounds: disable startup sound
- Disable Delete Confirmation on Recycle Bin
Cleanup:
- Use WinDirStat to check what is taking up most space
- Delete ‘Software Distribution’ (stop Windows Update Service first)
- Shrink WinSXS
- (see relevant articles)
- On Windows 8.1:
- Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
- Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
- Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
- Dism.exe /Online /Cleanup-Image /AnalyzeComponentStore
- Delete: C:\Users\Christian\AppData\Local\Temp\PrlToolsPackages
- Delete any restore points and disable System Protection (Win7)
- launch Windows Disk CleanUp
- optional: CCleaner (disable Monitoring)
Not working or Missing:
In Windows 8.1
- Creating new Users in a Group
- fast user switching
- Create an account via an Administrator command shell cmd.exe:
- net user /add useraccountname mypassword
- net localgroup administrators useraccountname /add
- Even with Metro disabled, Metro IE is installed
- Metro IE will not load any pages
- On full screen “Here is Start” will not disappear
- cannot change account picture (due to Metro not being installed)
- generally: if nothing from .Net is installed, Event Viewer will not work
- some errors will show up in Event Monitor, not all of which have been explored by me
Conclusions after testing:
- Saves a lot of space for each VM, usually only 2.5 to 3.5 GB per VM even with installed updates & applications
- whereas a regular VM with Win7 or Win8 easily takes up 8 to 20 GB and keeps on growing
- Win8 Lite is more responsive and almost as fast as a Windows XP VM
- used Process Explorer to check memory usage, which is between 200 and 300 MB after idling for 5 minutes (about half of a regular install)
- Device Manager shows no errors
- Network, Sound and all built in desktop applications incl. Administrative Settings work
- .Net Framework 3.5 or 4.5 can be installed later, if needed
- most desktop applications will install and run smoothly
- tested Firefox, Quicken, Bibleworks, etc.
Registry tweaks & Swapfile Size in Post Setup:
DisableSwapfile.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
“SwapfileControl”=dword:0
NoLockScreen.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Personalization]
“NoLockScreen”=dword:00000001
setvmem.bat
wmic computersystem set AutomaticManagedPagefile=False
wmic pagefileset where name=”C:\\pagefile.sys” set InitialSize=256,MaximumSize=512
Some Silent Install Switches:
77z938.msi /q INSTALLDIR=”C:\Program Files\7-Zip”
Firefox Setup 36.0.1.exe -ms
windirstat1_1_2_setup.exe /S
msxml4-KB954430-enu.exe /quiet
WindowsUpdateAgent-7.6-x86.exe /quiet
Firefox Setup 36.0.1.exe -ms
windirstat1_1_2_setup.exe /S
msxml4-KB954430-enu.exe /quiet
WindowsUpdateAgent-7.6-x86.exe /quiet
Process Explorer.exe -o”C:\Program Files\” -y (7zip created self-extracting exe)
If you want to use one of these example presets, please adapt them to your needs: at a minimum check the Components – [toolbar] Compatibility options.
For more presets look at Emma’s excellent work here.