Boot Options

Introduction

How to select non-standard boot options.

Designers

Objectives

  • Accommodate modern "designed for Window 8" hardware
  • Accommodate legacy "quick boot" BIOS settings
  • Don't delay startup
  • Allow
    • Boot into Windows
    • Boot a USB stick
    • Change settings in BIOS
    • Use Recovery options
    • Change boot options

Constraints

A major hardware constraint is USB enumeration that prevents us from capturing a keyboard press during boot to bring up a selection menu. To be able to detect a usb keyboard it would mean waiting a couple of seconds *every boot*.

Relevant Art

Windows 8

Method 1: Shift+Restart

You can also hold Shift while clicking Restart in the Shut Down menu to restart your computer into the boot options menu.

Method 2: Startup Settings

settings

Method 3: Commandline

shutdown /r /o

Method 4: Install media

Boot Menu

http://blogs.msdn.com/cfs-filesystemfile.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-29-43-metablogapi/0572.1_2D002D00_Boot_2D00_Options_2D00_menu_5F00_thumb_5F00_761E9939.jpg

Discussion

  • On most newer "designed for Windows 8" EFI machines the BIOS does not initialize USB anymore at boot time, and the first time USB is set up is in the operating system. This means input is not available until then, and you cannot get into the BIOS setup anymore or the boot loader menu without the OS asking for it. Pressing F2 to get into BIOS is not available, because F2 is not read...
  • Some older (pre windows 8) EFI desktop machines have a big "quick boot" switch in the BIOS setup that gets rid of USB during boot as well. With that mode enabled one cannot get back into the Firmware nicely at all currently, because we have no tool that sets the EFI flag to reenable the BIOS setup stuff. (But Peter Jones actually has a systemd patch which adds that). The only way back into the BIOS setup is to press the power button for 5s when the machine is off which disables the "quick boot" mode, but that appears to be a manufacturer hack, and other machines do this differently if at all. (The mainboard vendor is Intel.)
  • Other older (pre windows 8) EFI machines have the same feature, with a different way out, but it's not as problematic there, since the keyboard is connected via AT bus and that is still initialized and works. There you can just press a key and get in the BIOS like always.
  • Microsoft claims that because firmware boot times can be so quick now that there is no time to hit any firmware key. There's a long blog story about that: https://blogs.msdn.com/b/b8/archive/2012/05/22/designing-for-pcs-that-boot-faster-than-ever-before.aspx?Redirected=true

Tentative Design

Simple by default

Main use case - single OS, no boot menu, no OS boot options. Just boot.

https://www.youtube.com/watch?v=Ho_bHUhB7uE

Multiple OS installed

The best approach to booting an alternative OS would be a modifier key at boot, but that's apparently not possible due to the way usb devices take long to enumerate and sensing that key would mean a long delay every boot. Thus the second best solution is to allow rebooting to an alternative system from the system settings. For now, the *Details Panel* would host a button to reboot the machine into the boot options screen. For this might be an often used action, the shutdown modal dialog would get a convenience shotcut to reboot to the menu as well.

FIXME: should the settings modal provide a hint?

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-lock-login-boot/boot-options-alt.png

Encrypted single user

Major platform for GNOME are notebooks. There is a clear desire to use encrypted flesystem on those in case it gets stolen/lost. We should not require to authorize again after unlocking the filesystem.

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-lock-login-boot/boot-luks-password.png

Offline Updates

When offline updates are installing a progress bar is shown in the middle of the screen.

https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/system-lock-login-boot/boot-updates-installing.png

Comments

In an ideal world, it would be nice to be able to roll back an unbootable update. You update the OS, the system marks to watch the next boot. The next boot gets marked as being in progress. If the target state never gets reached, the next boot (watched and in progress are set) presents a screen where you can either try booting or roll back the last working ostree revision. If target is reached, all measures of watching boot are cleared.

See Also

Design/OS/BootOptions (last edited 2016-12-14 17:45:19 by JakubSteiner)