1. Make sure the following ports are installed git p7zip cdrtools-devel 2. Fetch the sample unattend XML scripts git clone https://github.com/nahanni/bhyve-windows-unattend-xml 3. Fetch the stable Windows virtio drivers fetch https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.96/virtio-win-0.1.96.iso (The later 0.1.102 release seems to have issues on various versions) Vista requires an older version: https://fedorapeople.org/groups/virt/virtio-win/deprecated-isos/archives/virtio-win-0.1-94/virtio-win-0.1-94.iso 4. Extract the Windows ISO into a working directory 7z x /path/to/your/windows.iso 5. Copy over the unattend script for the version of Windows you are installing into the ISO working directory, and rename it e.g. for 2k12r2, cp /path/to/unattend-clone/files/win2012r2_AutoUnattend.xml \ AutoUnattend.xml 5a. Note that desktop versions require a valid license key to be inserted into the XML file. Look for the 'ProductKey' tag for the location. None of the server versions require a license key at install time. 6. Also in the top-level of the working directory, create a dir name virtio and extract the Windows virtio driver ISO into it. mkdir virtio cd virtio tar xf /path/to/virtio-win-0.1.96.iso 6a: Note: for some versions, the set of drivers should be restricted to just the relevant ones to avoid a blue-screen error on install: 2008r2: tar --include="NetKVM/2k8R2/amd64/*" -xvf /path/to/virtio-win-0.1.96.iso win7: tar --include="NetKVM/w7/amd64/*" -xvf /path/to/virtio-win-0.1.96.iso vista: tar --include "VISTA/AMD64/*" -xvf /path/to/virtio-win-0.1-94.iso 7. From the top-level of the working directory, issue the following to repack the ISO. You'll want to change the "-o" parameter, and don't forget the trailing period. mkisofs \ -b boot/etfsboot.com -no-emul-boot -c BOOT.CAT \ -iso-level 4 -J -l -D \ -N -joliet-long \ -relaxed-filenames -v \ -V "Custom" -udf \ -boot-info-table -eltorito-alt-boot -eltorito-platform 0xEF \ -eltorito-boot efi/microsoft/boot/efisys_noprompt.bin \ -no-emul-boot \ -o /path/to/your/win_repack.iso . (mkisofs should be at version 3.01a24 to understand the eltorito params)