Search code examples
usbbootinibios

Need to make USB drive skip itself in boot order without changing bios


I know how to change boot order through bios settings, but I have a unique situation where doing it programatically would be better. The company I work for sells and supports software remotely to thousands of non tech savvy customers. We can't touch their hardware settings, we are only the software vendor.

Recently we rolled out a option for their PCI compliancy that requires a separate removable drive to store a private encryption key. Customers that use this option have to leave a usb drive with a .dat file containing the RSA key at all times. Currently this presents an issue when customers reboot. Sometimes we can walk them through over the phone how to change their bios settings to skip the USB drive, but in many circumstances we cannot, because of the caller and the other end of the phone not being tech savvy enough to change bios settings, and different PC's having different BIOS setups.

So my question is, is there any kind of ini file I can create or boot record on the disk itself than can be added or changed to cause the system to see that there is no OS on the USB, keep going down the list of boot drives. Instead, with no OS many PC's hang on Missing OS screen until we have customer remove drive reboot and plug back in after Windows starts to load. All PC's are Windows, all XP or newer.


Solution

  • You're talking about manipulating BIOS Setup data. Unfortunately there is no industry-standard for computers to manipulate Setup fields, like the boot sequence, so any solution is likely to be vendor-specific.

    An example: Dell Inc. provides customers OpenManage Client Instrumentation (OMCI) that allows admins to remotely change settings, like boot sequence, via standard interfaces like CIM/WMI. See this whitepaper: http://www.dell.com/downloads/global/solutions/omci_info.pdf

    Especially:

    OMCI is the Dell instrumentation package that enables OptiPlex™, Dell Precision™, and Latitude™ systems to be managed remotely. OMCI contains the underlying driver set that collects system information from a number of different sources on the client computer, including the BIOS, CMOS, System Management BIOS (SMBIOS), System Management Interface (SMI), operating system, APIs, DLLs, and registry settings. OMCI exposes that information through the CIMOM interface of the WMI stack. Thus, OMCI enables IT administrators to remotely collect asset information, modify CMOS settings, ...

    OMCI is specific to the Dell BIOS, so it won't work with other vendors' machines. Other enterprise hardware vendors (e.g. HP, IBM) provide similar software. If you can live with a vendor-specific solution, this may work for you.