diff --git a/man/systemd-boot.xml b/man/systemd-boot.xml
index 30908e398a..56044281d4 100644
--- a/man/systemd-boot.xml
+++ b/man/systemd-boot.xml
@@ -192,6 +192,16 @@
may also be reached with F2, F10, Del and
Esc.
+
+
+ Shifto
+ Power off the system.
+
+
+
+ Shiftb
+ Reboot the system.
+
The following keys may be pressed during bootup or in the boot menu to directly boot a specific
diff --git a/src/boot/efi/boot.c b/src/boot/efi/boot.c
index b1c8814286..30272ce2dd 100644
--- a/src/boot/efi/boot.c
+++ b/src/boot/efi/boot.c
@@ -881,7 +881,7 @@ static bool menu_run(
case KEYPRESS(0, 0, 'H'):
case KEYPRESS(0, 0, '?'):
/* This must stay below 80 characters! Q/v/Ctrl+l/f deliberately not advertised. */
- status = xstrdup16(u"(d)efault (t/T)timeout (e)dit (r/R)resolution (p)rint (h)elp");
+ status = xstrdup16(u"(d)efault (t/T)imeout (e)dit (r/R)esolution (p)rint (O)ff re(B)oot (h)elp");
break;
case KEYPRESS(0, 0, 'Q'):
@@ -1008,6 +1008,14 @@ static bool menu_run(
status = xstrdup16(u"Reboot into firmware interface not supported.");
break;
+ case KEYPRESS(0, 0, 'O'): /* Only uppercase, so that it can't be hit so easily fat-fingered, but still works safely over serial */
+ RT->ResetSystem(EfiResetShutdown, EFI_SUCCESS, 0, NULL);
+ break;
+
+ case KEYPRESS(0, 0, 'B'): /* ditto */
+ RT->ResetSystem(EfiResetCold, EFI_SUCCESS, 0, NULL);
+ break;
+
default:
/* jump with a hotkey directly to a matching entry */
idx = entry_lookup_key(config, idx_highlight+1, KEYCHAR(key));