8

Note – This thread How to add UEFI image boot option in BCDedit? is similar but the answer there is irrelevant as it does not describe my case.

This thread How remedy situation with two EFI partitions on one drive? developed my interest in this question.

I have Windows 10 and I want to create a new boot entry in UEFI setup pointing to say EFI Shell say shell.efi file residing at \Efi\Boot\Shell\Shell.efi. How do I do that using bcdedit.exe without copying existing {bootmgr} windows entry? I tried the solution provided in that answer but the command is not accepted.

C:\windows\system32>bcdedit /create /d "EFI_Shell" /application firmware
The application type switch specified is not valid.
Run "bcdedit /?" for command line assistance.

When I explore /create /application in bcdedit Help, it does not show firmware parameter as a valid entry.

The only apptype options are

 BOOTAPP
 BOOTSECTOR
 OSLOADER
 RESUME
 STARTUP

The only way I am able to do that is copying {bootmgr} to new entry and modifying partition, path and description in the copied entry.

But is there a direct way using bcdedit without copying {bootmgr} entry?

Note - There are several other ways to add a boot entry in UEFI Setup but I am specifically interested in bcdedit that too without copying {bootmgr} if possible.

Note - I already have working Windows 10 and BCD store already has {bootmgr} which is Windows boot manager. Like this.

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {...}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

The only way I am able to do right now using bcdedit command is

bcdedit /copy {bootmgr} /d "UEFI_Shell"

and then get a new GUID and update path and location etc. However I tried the command

bcdedit /create /d "EFI_Shell" /application firmware

as already explained above and as shown in that other answer on SU, which returns invalid. So is bcdedit having capability to directly create a UEFI Boot menu entry in addition to existing Windows Boot Manager, if yes, how to do that without copying existing {bootmgr} which is for Windows.

7
  • 1
    I think the article Build a Bootable BCD from Scratch with Bcdedit has the information you need. Let me know if to put up an answer.
    – harrymc
    Commented Nov 27, 2022 at 10:03
  • If I correctly understand that article talks about creating BCD from scratch. I already have {bootmgr} entry for Windows.
    – rajeev
    Commented Nov 29, 2022 at 7:09
  • Unclear - you said "without copying existing {bootmgr} windows entry".
    – harrymc
    Commented Nov 29, 2022 at 8:28
  • Edited the question. Hope it's clear now.
    – rajeev
    Commented Nov 29, 2022 at 14:16
  • 1
    @rajeev I don't think bcdedit provides an "official" / "orthodox" way for you to add an UEFI boot entry (a.k.a. firmware application) while it has an enum filter for that. It seems that it's possible to abuse a valid type like bootmgr though. (I haven't really tried, but I saw some walkthrough / guide or so online, you know.) Nevertheless, I also noticed that there's a (third-party) PowerShell module, which seems to help more "properly" / be more efibootmgr-like. (See its Add-UEFIBootEntry.)
    – Tom Yan
    Commented Nov 30, 2022 at 14:55

0

You must log in to answer this question.

Browse other questions tagged .