We had a question this week from a customer that was looking automate the installation of the latest Windows 2016 Tech Preview running on vSphere. They were booting the ISO using the EFI firmware and found that they would always be prompted with the "Press any key to boot from CD or DVD ...." message as shown in the screenshot below.
This obviously was not ideal from an Automation standpoint and they were looking to see if there was a solution. Thanks to one of our EFI experts at VMware, Darius Davis, who noted that this has been a known Microsoft issue for some time now and there is even a TechNet article here describing the issue since Windows Server 2008. The only workaround to solve this problem was to re-master the Windows ISO to use the efisys_noprompt.bin instead of the default efisys.bin file.
Given this was not something I had done before and I was curious to see how difficult it really was. I did some digging around the Internet and to my surprise, it was actually pretty hard to find a straight forward article that walks you through on re-mastering a recent release of Windows yet alone on how to enable this EFI not prompt option. I was about to give up when I stumbled onto an article by Johan Arwidmark who outlines the steps to create a Windows 10 ISO from the Windows 10 ESD installer. Given the title of his article, I am guessing that others have also had a hard time finding the correct instructions and tools required to re-master an existing Windows ISO. Johan had a nice Powershell script that converts the Windows 10 ESD installer to an ISO and then using that image to re-master the final ISO.
Given that both Windows 2016 and even Windows 10 is available as an ISO download, we did not need the entire script. Only the last couple of lines of the script is what I was really interested in. Below is a modification of Johan's script and you can see that instead of using the efisys.bin file, we will reference the efisys_noprompt.bin which will remove the prompting when booting the installer using the EFI firmware.
# Path to the Extracted or Mounted Windows ISO $ISOMediaFolder = 'E:\' # Path to new re-mastered ISO $ISOFile = 'C:\Users\lamw\Desktop\Windows2016.iso' # Need to specify the root directory of the oscdimg.exe utility which you need to download $PathToOscdimg = 'C:\Program Files\Windows AIK\Tools\PETools' # Instead of pointing to normal efisys.bin, use the *_noprompt instead $BootData='2#p0,e,b"{0}"#pEF,e,b"{1}"' -f "$ISOMediaFolder\boot\etfsboot.com","$ISOMediaFolder\efi\Microsoft\boot\efisys_noprompt.bin" # re-master Windows ISO Start-Process -FilePath "$PathToOscdimg\oscdimg.exe" -ArgumentList @("-bootdata:$BootData",'-u2','-udfver102',"$ISOMediaFolder","$ISOFile") -PassThru -Wait -NoNewWindow
To use the script, you will need to download and install the Windows Automation Installation Kit (AIK) which will provide you with the oscdimg.exe utility that will be used to re-master a new ISO. You will also need a copy of Windows 2016 or any other Windows ISO that you plan to re-master and disable the EFI prompting and lastly, there are three variables in the script that you will need to update.
- ISOMediaFolder = This is the full path to either the extracted or mounted Windows ISO
- ISOFile = This is the path to re-master ISO
- PathToOscdimg = This is the path to the location of oscdimg.exe (you can use the default it if you install AIK under C:\)
The re-mastering process should not take too long. Once the re-mastered ISO has been created, you can now boot up your VM and you should see that you are no longer prompted with the message but rather booting straight into the installer as seen in the screenshot below. Hopefully this will help others who might have a need for this in the future as I know it as not as easy to find as I had hoped for initially.
jomebrew says
Typo:
Below is a modification of Johan's script and you can see that instead of using the efisys.bin file, we will *** not *** reference the efisys_noprompt.bin which will remove the prompting when booting the installer using the EFI firmware.
William Lam says
Fixed. Thanks for the catch
Daniel Cazzulino says
I get the following error when running the script:
OSCDIMG 2.45 CD-ROM and DVD-ROM Premastering Utility
Copyright (C) Microsoft, 1993-2000. All rights reserved.
For Microsoft internal use only.
ERROR: Could not open boot sector file "ootdata:2#p0,e,bD:\boot\etfsboot.com#pEF,e,bD:\efi\Microsoft\boot\efisys_noprompt.bin"
Error 123: The filename, directory name, or volume label syntax is incorrect.
Any ideas what I may be doing wrong?
Richard says
Thank you so much for this! been looking everywhere how to create and EFI bootable ISO image for Hyper-V and this solved it! 😀