RebootInto

RebootInto is a set of Python scripts to allow you to easily reboot into your favorite operating system by clicking icons in your native operating system. No longer do you have to wait for your computer to reboot before selecting your new operating system, with RebootInto you can make the selection directly within your current OS. Perfect for dual-booting Windows and Linux.

Update 2007-06-30: Mac OS X lets you select your next boot OS within your current OS, much like RebootInto (System Preferences -> Startup Disk). For the record, I didn't know about this feature of OS X before I implemented RebootInto, but I mention this so that those familiar with OS X can get a better idea of what RebootInto is.

Update 2008-04-27: Another tool similar to RebootInto is NeoSmart Technologies iReboot. I haven't used it.

Screenshots

RebootInto icons screenshots: (click thumbnail for larger image)

Ubuntu Linux Edgy Eft Windows XP

Supported platforms

GRUB Legacy (the most common version of GRUB; not PUPA) is required.

Icons can be created inside:

Icon support should be relatively easy to add for other operating systems and GUIs (patches welcome), but in either case, the icons will be created for all OS's listed in GRUB's menu.lst.

Installation process

Preliminary setup

First, you need to install Python and if you do not have it already, GRUB Legacy. For Windows, ActivePython is recommended (the normal Python Windows distribution will probably work, but you'll have to install the Win32 libraries—win32com and win32api separately.)

Your boot partition must be writable in the operating systems in which you wish to have "reboot into X" icons available. I currently use ext2 for my /boot filesystem. FAT32 may also work but it has not been tested. For convenience, here is a non-exhaustive list of filesystem support in various OS's:

/boot Partition Filesystem Linux? Windows?
FAT Yes Yes
ext2 Yes Writable using ext2 IFS
ext3 Yes Writable using ext2 IFS
Reiserfs Yes 2 Read-only with rfstool, not usable with RebootInto
NTFS 3 ??? See below Yes

2 Tip: if necessary, use the Gnome Partition Editor LiveCD to shrink your / and create a compatible /boot.

3 Look into GRUB4DOS and WinGRUB and GRUB bug #9180, NTFS patch for Grub 0.94. I haven't tried either.

Configuring RebootInto

  1. Download and extract the RebootInto archive into /boot/grub. A directory single called mygsd should be created.
  2. If your GRUB boot drive (on Windows) is not L:, open grublib.py in a text editor and change the line drive = "L" to the correct letter.
  3. Run makelnks.py on each supported operating system. Shortcuts for each GRUB menu option should be created on your desktop in a folder named "Operating Systems". Additionally, one shortcut for each OS will be placed directly on the desktop (assuming Ubuntu's convention of naming menu options as "Ubuntu, kernel 2.6.17.13-ubuntu1", "Ubuntu, kernel 2.6.17-10-generic", etc., both options will be available in the folder, but only a single "Ubuntu" icon will be on the directly desktop to avoid clutter.) Feel free to delete or rename icons to suit your personal taste.
  4. Delete the icons and re-run makelnks.py whenever menu.lst changes.
  5. The last thing you'll need to do is make sure that your /boot/grub/menu.lst says default saved, instead of default followed by a number. This will make GRUB read the saved selection that RebootInto writes out. You can also decrease the timeout in menu.lst if you want.

    Now clicking an icon corresponding to an operating system will run reboot-into.py. This program sets the default OS (just like grub-set-default included with GRUB) and reboots. Try it out in each of your supported operating systems.

    Feedback

    Contact me at jeffconnelly [AT] users.sourceforge.net if you have any comments, questions, patches, etc. You can also use the forums on the project page for additional feedback. Hope you enjoy using RebootInto!