Making Dual-Booting More Livable
Matthew Newton

05/11/2004 10:48:35

Six years ago this month Linux became my primary operating system; it happened 
almost overnight. The startup company I had been working for imploded. I was at 
home, working on my resume, when my Windows PC crashed for the umpteenth time. 
I knew a bit of Unix (when I first started using the Internet, my only means of 
access was a Unix shell account) and was not at all intimidated by the idea of 
installing something Unix-y on my PC. I took the plunge and never looked back. 
My main box has been a dual-booter for six years now. When it powers up, the 
first screen following the BIOS message asks me to choose between Linux and 
Windows. If there is no response after thirty seconds, Linux is chosen by 
default, and a short while later, Linux has booted and is waiting for me. 

But the way the boot process works presents a problem when I want to play Myst 
IV: Revelation and go to bed four hours late. When it's Myst time, I tell Linux 
to reboot. I wait for it to shut down. The system restarts. I wait for the boot 
loader screen. I select Windows. Then I wait for Windows to boot. I have to do 
all this sitting and waiting because I have to be present at that key moment 
when I have to select Windows instead of Linux. But I'd really rather be 
fetching a tasty beverage from the fridge. 

What I need is one button on my Linux desktop that starts the 
reboot-with-Windows process and needs no further action from me until Windows 
is up and running. Sound useful? Let me show you the magic spell. 


Hacking Your Boot Loader
On most Linux boxes, the boot loader is a tiny bit of code called LILO (for 
LInux LOader). You can alter LILO's behavior for its next boot very simply, 
using its -R command-line option. For instance, on my Mandrake box, the 
following command tells the system to boot into Windows next time without any 
additional prompting: 

lilo -R windows 

That command must be issued when you're logged in as the root user. 

It's only a couple more steps to write a shell script that fires off that 
command and also causes the machine to reboot. First, open your text editor of 
choice. If you don't have a favorite editor, press Alt-F2 and enter gedit if 
you're a Gnome user, kedit if you're a KDE user. Now, create a text file called 
"bootwin" and put these lines in it:




#!/bin/sh 
/sbin/lilo -R windows 
/usr/bin/reboot 

Now, back on the command line, make bootwin executable with the following 
command:



chmod u+x bootwin 

If you're logged in as root, issuing ./bootwin will run the script. The problem 
is, only the root user can tell the boot loader to do something different on 
the next boot, so when you are logged in with your normal user account, the 
bootwin script will conk out. (On my Mandrake box, the LILO command fails but 
the reboot command succeeds, so the machine reboots into Linux. Nuts.) 

The solution is to somehow make your script run as a root user. There are many 
ways to do this. Here's one:


su -c ./bootwin 

You'll be prompted for the root password, and then the script will execute as 
if the root user (or the "superuser"--hence "su") launched it. Even better, if 
you have the sudo command installed and configured on your box, you can simply 
issue:


sudo bootwin


With the proper sudo setup, you won't even be prompted for a password. Bootwin 
will simply run with root privileges, despite the fact that an ordinary user 
launched it. 


Fine-Tuning Your Script
There are three potential problems with the bootwin script at this stage. 
First, our LILO command assumes that your Windows partition is named "windows" 
in LILO's configuration. That might not be the case. To find out what LILO 
calls your Windows partition, enter this command as root to reveal LILO's 
configuration file: 


cat /etc/lilo.conf
You're looking for two lines that look something like this: 

other=/dev/hda1
label=dos 

In this case, LILO thinks my Windows partition is called "dos," so I need to 
replace "windows" with "dos" in my bootwin script. Easy enough. 

A second potential problem is that in your particular flavor of Linux the LILO 
and reboot commands may live elsewhere than at the paths in the script. As 
root, you can use which lilo and which reboot to find out the full path to 
these commands. If you find, for instance, that on your system reboot lives 
under /sbin instead of /usr/bin, then alter the final line of bootwin to point 
at /sbin/reboot instead of /usr/bin/reboot. 


When Things Get Grubby
Now then, there's one more potential problem, and it's a doozy. It could be 
that your Linux box isn't booting with LILO. There's another popular boot 
loader called GRUB (for GRand Unified Bootloader). It lurks, for example, on my 
box that runs Fedora Core. I've long been convinced that it was impossible to 
craft a bootwin script on a machine with GRUB, because GRUB has no equivalent 
to the LILO command-line option for automating the next boot choice. 

But when Myst IV arrived (is my obsession clear yet?), I decided to give it a 
shot again. To make a long story short, there was nothing out there on the Web 
(at least, nothing that Google turned up) about how to make this magic happen. 
So I'm going to change that right now. Here's a version of bootwin that works 
on my Fedora Core system, where GRUB is the boot loader: 



#!/bin/sh 
/sbin/grub --device-map=/boot/grub/device.map --batch <<FOO 
savedefault --default=3 --once 
quit 
FOO 
/usr/bin/reboot
Similar caveats apply here as before: The GRUB and reboot commands may live in 
different directories on your machine. The script needs to run as root. And 
you'll need to check to see where your Windows partition is referenced in the 
file /etc/grub.conf. Issuing the following command as root will yield the 
contents of that file: 



cat /etc/grub.conf
You're looking for an entry that looks like this: 


title Windows 2000 SP4 
rootnoverify (hd0,0) 
chainloader +1 

In my grub.conf, this was the fourth entry. GRUB counts entries starting with 
zero, so the first entry is 0, the second entry is 1, and this, my fourth 
entry, is 3. That's why there's a 3 on the "savedefault" line in my bootwin 
script. You'll need to change that digit to match the number for your own 
Windows partition entry. 

If you've stuck with me this long, then you've got a script that will reboot 
your system into Windows. Now, how to make the script easy to access? Why not 
add a button to your system panel? In Gnome 2.6, right-click the panel and 
select Add to Panel, Launcher. In KDE 3.2, right-click the panel and select 
Add, Special Button, Non-KDE Application. Gnome users, look to the "Command" 
field; KDE users, find the "Execute" field. Enter the following command there, 
replacing "/path/to" with the full path of the directory where you've put your 
bootwin script: 



su -c /path/to/bootwin 

In both Gnome and KDE, select an icon for your button and be sure to select the 
"Run in terminal" check box before closing the dialog box. Voila!
If a button doesn't interest you, you can instead move the script to a 
directory in your command path (/usr/local/bin is one good possibility) so that 
you can press Alt-F2 (in either Gnome or KDE), type bootwin, and be off to the 
races. (Or, in my case, to the Myst IV realms of Tomahna, Serenia, Spire, and 
Haven.)

About to Switch to Ubuntu?
The Community release of Mandrake 10.1 has been out for about a month. Mandrake 
Community releases are roughly akin to an open beta: The idea is that by 
spreading the Community release far and wide, Mandrake can supplement its own 
QA efforts and shake out any obscure (or not-so-obscure) bugs turned up by a 
wide user base before a new version gets pressed to CD.
I hope that there's a good deal of difference between the Community release of 
Mandrake 10.1 and the forthcoming Official release: The Community release has 
given my trusty IBM Thinkpad (which ran 10.0 without issues) nothing but 
trouble. It's been so frustrating, I'm considering replacing it with a brand 
new flavor of Linux.
Ubuntu Linux is a new distribution out of Britain. It's based on Debian, 
pledges to always offer a cost-free version (as does Mandrake), and is the 
first distribution to sport the Gnome 2.8 desktop environment. Yes, folks, this 
may in fact be the user-friendly, Gnome-based distribution I've been hunting 
for so long. I've got a prerelease version of Ubuntu running on a test machine 
here at PC World HQ, and it's awfully slick.
The only thing that gives me pause is Ubuntu's inability to play or encode MP3 
files. Fedora Core has the same problem, as I've mentioned before, and I hate 
having to muck around under the hood just to enable support for such a popular 
file format. I've been using Fedora since last spring, and I still can't get 
MP3 previewing to work in Nautilus, the Gnome file manager. (In Nautilus, when 
you hover your cursor over an MP3 file, it's supposed to start playing and 
continue until you move the cursor again.) That's nonsense, and I don't want to 
be stuck in the same boat with Ubuntu. So once again, I'm looking for 
solutions. Stay tuned.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
/pipermail/mailinglist_ilug-cochin.org/attachments/20041105/d582510a/attachment.htm
From [EMAIL PROTECTED]  Fri Nov  5 09:31:13 2004
From: [EMAIL PROTECTED] (hashir n a)
Date: Fri Nov  5 09:31:54 2004
Subject: [Mailinglist] Multiboot CD How ?
Message-ID: <[EMAIL PROTECTED]>

Hello evry1
Hope all are doing great . 
I was just wondering if it was possible to make a multiboot cd tht cld boot 
more than one distros.
is possible to boot into dos,linux 1,linux 2 stored in a single CD? How cld i 
make such a CD?

Please Help.

Thank You

lv
hashir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
/pipermail/mailinglist_ilug-cochin.org/attachments/20041105/98b4824e/attachment.htm
From [EMAIL PROTECTED]  Fri Nov  5 11:28:52 2004
From: [EMAIL PROTECTED] (hashir n a)
Date: Fri Nov  5 11:28:11 2004
Subject: [Mailinglist] multibooting cd - grub or lilo
Message-ID: <[EMAIL PROTECTED]>

Helllo 

I am looking for a way to install grub /lilo onto a cd ,
so that i can create a multiboot cd;
Has anybody done this before,
so as to help me do it once more;
How do i configure the grub.conf to boot the images on the cdrom itself,
for it wld b a  nuisance if i left it to itself;
is it a  conundrum or is there a solution,
please help this newbie find a solution.
Please help Please help Please help

Thank You

lv
hashir 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
/pipermail/mailinglist_ilug-cochin.org/attachments/20041105/903fcb24/attachment-0001.htm
From [EMAIL PROTECTED]  Fri Nov  5 11:55:08 2004
From: [EMAIL PROTECTED] (Bijoy)
Date: Fri Nov  5 11:57:07 2004
Subject: [Mailinglist] multibooting cd - grub or lilo
In-Reply-To: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>

Dear Mr. Hashir, 

            Normally hard disks only have the MBR, and grub or lilo writes
to there.

Regards

Bijoy V

  _____  

From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of hashir n a
Sent: Friday, November 05, 2004 11:29 AM
To: [email protected]
Subject: [Mailinglist] multibooting cd - grub or lilo

 

Helllo 

 

I am looking for a way to install grub /lilo onto a cd ,

so that i can create a multiboot cd;

Has anybody done this before,

so as to help me do it once more;

How do i configure the grub.conf to boot the images on the cdrom itself,

for it wld b a  nuisance if i left it to itself;

is it a  conundrum or is there a solution,

please help this newbie find a solution.


Please help Please help Please help


 

Thank You

 

lv

hashir 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
/pipermail/mailinglist_ilug-cochin.org/attachments/20041105/00c86328/attachment.htm
From [EMAIL PROTECTED]  Fri Nov  5 12:51:21 2004
From: [EMAIL PROTECTED] (Rajesh)
Date: Fri Nov  5 12:51:26 2004
Subject: [Mailinglist] You(we) can Multiboot-from CD 
Message-ID: <[EMAIL PROTECTED]>

Dear linuxens
we can create multiboot cd by writing a permanent grub
to cd's MBR( CD have MBR's).We have edit grub
correctly bz we can't change that again.
I will give you complete details after creating this 

OK thank you 


Regards

One Linuxen

________________________________________________________________________
Yahoo! India Matrimony: Find your life partner online
Go to: http://yahoo.shaadi.com/india-matrimony

Reply via email to