Aug 142010

Note: This program is only for the current grub version (1.98+), and does not work with grub-legacy (0.xx). Older grub-choose-default versions work with grub-legacy, see GrubChooseDefaultLegacy.

Control Grub Default through a GUI

Do you have a dual boot system? Isn’t it annoying when you want to reboot from Linux into Windows or vice-versa, and you have to wait for the machine to shut down, the BIOS to initialize just so that you can now select the OS that you want to boot into?

grub-choose-default gives you a GUI that you can use to easily select the next default for grub and you can go and grab a snack while your computer reboots without having to wait for anything.

It’s a very simple program that just reads your grub menu entries and then lets you click on the one you want to be the next default.

How It Works

Since grub2 reached version 1.98, setting the default boot entry through the “grub environment” is supported. From Linux, the grub-set-default command is available again, just as before with grub-legacy. Under Windows grub’s code is used to edit the environment directly.

Cross Platform

grub-choose-default is available both for Linux and Windows. It should also work on other Unices, but has not been tested (user reports are welcome).

Under Linux it reads /boot/grub/grub.cfg and sets your choice using grub-set-default.

Under Windows you need to get access to your Linux /boot. If you are running ext2/3, then you can use Ext2IFS, which gives you access to your ext2/3 partitions as regular drives under Windows. Although this software doesn’t work perfectly under Windows 7, there are usable workarounds. See README.win32 in the sources, or read the introductory text of the installer for further information. Grub-set-default currently needs direct file access and thus does not work with /boot on reiserfs or other filesystems (unless someone can point me to a similar FS driver as Ext2IFS).

Then grub-choose-default searches all your drives for boot/grub/grub.cfg or a grub/grub.cfg. The grub directory can be specified in the configuration file, which is located in the Profile folder’s “Application Data” subdirectory grub-choose-default. Add the line ”grub_dir=D:\grub” to the end of the file, and remember to escape backslashes.

Ending the Session

Most of the time you will want to reboot after setting the new grub entry. How to end a session is specific to the desktop environment in Linux, and in the reboot/ directory are example scripts of how to end a session. The user can install the script of his choice in $XDG_CONFIG_DIR/grub-choose-default/reboot.


  • GTK 2.16+
  • GIO (on Windows)
  • Python (for building from source)

Older Versions

The page for the old version of grub-choose-default, which is compatible with grub 0.xx, can be found at GrubChooseDefaultLegacy.



grub-choose-default is released under the GNU GPL v2. The NSIS installer script is using GNU GPL v3, and the waf scripts the EXPAT license.

The development version can be found at .

Ubuntu packages for karmic are at

  • 2014-04-22 – Version 1.1
    Improved grub.cfg parsing. Sub-menu support.
    • Sources: grub-choose-default-1.1.tar.bz2, SHA1
    • Cleaned up tarball was released 2014-04-27, the previous version’s SHA1 was 50f14db42b7f1a04381455627083562583604b54
    • Windows Installer: Not ready yet, please bug me if you are interested.
  • 2010-08-14 – Version 1.0
    Support to set default for next reboot only. Allow workaround for Windows 7.


Comments, bug reports, etc. are very welcome. Please look for my email address in the included README file.