Since I’m moving all my systems at home away from x86, simply creating a x86 usbstick was a bit to easy. I therefor thought it would be more fun to create a x64 UEFI boot. Im not really sure if this is required, but it will allow computers that cant read NTFS (from UEFI boot) to still boot the installation. I have also written a simple x86 instruction.

First of lets create a bootable USB with the PE

This might be a bit more complex than needed in most circumstances, but booting on the MacMini required extra. In diskpart do the following commands, you need to remember to select the correct disk.

list disk
select disk <ID of the USB disk from above>
clean
convert gpt
create partition primary
format FS=fat32 quick

So now we have a good stick but it still wont do any good. For instance we are missing a bootsector, lets add one.

bootsect /nt60 <USB drive letter>

Okey but still there is nothing to boot really lets add that too. Lets copy the last parts, I choose the x64 version, there might be some additional work to get UEFI to work with x86. All required files are available on deployment repository share.

  • copy \\SpecopsDeploymentRepository\Boot\x64 to the root of the USB memory.
  • copy \\SpecopsDeploymentRepository\Boot\LiteTouchPE_x64.wim as boot.wim to the \sources folder on the USB memory.

Now we have a working USB memory that boots the PE and then is having problems connecting to the server. Well the Lite Touch PE image is made to be downloaded using PXE. We need some more magic on the stick to make it work.

Getting the USB boot to talk to the server

Well after some looking into what Lite Touch does I found out that I needed some small changes to the bootstrap.ini file. Well we haven’t discussed that one yet. So where is that little file, it’s really baked into the boot.wim file that we copied to the USB memory earlier. So lets get going modifying the file. First lets create a directory called C:\temp\boot and then mount the boot file there. These are the commands to do this with powershell, you will need to run powershell as an administrator.

New-Item -type Directory C:\temp\boot|Out-Null
Mount-WindowsImage -ImagePath <USB>\sources\boot.wim -Path C:\temp\boot -Index 1
So now we got the boot image mounted under C:\temp\boot and can edit as we want. Lets open the bootstrap.ini file, you will still need to be administrator so just open it from the same powershell window.

notepad C:\temp\boot\Deploy\Scripts\bootstrap.ini

A bit below I have written the required changes. After we are done we need to save our changes, we are doing it by powershell.. Surprise..

Dismount-WindowsImage -Path C:\temp\boot -Save

Required changes to bootstrap.ini

Under [Settings] add USBInstall between Default and SetDeployRoot. And add a section called USBInstall. This is an example of how the two first sections in the file looks like for me.

[Settings]
Priority=Default,USBInstall,SetDeployRoot
Properties=SOD_STATUS1

[USBInstall]
WDSServer=<deploymentserver>
DeployRoot=\\<deploymentserver>\SpecopsDeploymentShare$

The little kink

The problem is that MDT is having problem determining the correct installation disk when running under UEFI and having more than one drive. But in a physical machine that is easily fixed. When the machine has booted the PE image (you will see the Specops logo in the left top corner) just pull the USB out. The installation is running from RAM so there shouldn’t be any problems at all.