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.
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)
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 http://github.com/squisher/grub-choose-default .
Ubuntu packages for karmic are at https://launchpad.net/~bugs-da/+archive/grub-choose-default/
- 2010-08-14 – Version 1.0
Support to set default for next reboot only. Allow workaround for Windows 7.
- Sources: grub-choose-default-1.0.tar.bz2, SHA1
- Windows Installer: grub-choose-default-1.0-win32-setup.exe, SHA1
- 2010-05-30 – Version 0.9
Better error reporting. Note: at 19:06 MET a corrected tarball was uploaded.
- Sources: grub-choose-default-0.9.tar.bz2, SHA1
- Windows Installer: grub-choose-default-0.9-win32-setup.exe, SHA1
- 2010-05-17 – Version 0.8
Bugfix release, 0.7 would still crash on some systems.
- Sources: grub-choose-default-0.8.tar.bz2, SHA1
- Windows Installer: grub-choose-default-0.8-win32-setup.exe, SHA1
- 2010-05-11 – Version 0.7
Bugfix release, 0.6 would crash on most systems.
- Sources: grub-choose-default-0.7.tar.bz2, SHA1
- Windows Installer: grub-choose-default-0.7-win32-setup.exe, SHA1
- 2010-04-19 – Version 0.6
Rewrite in C/Gtk supporting grub2. Note that the release tarball was replaced on 2010-04-21 as the previous version had a minor packaging error.
Comments, bug reports, etc. are very welcome. Please look for my email address in the included README file.