Instead of burning DVDs or fiddling with USB creation tools, we can boot the ISO from the network.
Naive attempt
We need the following:
- A USB thumb drive for the iPXE boot loader
- Windows ISO
- A web server
- A samba share
- Access to a Windows PC that has the Deployment Toolkit (ADK) installed
Quick steps:
- Download iPXE and copy the image to an USB thumb drive. The iPXE image is tiny (just 400KB) so I chose to use an old drive that doesn't see much use anymore.
# Be careful of which disk you're writing to (of=/dev/sdX) !
$ sudo dd if=/tmp/ipxe.usb of=/dev/sdX
-
Extract the Windows ISO to a shared location on the network
-
Follow the WinPE Howto
- Create the PE files and copy them to the web server (i.e. /var/www/winpe)
- Copy winboot to the same folder (alongside the x86 and amd64 directories)
- Create the boot.ipxe file (alongside the previous)
-
Boot from the USB drive, hit Ctrl+B when it says "Nothing to boot" and type:
iPXE> chain http://192.168.1.xx/winpe/boot.ipxe
If you hit Ctrl+B before the network is setup, you may need the following commands:
ifstat (see the detected network devices)
dhcp (acquire IP address)
route (show IP)
-
Continuing the WinPE Howto, mount the network share and start setup.exe
net use \server\shared \server\shared\win81\sources\setup.exe
Setup starts normally. Select a language, region, keyboard type, accept the EULA, format the hard disk and... nothing. It refuses to go on saying it can't find the disk (even though it lists it and has just created partition(s) on it). After spending a few hours and trying different tricks, it becomes obvious that Windows just doesn't work this way.
Solution
Download the "Windows 7 USB/DVD Download Tool" and burn the ISO onto a bigger USB drive.