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
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.