Question

I am currently working on a script to image multiple lab machines I am in charge of with Windows 7, unfortunately they are UEFI Dell machines which work in a silly way. On the machine I created the image with in the Dell setup utility there was a UEFI entry in the boot menu for Windows which loaded the /boot/Microsoft/bootx64.efi file or some such equivalent, when I image the machines everything goes fine except when I boot them I get the good old 'No Bootable device found error' and when I go into the Dell setup utility there are no Windows entries. I can manually add a entry that points to this UEFI partition and the boot file, which will then boot fine and weirdly on boot add another entry to the NVRAM that points to the same file under the typical name 'Windows Boot Manager' or something. I have been trying to find some way to add this NVRAM entry without having to go into the Dell setup manually since I am imaging a large number of machines and this would just complicate the process. I originally tried just chainloading a grub bootloader after the imaging had finished to detect the windows installation and boot it which would theoretically add the entry to NVRAM itself and stop me from having two entries or having to interact with the machine myself. I also haven't been able to find any information on directly adding an entry to the NVRAM on the linux side that would do the same thing I accomplish through the Dell setup utility. Anyone have any experience with this?

Thanks

Was it helpful?

Solution

The operation of the Boot Manager is defined in the UEFI Specification, Chapter 3.

If you can write a UEFI application and boot to a UEFI shell and run your application you can use the Runtime Service for setting a variable to create a BootOption and add that BootOption's number to the BootOrder. This is what the MS bootloader is doing when it detects that there is not a BootOption defined for Windows, and this is way there is a new entry in the list after you boot to Windows.

Not sure what your default boot order is for your platform, but it may be possible to boot to a USB key with an UEFI shell by default, as this is a common configuration of defaults due to manufacturing requirements.

Check out the projects on tianocore on sourceforge to get a better idea of what would be involved in doing what you wanted to do.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top