Boot with GRUB

Especially useful for multiboot, partitioned systems, GRUB offers flexibility and convenience for startup.
Demonstrating GRUB

To see how GRUB may be used to boot a multitude of different operating systems, consider this example setup:

First Hard Disk (SCSI, Linux /dev/sda): 1st primary partition: Win982nd primary partition: Linux-Slackware3rd primary partition: Linux-Debian4th primary partition: Linux SwapSecond Hard Disk (SCSI, Linux /dev/sdb)1st primary partition: FreeBSD2nd primary partition: OpenBSD3rd primary partition: BeOS

Note that although GRUB and Linux are capable of dealing with installations in extended partitions, here we show a preference for using primary partitions whenever possible. Filesystems in primary partitions are often mountable by other operating systems, whereas cross-OS mounting filesystems in extended partitions is often not supported.

This system has two hard disks with six different operating systems using seven partitions. As you probably know, each OS has its own nomenclature for naming devices and partitions. For example, the Slackware installation would be known to Linux as /dev/sda2 (with swap on /dev/sda4), while FreeBSD would recognize its filesystem on /dev/da1s1a. Alternatively, if the system were configured with IDE hard disks, Slackware would be on /dev/hda2, and FreeBSD would refer to its root directory on /dev/ad1s1a. You get large helpings of this alphabet soup whenever maintaining any multiboot setup.

Since GRUB also needs to be capable of loading any of these systems, it has its own OS-neutral naming conventions for referring to devices. Hard disks are all hd, floppy disks are fd, device numbering starts from zero, partition numbering starts from zero and complete device names are enclosed in parentheses.

With these naming rules, the floppy disk is (fd0), the Win98 partition is (hd0,0), and GRUB recognizes the Slackware and Debian partitions respectively as (hd0,1) for slackware and (hd0,2) for debian.

The BSDs further subdivide their own partitions (or “slices” in BSD terms), and GRUB would refer to the root mount for the FreeBSD system on (hd1,0,a).

Okay, ready to give GRUB a taste? Slide the GRUB floppy in the drive and reboot your system (with your system's BIOS configured to boot from A: drive). You should see GRUB's terse boot messages and then find yourself in the GRUB command-line environment as shown in Figure 1.

To start, let's boot Slackware. Enter the following commands at the grub prompt:

grub> root (hd0,1)
grub> kernel /vmlinuz root=/dev/sda2 ro vga=791
grub> boot

Badda-bing, badda-boom, that postage-stamp-sized Tux appears in the upper-left corner of your screen (yes, Slackware is configured to use the framebuffer device), and Linux bootstraps its jolly way into glorious being.

Another example. Reboot the system again with the GRUB floppy, and enter the following commands at the grub prompt:

grub> rootnoverify (hd0,0)
grub> makeactive
grub> chainloader +1
grub> boot

Now your screen turns into a vague blue cloud, and you think you have made some horrible mistake. Then you realize it's only Windows and you remind yourself to expunge this partition one day soon.

Let's take a closer look at these examples. In the Slackware boot, we first used the GRUB root command to specify the device for GRUB to access. If the device has a filesystem recognized by GRUB (that is, one of ext2fs, reiser, ffs, etc.), it attempts to mount it and get its partition information, then reports its success following the command. Thus, you would see the following command/response dialog on your screen:

grub> root (hd0,1)
Filesystem type is ext2fs, partition type 0x83

Next, we used the GRUB kernel command to specify the boot image for GRUB to load. The argument to the kernel command is the filename of the boot image relative to the device specified by the root command above. The kernel image file can also be specified in explicit (device)/filename terms as follows:

grub> kernel (hd0,1)/vmlinuz
The kernel command gives you great flexibility for specifying the boot image you wish to load. For example, if we saved a previous version of a kernel to the file /vmlinuz.old, we could specify it with this command (which shows GRUB's response):
grub> kernel /vmlinuz.old root=/dev/sda2 ro vga=ask
[Linux-bzImage, setup=0xe00, size=0xfad30]
The arguments following the name of the boot image are passed to the target kernel and aren't related to GRUB. For Linux, these kernel arguments are pretty much what you would specify them to be in lilo.conf. In our example, we tell the kernel what device to mount for the root partition (root=/dev/sda2 ro), using the device nomenclature expected by Linux. Note here that we also use the ro flag to mount the root filesystem read-only initially while it performs its filesystem check. The other kernel argument in our example simply demonstrates setting another kernel variable (vga=791) to use a particular vga mode for the framebuffer display.

Finally, the last command is grub> boot. The kernel image specified is now loaded and sent rolling down the royal road to bootdom.

The second example, using Win98, demonstrates the use of GRUB's chain-loading mechanism. This method of booting loads the target OS's own boot-chain-loader rather than a kernel image of the OS. In this instance, we specified:

grub> rootnoverify (hd0,0)
grub> chainloader +1

First, the rootnoverify command is for OS filesystems not specifically recognized by GRUB, so that GRUB will not try to mount the partition. Next, the chainloader command will use the first sector of the partition of device (hd0,0) and attempt to boot whatever it finds there. This is a common means of booting OSes that install their own boot loaders in the first sector of the partition where they are installed (this is sometimes called the partition boot sector or PBR).

Finally, the makeactive command sets the active flag in the partition table for the device specified by the root command, as some operating systems, like Win98, require.

The GRUB command line is easy and fun, and you should boot the different OSes on your system a few times to get the hang of it. While you are testing, be sure to keep any notes specific to getting your particular kernels successfully loaded. This information will be useful later when you configure the menu system of GRUB to perform these command-line steps automatically.

But before we leave the command line, here are a few more GRUB commands to look at.

The help command will display a list of the 40 or so commands available in GRUB. Typing the name a particular command after help will produce on-line help for that particular command. So grub> help kernel will tell you all about using the kernel command.

The cat command can be used to view the contents of a file. For example, grub> cat (hd0,2)/etc/fstab will show the contents of the /etc/fstab file in the Debian installation. This is a very handy way of pulling out system configuration information if your normal boot loader gets whacked. Note also as you are using the GRUB command line that, like bash, up and down arrows will scroll through command history, and a tab will complete the name of a GRUB command or filename.

Finally, you can call up a specific menu interface with the configfile command as in:

grub> configfile (fd0)/boot/grub/menu.lst

This will switch GRUB into its menu mode with an interface defined by the file, menu.lst. We haven't created that file yet, but—look out, segue coming!—that's exactly what we will do next.

______________________

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Booting from CD in GRUB

Josef's picture

Hello!

I'm a Linux newbee and installed Suse 9.1 on my machine together with Win2000 and XP. Grub is installed on the harddisc. So far no problem, everything is working fine. But I wanted to update Suse to version 9.3 from CD's. Even I changed the Bios-settings to boot from CD Grub doesn't boot from the CD. I would be really thankfull for a hint.

Greetings
Josef

how to boot to CD with GRUB installed

WorkingOnASaturday's picture

Problem:
my Windows was in a corruptted state and i have grub installed as the load mgr. it is frustrating as hell that i can't boot my box with a XP install CD because GRUB is always loaded and there is no way that i know to set the root to the CD-ROM. i was looking all over the net for solution on how to boot from XP install CD within GRUB, couldn't find anything.

Here's my solution:
0. put your XP install CD in to your CD-ROM and start your machine
1. go to your BIOS setup. F12 on a Dell box upon system start
2. navigate to boot sequence and press enter
3. disable your hard drive by moving the cursor to hard drive and hitting the space bar.
4. save your changes and exit BIOS setup
5. upon restart, you will see the option to "press any key to boot from CD" flashing by. make sure you press a key before the option goes away and before GRUB is loaded.
6. life is good again.
7. make sure you enable your hard drive in the boot sequence after you fixed whatever problem you are having.

it's a hack but it works. hope this helps.

hey, BTW, working on a Saturday sucks;)

Fargo

Same problem

Anonymous's picture

I also am not able to boot to cd with my xp cd to try to reinstall windows. I have tried that very thing to by disabling the HD and trying to boot to cd. Even with the HD disabled, it still skips the boot to cd even if I push any button and goes to the Grub screen, then it will also load both linux and windows depending on which I select. Is there another solution?

Thanks

same

allen's picture

I have the same problem how did you fix it.

I have same problem. Could y

Anonymous's picture

I have same problem.
Could you please explain how you solved the problem.
Thankyou

Problem solved.

Josef's picture

Problem solved.

Wont boot windows cd Grub

Anonymous's picture

How did you solve this problem??

Mark.

Booting with linux

santhosh's picture

I hav a prblm in booting with linux

first i installed a linux

after i installed windows

after then i lost my linux what should i do.

reply me asap.

Thankyou,

GRUB Query!

Vikas Burte's picture

Since you have installed Windows after Linux it has owerwritten
your MBR where the 1st stage of GRUB is installed. This is the
reason you are not able to get GRUB menu. Windows is not Multi-boot
compliant.

Solution:
Boot with Linux CD in the Rescue mode(linux rescue).
Change root to /mnt/sysimage (chroot /mnt/sysimage).
Install new GRUB(grub-install /dev/hda).
exit
exit

Bingo! You are done.

If you installed Windows afte

Anonymous's picture

If you installed Windows after _any_ non-Windows installation, then it overwrote that hard drive's MBR for its own purposes. If you have a Grub floppy (as outlined above) or a boot disk for your distribution's kernel (typically made during install or afterwards with the mkbootdisk command) then you should be able to boot to a command line and reinstall grub in the MBR.
If you are unable to get your hands on either of those, try popping in your linux installation's cds; often recent releases will contain recovery methods including ways to reinstall boot loaders (just be sure you don't format the hard disk, as this will lose your saved data).
If even that doesn't work you can always turn to something like the wonder that is the single-CD OS, Knoppix; it just may have a boot loader tucked away in there somewhere .

Re: Boot with GRUB

Anonymous's picture

Hi! Is there a way to install GRUB and create GRUB boot floppy under Windows environment? I had GRUB installed on my
laptop but when I reinstalled Windows XP I lost GRUB and found Win boot loader instead which offers me to boot two Win installations (one corrupted and one fresh). It seems that GRUB was overwritten by a standard Win MBR.
So, I can't boot Linux cause I didn't care to create Linux boot floppy.

Thanks/AlBa

If you can boot from a CD, (w

Anonymous's picture

If you can boot from a CD, (which you probably can), download a rescue iso image from the net of your linux distribution. (I know fedora core has one). Burn the CD image with your winxp. Restart and boot off the cd. The rescue disk should boot a lite linux with your linux partition mounted in /mnt/sysimage. you can chroot /mnt/sysimage to make it your root. you can then run grub-install /dev/hda2 (your linux partition). you can check what partitions is what with df. grub-install will tell you if it was a success. you may need to edit your grub.conf to make sure you have all the entries you need to boot all your operating systems. I suppose if you wanted to make a boot floppy you could: grub-install /dev/fd0.

Chris

Re: Boot with GRUB

Anonymous's picture

An excellent article. I found the commentary on the operation of the lines of code very helpful and the explicit steps on how to create the floppy so that it will boot were very clear. I wanted to run a linux system from a second hd, keeping it entirely separate from the first (which contains W98). I am quite satisfied to leave the floppy in A:. I haven't done it yet but have high hopes. The only difficulty that I forsee is dealing with the various distributions on cd which all want to write to MBR.

Re: Boot with GRUB

Anonymous's picture

IN ORDER TO REMOVE LINUX FROM MY COMPUTER I DELETE IT DIRECTLY FROM WINDOWS USING >COMPUTER MANAGEMENT> DISK MANAGEMENT> DELETE LOGICAL DRIVES.
AFTER THAT I FACE NO PROBLEM BUT AFTER SOMETINE WHEN I REBOOT MY COMP DUE TO POWER FAILURE , I FACE A PROBLEM ,IT IS NOT BOOTING AND GRUB PROMPT IS COMPING EACH TIME . NOW I WANT TO GO BACK TO MY WINDOWS BOOT. ANYBODY HAVING ANY SOLUTION PLZ MAIL ME AT

Need help

Anonymous's picture

Hi,

I am also having the same problem as you faced whic is described below. Were you able to find the solution? If so, would you please share it with me?

Thanks in advance,
RK

Re: Boot with GRUB
Submitted by Anonymous on Tue, 2004-09-07 23:00.

IN ORDER TO REMOVE LINUX FROM MY COMPUTER I DELETE IT DIRECTLY FROM WINDOWS USING >COMPUTER MANAGEMENT> DISK MANAGEMENT> DELETE LOGICAL DRIVES.
AFTER THAT I FACE NO PROBLEM BUT AFTER SOMETINE WHEN I REBOOT MY COMP DUE TO POWER FAILURE , I FACE A PROBLEM ,IT IS NOT BOOTING AND GRUB PROMPT IS COMPING EACH TIME . NOW I WANT TO GO BACK TO MY WINDOWS BOOT. ANYBODY HAVING ANY SOLUTION PLZ MAIL ME AT

hey guy, try with these.if i

sanjaya's picture

hey guy,
try with these.if it's ok informe me.
try with these commands
grub>rootnoverify

grub>chainloader+1

grub>boot

Same probl.

Anonymous's picture

Hi, I'm having the same problem, I just can't go pass the promp GRUB, I would like to know if u fixed it and how?.
Thanks you for your time,

Cristian

Re: Boot with GRUB

Anonymous's picture

Hi. Try fdisk /mbr from windows. It should rewrite MBR on you /dev/hda and erase grub

Good luck

Re: Boot with GRUB

Anonymous's picture

He's right, you know?!

lol :p

Re: Boot with GRUB

Anonymous's picture

in a command window, just type "fdisk /mbr" to wipe your master boot record and replace the traditional windoze boot loader.

cant boot stuck at grub prompt

Anonymous's picture

Hi,
How do i get to command window. when I start my computer i am prompted grub> and can't get pass to it. if you can help, i appreciate it. thanks
ronak

Re : Stuck at Grub Prompt ???

Aniruddha's picture

Just run these set of commands at the grub prompt to load the windows OS.

grub>rootnoverify(hd0,0)
grub>makeactive
grub>chainloader +1
grub>boot

Linux New User

Noxmar's picture

Hello,

I am a new linux user and I was working with my laptop and something happened and now when I reboot the computer I just can get into the GNU GRUB version 0.95.

I dont have any idea how I can reboot my laptop and go into the linux again.

Please I need help.

Thank you

Noxmar

Want to boot virtual drives

Anonymous's picture

I want to put my entire windows partition into a image file, like a virtual drive, and have GRUB boot it, so that I can store it like this

|-------drive layer----------------------------------|
|grub|-----linux stuff-------------------------------|
| |boot|root|etc|usr-------|var----------|opt,etc-|
| | |--windows img| |

well, what dya think?

cant boot stuck at grub prompt

kukreti's picture

If you have your windows XP setup CD, then boot using the CD, disable the hard drive if you have to (not really necessary). after a lot of hoo ha the windows setup will give u three options and ask you what you want to do.

select "R", for recovery and wait for the Recovery console.
The Recovery Console provides system repair and recovery functionality.
Type EXIT to quit the Recovery Console and restart the computer.

1: C:\WINDOWS

Which Windows Installation would you like to log onto
(To cancel, press ENTER)?

---------------------------------------------------------------------
Go ahead and hit the number 1 on your keyboard

In the command prompt that you get:
Type in: FIXMBR

It may try to scare you with some warnings. but if it says that the mbr is non standard etc etc, then go ahead and reply yes. this shud solve the problem...

problem

Anonymous's picture

hi when i press 1 a blue screen appears telling me registry_error problem

tried reinstalling xp doesnt let me as it rebrings me te error again what may i do

cant boot stuck at grub prompt

armanmx's picture

FIXMBR solve the problem, THANKS......

i cannot write more than 1 le

Anonymous's picture

i cannot write more than 1 letter/number

i cannot write more than 1 le

Anonymous's picture

Then I would choose the letter c which will give you the grub
command prompt. Then type:

rootnoverify (hd0,0)
makeactive
chainloader +1
boot

should boot your windows
then at the msdos prompt type:

fdisk /MBR
(I don't remember whether it's a forward
or backslash. I haven't used windows in
a few years.)

stuck at GRUB

Shivani's picture

Hi,

I have a problem. I was trying to install windows NT on my laptop replacing linux which it had before. A part of instalation was done and Installation process asked me to restart the computer but now i am seeing a word GRUB with a blinking cursor and can't boot and can't even type a single charater here. Can Anyone help me? What should i do?

Regards
-S

GRUB - blinking cursor and nothing to type

Anonymous's picture

Did you fix this problem? Because I got it right now and its really frustrating. Any help is appreciated.

When i restart computer, grub

GUY's picture

When i restart computer, grub> display,
how can i enter the linux

need to type configmenu cmd each time

anupam's picture

hi,

I let windows control the MBR and edit the boot.ini to show a menu to choose WinXP or FedoraCore2 at boot.

When I choose FedoraCore2 it gives me a grub> prompt always. I can correctly boot from there using the root(hd0,4), kernel, initrd commands.

Also instead of typing these commands I can also boot into FC2 by typing :

grub > configfile (hd0,4)/grub/menu.lst

and then choosing the 1st option. But I have to type this each time.

How can I automate so that it boots automatically without having to type the 'configfile' command.

I think that could be the

Anonymous's picture

I think that could be the problem with the MBR. What you could do is reinstall grub within FC2 (grub-install /dev/sda) to the MBR then it should fix the problem.

I think that could be the

Anonymous's picture

I think that could be the problem with the MBR. What you could do is reinstall grub to the MBR then it should fix the problem.

would be intrested in

Billy Joel's picture

would be intrested in exactly how you do this, but i have another question..

is it possible to install GRUB first in its own partition before installing anything else? ( eg windows or linux)
and then installing what ever os's you want..

so you have ..... GRUB
windows linux dos bsd

instead of... grub with windows
linux bsd dos

any ideas would be appreciated.

install dual boot linux and windows xp

hari's picture

i would like to know the steps to dual boot linux and windows xp..
i have a win xp in drive d: and would like to insatll linux in drive c: which i will be formatting now
please provide the steps to do insatl linux.. i have redhat linux 7.1 CD wiht me.... kindly send the steps to my email

how to change boot sequence in grub.conf in MS DOS mode

Anonymous's picture

DEAR ALL,

PLS GIVE ME SOME CLARIFICATION ON CHANGING BOOT SEQUNCE OF GRUB LOADER. I.E I LOADED 2 OPERATING SYSTEM. LINUX + XP EVERY TIME BOOTING THROUGH GRUB.
I WANT TO CHANGE THIS BOOT SEQUENCE FROM DOS MODE ITSELF.
WANT TO CHANGE WITHOUT BOOTING IN TO LINUX. WANT TO EDIT GRUB.CONF
IF U ARE HAVING ANY IDEA RELATED TO IT PLS POST IT.

I REALLY THANKS TO ALL.

WITH REGARDS,
RAMACHANDRAN.N

Webinar
One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Webinar
Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix