Lenovo IdeaPad BIOS update fails to mount EFI partition

biosbootfirmwarelenovo-laptoppartitioning

I just bought a new Lenovo IdeaPad 510S-14IKB 80UV without OS. I clean-installed Windows 10 v1703 on it (installation details below). I then wanted to update its BIOS/UEFI from the factory 2.00 to 2.02 from the above link, but this failed with:

Mount the EFI System Partition fail

This thread suggests it's because I partitioned the drive with MBR, and says that he managed to update the BIOS after re-installing windows using an installation Disk-on-Key creating with stick using Rufus with GPT-type UEFI. However, this means that I need to delete the entire partition, which I don't want to.

Question: Is there a way to update the BIOS without re-formatting the drive to GPT?

Installation procedure

  1. Download a Windows 10 64-bit ISO, and create a USB disk-on-key using Windows USB/DVD Download Tool.
  2. Enter machine BIOS (Fn+F2), set boot to legacy support (may have been the default, don't remember), restart and enter BIOS again. Now disk-on-key is selectable – set it as first boot device.
    • Note that I tried to set boot to UEFI-only, but then it wouldn't recognize the disk-on-key.
  3. Start machine – boots from disk-on-key into Windows installation. Select custom, delete the existing FreeDos partition, and install Windows on the blank space.

Best Answer

Three possibilities occur to me, although one violates the details of what you're asking to do but not the spirit, and I can make no promises that any of these approaches would work. I strongly recommend you research all of these options before proceeding....

Option 1: Find Another Way to Install the Firmware Update

You may be able to find an option in your firmware setup utility to update the firmware. If so, the trick is to find a suitable file to feed it.

Sometimes .exe files for installing firmware updates are actually .zip or other archives with executable wrappers that extract files and do things with them. Thus, extracting the files in the .exe file might expose a file that your firmware will take. (Be prepared to try several archive tools before you figure out what the file actually is.) Another option is to ask Lenovo about this, or dig further for it on their site. They may be willing to provide you with a suitable file.

Option 2: Install Firmware Update via Temporary UEFI-mode Boot

In principle, you could find a Windows recovery disk that boots in EFI mode, enable EFI/UEFI-mode boot support in your firmware, boot to the Windows recovery disk, and use it to install your firmware update.

Unfortunately, I know little enough about Windows recovery tools that I can't point you to specific disk images or procedures, except to point out that such tools may be bootable in both BIOS/CSM/legacy and EFI/UEFI modes, and controlling the boot mode can be tricky. On most computers, there's a firmware setting to enable BIOS/CSM/legacy support (any of those three terms may be used), and disabling that setting will usually force an EFI-mode boot. (You'd obviously want to remember where this option is so you can re-enable BIOS-boot support when you're done.) You may also see two entries for an external medium in the computer's built-in boot manager, one of which includes the string "UEFI" and the other of which doesn't. Selecting the "UEFI" entry usually forces an EFI-mode boot. The details of forcing an EFI-mode boot vary from one computer to another, though, and sometimes what looks like a way for force an EFI-mode boot is actually just a way to suggest an EFI-mode boot, so you don't always get what you expect.

If you do succeed in booting an emergency disk to EFI mode, it sounds like the Lenovo tool is expecting to find an EFI System Partition (ESP). These are easy enough to create on a USB flash drive -- but if the tool wants to see an ESP on a hard disk, creating one on a USB flash drive might be inadequate. In fact, any FAT partition might be sufficient; but if the tool is picky enough to want one with the ESP's type code, most partitioning tools will let you set that. The tricky part is determining how -- GPT type codes are 128-bit values. (The code for an ESP is C12A7328-F81F-11D2-BA4B-00A0C93EC93B.) Such values are awkward, so many partitioning tools provide program-specific shortcuts. My own GPT fdisk (gdisk) uses EF00, for instance. I don't know what the standard Windows tools use, offhand. Be sure to use FAT when creating your ESP; AFAIK, no EFIs can read exFAT or NTFS without the help of extra drivers.

Option 3: Convert to UEFI/GPT Boot

A final approach is to convert your Windows installation to boot in EFI/UEFI mode. This can be done without doing a complete wipe-and-reinstall, in either of two ways:

  • Starting in Windows 10 Creator Update (version 1703A), Windows includes a new tool, MBR2GPT.EXE, which is advertised as being able to convert Windows 10 BIOS/MBR systems to UEFI/GPT systems. I've never used it myself, so I can't comment on how well it works; but it may be worth investigating.
  • Several people have created procedures for doing such a conversion on older Windows systems, back to Windows 7. This blog post describes one such procedure. I've done this once or twice, but not recently.

This conversion procedure carries some risk; a mistake, program bug, power failure at the wrong moment, etc., could render your system unbootable. Thus, I recommend doing this only after taking an adequate backup of your entire system, or at least of your important personal files. The advantage, though, is that once it's done the Lenovo update utility should work for you. EFI-mode booting also offers some modest advantages, such as (usually) a slightly faster boot time and the modest security benefits of Secure Boot (if your firmware supports this feature and if you activate it).

Related Question