Skip to content
This repository has been archived by the owner on Jun 4, 2021. It is now read-only.

Installing windows

Daniel Pittman edited this page Nov 15, 2013 · 17 revisions

About Windows Install Support

Windows support is ALPHA quality. Expect this to be buggy, missing features, and generally to favour debugging over automation in error handling. The purpose of the current release is to get real world experience with Windows installation automation, and to discover the missing features required to truly support the Windows world.

For licensing reasons, you will need to have your own copies of Windows available: both the installer content, and of the Windows Assessment and Deployment toolkit, containing the Windows PE environment used to automate the Windows installer.

The Windows installer support has been testing with:

  • WinPE 4 amd64 built on Windows 8.0 amd64
  • VMWare Fusion VM
  • Windows 8 Professional installed to VM

WARNING

WinPE 5, shipped with Windows 8.1 and the latest ADK, is not yet supported by wimboot. As of 2013-11-15 this problem is understood by the upstream developers and a fix should shortly be available. Once that is released upstream we will upgrade our installer to support it.

Getting Started

Right now it is necessary that your DHCP server and your Razor server be on the same IP address, or that you forward HTTP on port 8080 from the DHCP server to the Razor server. I hope to discover a good way to fix this in future.

Setting up for Windows installation

Getting Windows installable is a multi-step process: licensing on Windows PE requires that you build your own custom WinPE WIM image containing our scripts, as we cannot redistribute a pre-built image. The first stage is to build your own WinPE image suitable for use with Razor:

  1. Install the Windows Assessment and Deployment IN THE DEFAULT LOCATION. Sadly, my scripts couldn't detect a custom install location at all, so they have hard coded paths. This makes me very sad. :(
  2. Copy the build-winpe directory content to a Windows machine. (I used Windows 8 Professional, but anything the ADK runs on should theoretically work fine.)
  3. Change into that directory. (I used c:\build, but anything should be good.)
  4. Run powershell -executionpolicy bypass -noninteractive -file build-razor-winpe.ps1 to run the build script.

This will take some time. Quite some time. It will eventually output an image matching razor-winpe\*.wim under the current working directory. This is your custom WinPE image with the required components to work with the Razor server.

Note: in future I plan to implement "burning in" the address of your Razor server, to facilitate less "test focused" systems. :)

Next, create the repository from your Windows installer. This is done in the usual way; unfortunately, I found that my Windows DVD image triggered a bug in libarchive that prevented unpacking. To fix that I cheated -- created the repo with a dummy image, then used 7zip to unpack the Windows ISO image without going through libarchive. This took advantage of my knowledge that this is not going to be noticed by Razor, and that is unlikely to change before that bug is addressed.

Copy the WIM image generated above into your newly created Windows repository, naming it razor-winpe.wim. (eg: if you named your repo win8, this lives in ${repo_store}/win8/razer-winpe.wim).

Finally, create your policies, etc, as normal. I used a noop broker, but it doesn't matter what you bind it to -- the current installer does not do any broker stuff after the first boot. (Known missing feature; that will be implemented in a bit.)

The last step is to configure an SMB server on the Razor server, exporting the Razor repositories. This is necessary as the WinPE environment can't use an HTTP source for installation, and neither can the Windows 8 installer software.

This is a fairly simple share: allow anonymous access, call it razor, and point it to your repo store root. (eg: the one from your config.yaml file.) Mine looks like this:

[razor]
  comment   = Windows Installers
  # this is, by default, under /var/lib/razor-server
  path      = /home/daniel/razor-repo-store
  guest ok  = yes
  writable  = no
  browsable = yes

Using Windows installation

Once you have policies, automatic installation should just work™ if your policy binds a node. You should watch the console -- error handling favours "drop to a cmd prompt" -- while testing it out.

Clone this wiki locally