Skip to main content

WindowsPE on USB

Oh boy, what a mess. It all started when I noticed that my Ideapad S10 engages its fan quite often - too often, for no apparent reason. Luckily IBM relased a BIOS update, mentioning (and hopefully fixing) exactly this behaviour. Of course, flashing the BIOS was only possible by running some Win32 application. Although this Ideapad S10 came with MS Windows preinstalled, it was running Ubuntu/10.04.2 now. This is where the fun begins...

There's WindowsPE, which is basically a minimal of a Windows operating system. In our case, WindowsXP should be sufficient. (I guess Windows98SE would do too, but let's not get cocky). There are different approaches how to roll your own, bootable WindowsPE image, the most prominent one seems to be BartPE. This is a good start and the ISO was indeed bootable (in a virtual machine) - but not when I copied it to a USB stick. Yes, I know grml can do it and grml boots an ISO9660 image just fine when copied to USB. But BartPE would not.

After trying several things, experimenting with Syslinux black magic and avoiding overly crude tutorials I finally came across PE2USB. However, pe2usb could only handle USB drives with less than 2GB. Even when I found such a thing and pe2usb completed w/o any errors, it just wouldn't boot.

But then there was another PE2USB version - which formatted the USB drive with NTFS instead. And indeed, with BartPE and this version of pe2usb (and manually copying AUTORUN.INF) the Ideapad S10 would finally boot off this USB stick - yay!

Luckily I had a machine with WindowsXP available that allowed me to do all this. Mounting the USB stick in Windows again, filling it with zeros (fsutil can't do this, right? And SDelete did some magic, but I had to quit it at 817%), I can now compress the USB disk's image and save it to be reused again when another BIOS update is calling :-)