Putting Windows on a diet (Reduce the size of Windows for USB device)
A standard Windows installation can be pretty big - up to a gigabyte or more. About 80% of that is useless junk that you don't need, which just takes up disk space and makes your system run slower. This is especially true when you are building a LivePC - the environment is virtualized so most of the hardware drivers are unnecessary. The question is, how do you strip out the
bloat without breaking anything?
There are a couple of tools that will help put your Windows on a serious diet. We've used these at moka5 to build some truly tiny Windows LivePCs - just 40MB for a basic Windows XP Pro installation! You can layer on the software you want and have a lean and mean, yet fully functional, Windows LivePC that you can fit on a small USB stick.
The first tool that we've tried is nLite. nLite takes a standard Windows installation CD and allows you to make a specialized version where you have stripped out components or added your own programs. The program is under active development and new versions are appearing every month or so. The UI is straightforward to use - you can easily integrate hotfixes and drivers, remove components, and add patches and tweaks to your Windows install. We used nLite to generate a stripped-down Windows LivePC that we use daily. It is only 170MiB but still has all of the necessary functionality.
The second tool we've tried is WinBuilder. It is rather unique in that it uses the QEMU emulator to boot and configure the Windows image. It includes a powerful scripting facility for manipulating the image - for example, compressing your executables, changing your default shell, or making a tiny LiveCD version of Windows. There is a thriving community of script writers and the scripts can be shared and autoupdated. We've found WinBuilder a little harder to use than nLiteOS to build LivePCs. However, it is very flexible. We built a 38MiB Windows XP install that was actually functional! WinBuilder is a powerful tool that has a lot of potential.