Boot with GRUB

May 1st, 2001 by Wayne Marshall in

Especially useful for multiboot, partitioned systems, GRUB offers flexibility and convenience for startup.
Your rating: None Average: 4.4 (136 votes)

GRUB: it's neither larva, fast food nor the loveliest of acronyms in the GNU herd of free software. Rather, GRUB is the GNU GRand Unified Bootloader. And, it is truly the greatest loader for booting Linux and practically any other OS—open source or otherwise—you may have scattered on your platters.

GRUB is independent of any particular operating system and may be thought of as a tiny, function-specific OS. The purpose of the GRUB kernel is to recognize filesystems and load boot images, and it provides both menu-driven and command-line interfaces to perform these functions. The command-line interface in particular is quite flexible and powerful, with command history and completion features familiar to users of the bash shell.

GRUB is in its element with the multiboot, multidisk systems typical of Linux and open-source adventurers who may simultaneously test or track several Linux distributions, the BSDs, GNU/Hurd, BeOS and perhaps that vestigial partition for Mr. Bill. Even if you stick with LILO as your system's primary boot loader, it's smart to keep a GRUB boot floppy handy as the best and fastest way to get your system back if you otherwise cream your master boot record (MBR). If you have done any number of multiboot installations, you know exactly what I'm talking about. Should you need any more reasons for considering GRUB, check out the sidebar, “Why GRUB”. Let's get started!

Installation

Installation of GRUB is a two-step process. The first step is to install or build GRUB in a host OS environment, and for this we will, of course, use Linux. The second step is to install and configure GRUB as the boot loader for your system.

The first step is the usual: download the source archive, untar it, configure and make install. Assuming you have found a source mirror (see www.gnu.org/software/grub/grub.html) and downloaded the source distribution into a suitable working directory, continue with:

tar -xzvf grub-0.5.96.1.tar.gz
cd grub-0.5.96.1
./configure
make
make install

This should create the executables: grub, grub-install and mbchk; install support files in /usr/local/share/grub/i386-pc/, and install the GNU information manual and man pages.

For the second step of installation, we will first build and work with a GRUB boot floppy. This way we can use GRUB to learn about its features while testing various configurations for our particular system. After getting comfortable with the GRUB setup on floppy, we will then install it onto the MBR of the system's first hard disk. Even if you decide not to install GRUB on your hard disk right away, no harm done: you will now have your own GRUB boot floppy available to rescue systems with trashed boot loaders.

Preparing a GRUB floppy

GRUB recognizes a number of different filesytem types, including Linux ext2fs, Reiser, MINIX, BSD's ffs, as well as FAT, so it is possible to make a GRUB boot floppy with any of these filesystems. We will stick to FAT for this example, however, because it is the lowest common denominator, and most OSes have tools for mounting and reading/writing files on FAT floppies. That way, we will always be able to get to its menu configuration file if we need to.

Scrounge around in your junk drawer for some unused floppy (a new one would be even better), and give it a fresh format and FAT filesystem:

fdformat /dev/fd0
mkfs -t msdos /dev/fd0

We are going to put some files on this disk, so go ahead and mount to your usual floppy mount point (here I use /floppy):

mount -t msdos /dev/fd0 /floppy
Now install the directories and files GRUB will need:
mkdir -p /floppy/boot/grub
cp /usr/local/share/grub/i386-pc/stage* /floppy/boot/grub
The floppy can then be unmounted, umount /floppy, but leave it in the drive. The GRUB floppy is prepared and ready for the final installation, which is to install the GRUB boot loader in the MBR of the floppy itself. For that, we will use the grub executable we have built with our Linux installation. Start the executable at the Linux command prompt: grub.

This brings up an emulator of GRUB's command shell environment, which looks like Figure 1. We will discuss the features of this shell in more detail a little further on. For now, enter the following series of commands at the grub prompt:

grub> root (fd0)
grub> setup (fd0)
grub> quit

Figure 1. GRUB in command-line mode. Note the on-line help (here the GRUB emulator is running under Linux in an xterm window).

And that's it! This sequence of commands completes the installation of GRUB on the floppy disk. It is now bootable and will allow us to boot any other OS on our system.

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.

Menu Configuration

Using the GRUB command line is cool, but after a few thousand system starts, you will probably get a little tired of entering the same commands at the GRUB prompt and long for something a little more automated. Good news from the GRUB gang: you get a fully configurable menu interface at no extra charge! The GRUB boot menu gives you point-and-shoot boot selection, unattended default boot after a configurable timeout, any number of fallback boots if previous boots fail, toggle between command-line and menu modes, and interactive editing of menu selections and password protection. These features give GRUB an ease of use to match its tremendous functionality.

When GRUB boots, it automatically looks for the /boot/grub/menu.lst file on its boot device (the last three letters are “ELL ess tee” and not “one ess tee”). If the file is found, GRUB automatically enters its menu mode and presents the user with a stunning interface, as shown in Figure 2.

Figure 2. GRUB's Boot Menu Interface

Listing 1 [found at LJ's web site] shows the configuration file responsible for this demonstration menu. As you can see, it is a simple text file typical of many UNIX configuration files, where lines starting with hashes (#) and blank lines are ignored.

The first set of commands sets general configuration variables. The timeout command sets the time in seconds to wait for the user to make a selection before proceeding automatically to the default boot. The default command sets which of the following boot stanzas GRUB should attempt to boot automatically. Boot stanzas are numbered implicitly, starting from zero, according to their order of appearance in the configuration file. This order is also how they will be listed in the menu.

The fallback command specifies which of the boot stanzas to load if the default should fail. It is possible to set more than one fallback, as is shown in the example.

The color command lets you breathe a bit of life into the text-mode menu screen. The syntax for the color command is

color  foreground/background  [ hilite-fg/hilite-bg ]

where each of the foreground/background colors is specified with a name from the set of black, blue, green, cyan, red, magenta, brown and light-gray; dark-gray, light-blue, light-green, light-cyan, light-cyan, light-red, light-magenta, yellow and white. Among these colors, only the first eight are used for the background. The optional highlight color pair, if specified, will be used to show the current menu selection. When not specified, GRUB will use the inverse of the normal colors.

The rest of the configuration file consists of the boot stanzas for our demonstration system. The title command marks the beginning of a new boot stanza, and its argument is the label that will be displayed for its entry in the menu, from the first non-white-space character to the end of the line. The remaining commands in each stanza are identical to those used when working from the GRUB command line. The exception here is that we no longer need to give a boot command; GRUB does this job without asking.

This example configuration gives only a sample of the many flexible uses of the GRUB boot loader. Besides multiple OSes, you can use GRUB to set up menu selections for test kernels, rescue kernels, different kernel options and so on.

All in all, the GRUB configuration file will be very similar to your /etc/lilo.conf. And after working with the GRUB command line and these examples, it should be a simple matter of firing up your favorite text editor and creating a menu configuration file suitable for your own system and preferences. Don't worry if it's not perfect the first time; you will see that you can make changes interactively, and the GRUB command line is always available as a fallback.

Once you've got your configuration file, mount your GRUB floppy again, and copy the file (say it has been saved as mygrub.conf) into the magic location:

cp  mygrub.conf /floppy/boot/grub/menu.lst

Now when you boot with your GRUB floppy—presto!—you will be greeted with a lovely boot menu like the one in Figure 2. If you like, just stare at it for the few seconds it needs to count down from the timeout setting, and then it will automatically boot into your default OS. Or, use the arrow keys to highlight the OS you want to load and press return. Or, type c to go to the now-familiar GRUB command prompt. From the command prompt, press ESC to go back to the boot menu again.

It is also possible to edit the entries displayed in the menu. Typing e will open a simple vi-like editor interface for the highlighted entry. This allows you to adjust or add any settings to the configuration before booting. Any changes made here will then remain in effect for the duration of the GRUB session. To make permanent changes, you will later need to edit the configuration file on the boot disk, saving the changes with your text editor.

Play with your GRUB floppy configuration until you have it set up the way you like. After just a few system boots, you'll be slinging through GRUB like hashbrowns in a diner.

Hard Disk Installation

By this time you may be thinking, “Okay, GRUB has got it goin' on. But do I have to keep booting from this lame floppy all the time?” Of course not. Booting from floppy is for weenies.

The operation for installing GRUB on the master boot record of your hard disk is similar to the creation of a GRUB floppy. The one difference is that our floppy has all the resources GRUB needs in one place. That is, the boot image, support and configuration files are all on the floppy device MBR and /boot/grub/ directory. In a hard disk setup, you can choose where you want these resources to be.

For example, you could set up a /boot/grub directory on the first partition of your first hard disk and copy all GRUB's files into it as we did in our floppy setup. In our demonstration system, this would be the Win98 partition, and you may choose to do it that way if you want. But you can also set up the /boot/grub directory up in any device/partition on your machine with a filesystem supported by GRUB. In practice it is usually best to install this support directory in your most frequently used and/or most stable partition; that is, one that you aren't reinstalling all the time.

For this example, we will use the Slackware partition since this stays pretty stable, and I tend to do more tracking and installations in the Debian system. Once this decision is made, everything else is simple. First, boot into Slackware, create the /boot/grub directory and copy GRUB's files into it (these are all the files that the GRUB build installed in the /usr/local/share/grub/i386-pc directory). Make sure to put your handcrafted menu.lst configuration file in here, too.

Next, start GRUB, either with the grub executable you built in Linux or by rebooting with the GRUB floppy. If GRUB starts in menu mode, press c to go to command-line mode. Enter the following commands at the grub prompt:

grub> root (hd0,1)
grub> setup (hd0)
grub> quit

You're done. Your system is now fully GRUB'd, installed in the MBR of your hard disk. Type reboot as root (or take the floppy out and jab the keyboard with the old three-prong) and watch just how fast GRUB comes up now!

A few words of explanation about these installation commands. The first, root (hd0,1), tells GRUB to mount this device, in this case the partition with the Slackware installation. All files will now be relative to this device, so the GRUB installer will know to look for its support files in the /boot/grub directory we created in the Slackware partition.

The second command, setup (hd0), is a simplified front end to GRUB's install command. Note in particular that we specify the device as (hd0) and not (hd0,0). Device (hd0) results in GRUB's installation to the master boot record, which is what we want. If we had instead used (hd0,0), GRUB would be installed to the boot sector of the first partition, rather than the MBR. The difference is crucial; your technical writer makes mistakes like this so you don't have to. While each partition can have a boot sector, your hard disk will have only one master boot record the BIOS loads every time you start your machine. Unless you are doing some kind of funky boot-chaining, like using LILO to boot GRUB, you will usually want to install GRUB in the master boot record.

When GRUB installs itself on a device, it first copies a small piece of itself to the MBR, which it calls stage1. Then it follows stage1 with just enough information about where to find the rest of GRUB. In our example, GRUB will put stage1 in the MBR, followed by a blocklist that points to the Slackware partition. GRUB will then find the rest of what it needs (its stage2 files) in the /boot/grub directory.

To check this setup, just edit the menu configuration file in Slackware's /boot/grub/menu.lst at any time. Any changes will be reflected in the next boot.

Error Recovery

If you should foul up the hard disk installation somehow or want to uninstall GRUB from your system, here's what you need to know.

First, if you ever want to clean your MBR from whatever is installed there, the canonical method is to use the fdisk program from an MS-DOS boot floppy:

A:> FDISK /MBR

Of course, this isn't necessary if you just want to go back to LILO as your system's boot manager. In that case, simply make sure your /etc/lilo.conf file has a line that reads boot=/dev/hda. Then, when the rest of the lilo.conf file is the way you want, just rerun LILO. This will put LILO back on the MBR of your system.

If you install GRUB in the boot sector of a partition, instead of the MBR (such as specifying setup (hd0,0) instead of setup (hd0)), you may need to reinstall that OS's boot loader. In the case of DOS/Windows, this means running the sys command from your DOS/Windows boot floppy: A:> SYS C:.

If, this is a Linux partition, it is again effective to rerun LILO, where /etc/lilo.conf has a line in the boot stanza that reads root=/dev/hda1.

In general, most OSes will have a way to reinstall their partition's boot sector without doing a full reinstallation from scratch. (For FreeBSD, see boot0cfg(8); for OpenBSD, see installboot(8).)

In practice, especially if you followed through on the GRUB floppy examples, you should find that GRUB itself is one of the best rescue and system recovery tools in your toolkit. For example, if you have ever made a screwup in your lilo.conf file, you know you can be in for some major pain if your system won't boot. With GRUB, you always have a miniature, self-contained operating system that can recognize and mount different filesystems, find files, locate kernels and boot them, bringing your system back to life so you can work on it. At times like these, GRUB can save your bacon.

Conclusions

As is typical of GNU software, GRUB is rich with capabilities beyond what are described here. Some of these include:

  • Remapping disks and partition hiding, so you can even run multiple versions of DOS/Windows, on other than the first hard disk.

  • Network booting with BOOTP and DHCP protocols, to support multiboot schemes across a network and diskless operation.

  • Keyboard remapping, disk geometry access, memory reading, I/O port and processor probes, password protection, decompression support, etc.

See the GNU information manual for more information on these topics. GRUB is under active development, and even more features are planned for future releases.

In this brave GNU world, with vast acreage of cheap hard disk and a glut of great free OSes available, you really need a flexible and user-friendly boot loader to manage them all. Grab GRUB and give it a go.

Why GRUB?

Wayne Marshall (guinix@yahoo.com) is a UNIX programmer and technical consultant currently living in Guinea, West Africa. When not grubbing about with computers, he enjoys taking the pirogue for day trips to the local islands near Conakry with his wife, Paula.

__________________________


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Comment viewing options

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

Linux Grub! NEED HELP!

On September 15th, 2009 Anonymous (not verified) says:

I NEED HELP!!! I have Linux grub installed and I can't get past the boot up screen! It checks the system and at the end it has this: #_(blinking). What do I do!? Someone help!

MarcoG's picture

unable to boot Vista after installing linux

On September 5th, 2009 MarcoG (not verified) says:

Hello,

I just installed the new version of Fedora on my laptop, on which originally there was only one partion with Vista before. I resized the Vista partition and installed Linux.
Linux works fine, but when I try to boot Vista, it opens the sistem recovery options menu, without being able to do anything. After the end of each option it boots again, giving the two options between linux and "other" and if I choose "other" it goes back to the recovery menu. Do you have any suggestions? I back-up everything I had on the Vista partition, but don't have with me the Vista installation cd at the moment.

Thank you

Marco

mozebyciu's picture

Hmm

On August 18th, 2009 mozebyciu (not verified) says:

I have changed disks from basic to dynamic in my vista
then after rebooting got grub command line (i have managed to get it boot vista) but..i can only access disc C: all other partitions (or volumes after change to dynamic) are gone and i am not sure how to get them back. anyone can help?

Wasiuizzaman's picture

GRUB error

On August 12th, 2009 Wasiuizzaman (not verified) says:

Hi all

I have Lenovo laptop. It has two OS, 1 is Window XP and other is Fedora. By default run Windows XP. These combinations are performing well. But today I have seen a problem. When my laptop is turning on it show GRUB> in black background screen. I didn’t do anything except my laptop turn off using power switch. Is there any solution that I skip it and access XP or Fedora OS. Please help me as soon as possible.

Thanks Russell

Mitch Frazier's picture

Not Good

On August 12th, 2009 Mitch Frazier says:

This is probably not good. First, you shouldn't shutdown your computer by turning off the power switch, you should tell the O/S (XP or Fedora) to shutdown the system and let the O/S turn off the power when it's through with its shutdown procedure. If for some reason the shutdown hangs, then, and only then, use the power switch.

That said, it sounds like your grub installation got damaged somehow, which probably means your Fedora installation is damaged but that your Windows installation is ok. First, try to boot Windows. At the grub prompt do:

grub> root (hd0, PRESS-THE-TAB-KEY

This should show you the partitions that you have, something like:

 Partition num: 0, Filesystem type is XXXX, partition type YYYY
 Partition num: 1, Filesystem type is XXXX, partition type YYYY
 ...

You should see one whose type is ntfs, that's the Windows partition. Use it's partition number and do:

grub> rootnoverify (hd0,YOUR-WINDOWS-PARTITION-NUMBER)
grub> makeactive
grub> chainloader +1
grub> boot

That will hopefully boot you into Windows.

Fedora may be a bit trickier since it probably has a damaged file system. In the above list of partitions, find the first partition that's not ntfs and assume that's your Linux partition, then do:

grub> root (hd0,YOUR-LINUX-PARTITION-NUMBER)
grub> setup (hd0)

If that by chance succeeds, reboot the system and see if you get the normal grub screen, if you do, try booting Fedora. If it doesn't succeed or if it does but it won't boot, and it probably won't, then you're going to have to boot from a Rescue CD or Live CD and attempt to repair your Linux install. The exact steps are going to depend on your exact configuration, but you want to try to run fsck on your Linux partitions and possibly re-install damaged files from your backup (you do have a backup, right?).

__________________________

Mitch Frazier is an Associate Editor for Linux Journal and the Web Editor for linuxjournal.com.

Blackaddar's picture

Grub Permission

On September 1st, 2009 Blackaddar (not verified) says:

I installed a dual-boot system on my Dell with Ubuntu Linux and Windows XP. Linux is installed on a second external Hard drive.

I can get into the menu.lst file in the linux test editor, but an
unable to change the file, due to lack of permission.

This is mystifing, since I am the only user and the Administor of the Laptop.

How can I get permission to edit this file?

Any help appreciated.

sincerely,
Michael B. Harris
Linux user #1063

Anonymous's picture

try sudo

On September 16th, 2009 Anonymous (not verified) says:

try at the term:
sudo gedit
or
sudo nano

Mitch Frazier's picture

Edit File

On September 1st, 2009 Mitch Frazier says:

I assume that when you say Administrator you mean root. You have to be logged in or running the editor as root. If that is the case and you can't save the file then make sure that the file is writable. Go to the directory where the file is and run "chmod +w menu.lst" from a command/shell prompt. If you still can't save the file then it could be that the partition is mounted read-only, but that seems unlikely.

I suppose another possibility might be that you have some more sophisticated Linux security system installed, that doesn't make root quite as super of a super-user, but that also seems unlikely.

__________________________

Mitch Frazier is an Associate Editor for Linux Journal and the Web Editor for linuxjournal.com.

Anonymous's picture

HELPPPP

On July 16th, 2009 Anonymous (not verified) says:

hey all..can you help me REMOVE grub loader from my system without removing Linux..i want windows to be the default loader or whatever..

AS prefabrik's picture

prefabrik

On June 12th, 2009 AS prefabrik (not verified) says:

Great article thanks. Written in 2001 and yet here we are still referring to it. If the author is reading this I would be curious to know how Linux is used in West Africa.

tlamelo, sounds like a GRUB config error - my advice is to burn a copy of "System rescue CD", http://www.sysresccd.org/Main_Page

It works as a Linux live cd, This has grub on it and will let you fix your GRUB install. Note the "chainloader +1" and "make active" bit in the artcile example for Win98 applies to XP and Vista too.

Raj's picture

Booting issue

On June 11th, 2009 Raj (not verified) says:

Hai every one...
When i startup my linux server it shows that /raj(mount point direcotry) is checking filesystem error..it automatically enter into mainitaince mode(repair-system) prompt..I solved this problem using command fsck /dev/sdb5 after i tried to reboot the system it was not able to bootup my linux server.It's showing into Grub> prompt...can any one give solution for this

böcek ilaçlama's picture

böcek ilaçlama

On June 10th, 2009 böcek ilaçlama (not verified) says:

You have just saved my beloved Tux. I am no good on managing boot loader, and often end with screwed up hard disk. :)

Imran Chaudhry's picture

Great Article and reply to tlamelo

On June 3rd, 2009 Imran Chaudhry (not verified) says:

Great article thanks. Written in 2001 and yet here we are still referring to it. If the author is reading this I would be curious to know how Linux is used in West Africa.

tlamelo, sounds like a GRUB config error - my advice is to burn a copy of "System rescue CD", http://www.sysresccd.org/Main_Page

It works as a Linux live cd, This has grub on it and will let you fix your GRUB install. Note the "chainloader +1" and "make active" bit in the artcile example for Win98 applies to XP and Vista too.

tlamelo's picture

booting windows with grub result to this

On May 10th, 2009 tlamelo (not verified) says:

when i follow all your steps in using grub in windows vista i get "Booting 'Windows vista'

acpi
vista loader 2.0.0

guys what shall i do, i have used windows vista for some time but the problem is that it failed me on the way so i decided to install xp it failed because it cant find the harddrive,i tried linux also failed then how did i get grub because linux failed to install too.i reinstalled windows vista ultimate again it installed well and asked for the administrator i entered the password and computer name but when it tried to boot for the last time it gave me this "booting 'windows vista'
acpi
vista loader 2.0.0

done!
fallback 1
find --set-root /bootmgr

error 17: file not found
booting 'windows NT/2000/XP'

fallback 2
find -- set-root /ntldr

error 17: file not found
booting 'Enter Command Line'

boot failed! Press any key to enter command line."

when i press anykey it give me "GRUBDOS 0.4.2 (2007-03-02, memory:639k / 502m, code end: 0x4013c

[minimal BASH-LIKE LINE EDITING IS SUPPORTED. FOR THE FIRST WORD, tab lists possible command completions. anywhere else tab lists the posible completions of a device/filename. ESC at any time exits.]

grub>
"

when i press esc i get windows vista, windows NT/2000/XP AND ENTER COmmand line

this comes in a black screen with some options at the bottom such arrows to highlight, press ENTER to boot the selected OS, 'e' to edit the commands before booting, 'c' for a command -line.

with all this guys what can i do to remove linux and XP which i never succeded to install and remain with only my vista. for the time being nothing works.THANK YOU IN ADVANCE

sikis's picture

grub bios

On May 5th, 2009 sikis says:

If you're working with Linux distributions, especially the things you need to know grub. How important is bios in windows linux grub is important

__________________________

sikis's picture

Linux vs centos grub

On May 5th, 2009 sikis (not verified) says:

Thank document in good time grub error because CentOS gold lost my system many times, but the group recognized that this problem is very low...

Joli's picture

How to install the grub on xp(1st HD) and Ubuntu(2nd HD)

On February 18th, 2009 Joli (not verified) says:

Please help.
I have Xp installed on the master hard drive and the ubuntu on the 2nd hard dive. The 1st hard dive got infected by viruses and wiped ou everything and reintall XP without touching the 2nd hard drive (the slave HD). Now I have my XP runnig but i can't see the ubuntu anywhere, neither I see the second hard dive. I was told to install the grub but i don't know how to proceed . can somebody help/ please I am still abeginner in learning ubuntu I have no clue at all please be specific in your answers

Anonymous's picture

Hey can any one help me to

On December 6th, 2008 Anonymous (not verified) says:

Hey can any one help me to make bootable CD for my application in linux having kernel of 10MB and initrd.gz as 95Mb. my email-id is ramakrishnapulluru@yahoo.com

Thanks in advance

Anonymous's picture

From info grub : $

On December 19th, 2008 Anonymous (not verified) says:

From info grub :

$ mkdir iso

Make a directory for GRUB:

$ mkdir -p iso/boot/grub

Copy the file `stage2_eltorito':

$ cp /usr/lib/grub/i386-pc/stage2_eltorito iso/boot/grub

If desired, make the config file `menu.lst' under `iso/boot/grub'
(*note Configuration::), and copy any files and directories for the
disc to the directory `iso/'.

Finally, make a ISO9660 image file like this:

$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -o grub.iso iso

Anonymous's picture

GRUB

On October 15th, 2008 Anonymous (not verified) says:

My son has been messing around with the computer
When i´m starting it ,the message tells me at first that it´s installing grub and then there´s error 17.
I can´t use the computer ,what´s the solution?

Anonymous's picture

Grub Error 17 Or Something Recovery

On November 8th, 2008 Anonymous (not verified) says:

Yes I have the same problem, Minimal Bash-Like (Something Like that)... Anyway i will get to the point... it is because your son has installed linux onto your windows vista or xp computer... If you try recovery disk it will not work or if you have an acer computer it still will not work if you press Alt + F10, as the technicians if you ring up they will tell you to try recoverying the computer but the easiest way is to grab the Cd of the linux and it will take a while to load... then press "LIVE CD", go to the partition editior and try to recover if it still does not work then download this onto a usb and press F12, when the computer starts ( NOT WHEN GRUB IS ON )... Here is the link that you need to extract and move the file onto the usb on another computer (Library or Friends).... Here It Is: http://www.freedownloadscenter.com/Utilities/Misc__Utilities/Linux_File_Recovery_Download.html

Then Press Download... I had the same problem and it worked like that... if problem still happens buy a later edition of windows vista and put the computer into your room because if your son still has the disk then things can get a little nifty on the new computer because he only needs to press F12 and startup the disk and install it and delete partitions in the live cd...

Well hope i helped...

Marian Marinov's picture

GRUB on Serial Console

On July 22nd, 2008 Marian Marinov (not verified) says:

First let me say that this is a great article.

However I have commonly seen people who are unable to configure grub for working on serial console and they tend to argue that this is even possible.

Here is a simple way how you can configure GRUB to work on the serial console:

First you need to specify the serial port and the options for this port:

serial --unit=0 --speed=9600

Valid options for serial are:
[--unit=unit] [--port=port] [--speed=speed] [--word=word] [--parity=parity] [--stop=stop] [--device=dev]

Unit is usually 0-3 as com1 trough com4.

Second you have to setup the terminal for this port:
terminal --timeout=3 serial console

Valid options for terminal are:
[--dumb] [--no-echo] [--no-edit] [--timeout=secs] [--lines=lines] [--silent] [console] [serial] [hercules]

Reference: http://www.gnu.org/software/grub/manual/html_node/Serial-terminal.html#Serial-terminal

Larry's picture

Grub boot floppy doesn't work - gets kernel panic

On January 30th, 2008 Larry (not verified) says:

I use Kubuntu Gutsy with root partition on sata /dev/sda1 and /home on /dev/sda5.
When I issue the boot command at grub prompt, computer locks up after these two lines:

Please append a correct "root=" boot option; here the available partitions
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,3)

When I prepare the floppy and
sudo cp -pPv /usr/lib/grub/i386-pc/stage* /media/floppy/boot/grub
the files state1 and stage2 copy over properly but stage2_eltorito copies over as stage2-e.
I presume this truncation is because of the msdos format. Should I try vfat or does it not matter?

When I boot with the grub floppy, stage2 runs and I get a grub prompt.
I then issue: "root (hd0,0)"
but this does not give the expected informational message like
"Filesystem type is ext2fs, partition type 0x83".

I then issue: "kernel (hd0,0/boot/vmlinuz)" and "boot"
and the system appears to start but ends up in the kernel panic.

Does the fact my drives are sata make any difference? I tried "root (sd0,0)" but got an error.

My vmlinuz is a soft link to vmlinuz-2.6.22-14-generic in /boot and I tried the longer name many times but got tired of typing it.

I am able to view a file with something like "cat (hd0,0)/etc/fstab"

Since grub is installed on this system it can boot normally without a grub floppy but I'm testing the process on this computer.

Something is missing in my setup - can anyone please help me find it?

Larry

Anonymous's picture

You need SATA Driver

On May 4th, 2008 Anonymous (not verified) says:

You need SATA Driver sata_nv.

Kunjal's picture

Grub Menu Not Coming up

On July 30th, 2007 Kunjal (not verified) says:

Hi ,

I had Windows Vista on my Laptop with 120 GB HDD Capacity.
Windows partition is of 15 GB. I installed Red Hat Linux with Dual bootloader in Next 15 Gb. The other space on Hard drive was free. I formatted 20 GB for my work on Windows.
Now when i restart , i dont get the Grub Menu and it shows me prompt.
If i give few commands i can get into both of this operating system but the default menu to select any operating system has vanished.

Any help on this is highly appreciated.

Thank You,
Kunjal.

Anonymous's picture

How about Windows Vista?

On July 13th, 2007 Anonymous (not verified) says:

Can GRUB work together with Windows Vista? Vista has a new bootloader and do not use Boor.ini. I tried this on a Vista machine where the disk is a SATA disk, and it did not work. I was using Ubunto Linux to do the job for me.

Kunjal's picture

Yes it works fine.

On July 30th, 2007 Kunjal (not verified) says:

Hi ,

Yes it workds fine no problem at all. But if you make changes like formatting a free space in hard drive you may loose control of either operating system. also you will have to learn grub commands to boot any operating system.

Thank You,
Kunjal.

lynnevan's picture

Great info - Worked first time

On April 24th, 2007 lynnevan (not verified) says:

When FC3 came along, they said you couldn't make a boot floppy anymore because vmlinuz was too big. I've been using mkiso & burning boot CDs (as backup 'cause you never know). But floppys are so much easier. Even the iso using stage2_eltorito + grub was never bigger than 400K, so why couldn't you use a floppy anymore? Finally followed your recipe w/ the floppy and worked first time: xp, suse & centos. Zero problems. This is one of those rare items that you keep handy forever.
Thanks and thanks again!!
lynnevan

Aji Setiabudi's picture

Thank's for the info

On December 14th, 2006 Aji Setiabudi (not verified) says:

You have just saved my beloved Tux. I am no good on managing boot loader, and often end with screwed up hard disk. :)

ayhan's picture

xp&fc5 reboot and enter grub

On October 31st, 2006 ayhan (not verified) says:

hi i have a proble i installed xp and thenfedero core 5.0 i used sometimes but i didnot look at linux since 2 öonth and today when i restart my machine it enters grub i did not remember grub files..and i have alot off importad info..
how can i get rid of this grub thanks

Sparklight's picture

Can't make the floppy, can't boot XP

On October 3rd, 2006 Sparklight (not verified) says:

1. Making the floppy EXACTLY per your instructions: grub "setup" command checks for stage1, yes; stage2, yes; fat_stage1_5: no - and then it installs and reports success. Afterward there is still no fat_stage1_5 on the floppy. That's if I unmounted the floppy. If I didn't unmount the floppy before running grub it complains, "Error 31, File is not sector aligned." In either case, booting the floppy gets me the word
GRUB
and then no further action.

I'm using Foresight Linux, a distant derivative of Red Hat.

2. So I tried using the grub that is already installed on my Foresight partition, just to try stuff out.
> rootnoverify (hd0,0) // that's my Windows XP partition
> makeactive
> chainloader +1
> boot
NTLDR menu shows up, I pick main Windows. Boot process gets quite far along. Then just after the keyboard lights flash and a mouse cursor would normaly appear, I get a blue terminal screen:
"AUTOCHECK program not found, skipping autocheck"
and then in a moment, on a black screen:
"0x0000021a system fatal error..." and other stuff I can't see because it lasts half a second.
And then a spontaneous reboot.

Anybody seen this one? BTW, this Windows boots fine via Norton's BootMagic; it was to get around BootMagic problems that I was trying to use grub to begin with.

new to linux - ubuntu's picture

triple boot with grub

On August 23rd, 2006 new to linux - ubuntu (not verified) says:

Hello, I found this very helpfull, but I need to do one more thing with grub, but how???

first of all I have 3 OS-s (2 of them are win xp and third is Ubuntu 6.06)

Questions:
*How to hide one xp partition from another with grub?
**Is it possible to do so if I have only one hard disk?

somendra's picture

fedora core 6 test1 instal problem

On August 21st, 2006 somendra (not verified) says:

I've loaded win-xp2 on first partition then leave 2 partitions for fat32 then on free space I install fedora core 6 test1 but I loaded grub on first boot sector of /boot partition now my system loads win-xp2 only how can I boot fedora now. and I want to configure my Grub on MBR, so what I have to do now.

Ravi's picture

just do it...

On August 14th, 2007 Ravi (not verified) says:

by using same CDs of FC6 upgrade that GRUB i.e grand unified boot loader it loads GRUB and ur both OS will works fine....

Pascal Valois's picture

install on first boot sector of a partition

On September 18th, 2006 Pascal Valois (not verified) says:

when doing this, you rely on the boot sector of the bootable disk to hop to grub.

in fact, the basic boot sector search for the active partition, and then load the boot sector of it to ensure the OS boot.

in your case, using windows, with the fdisk tool, make your /boot linux partition bootable (active).

then reboot, and it should works

Atiq's picture

Thanks

On July 20th, 2006 Atiq (not verified) says:

I m really thankfull to you ... coz due to this i saved lots of my important data... thanks.

Anonymous's picture

tri-boot with RH, XP, and Ubuntu?

On August 1st, 2006 Anonymous (not verified) says:

dual boot with RH, XP, no problem. boot into grub and it worked. with all the hype in the office about ubuntu, i attempted and failed to tri-boot the machine. RH>Grub, Ubuntu>LILO, anyone try to throw a Debian in the mix?

thanks in advance... end up reinstalling RH because Ubuntu screwed my partition already :(

pkg's picture

problm in installing GURB

On May 20th, 2006 pkg (not verified) says:

after installing UBUNTU
it com restarts & it writes "grub is loding please wait..."
and after that it has taken hours but nothing is working after word.
winXP is also not working

Anonymous's picture

reinstall ur grub if nt

On August 22nd, 2006 Anonymous (not verified) says:

reinstall ur grub
if nt able to load windows u must write the code snippet
chainloader(+1)

Anonymous's picture

Thanks!

On May 11th, 2006 Anonymous (not verified) says:

I'd just like to say thank you very very much for this tutorial. It explained the situation much better than anything else I found online, including GRUB's own paltry documentation. My computer now boots again, and I am happy. Make sure this page never 404s.

pqaul's picture

grub still left on HD after disk recovery performed

On May 4th, 2006 pqaul (not verified) says:

I "inherited" this computer from my son and had to perform system recovery. Now the machine does not want to reboot properly. Just after powering up instead of normal Windows XP loading process to take place all I get is a grub prompt.

I learned from this forum that Linux must have been loaded into a partition on my hard drive. And Grub must have been used to achieve this goal. Why the system recovery process does not wipe out everything clean? Why Grub persists and lingers somewhere on my machine?

I used the command chain: rootnoverify (hd0,0)/makeactive/ etc, etc and it gets me to Windows. But now i have to do it every time I start the computer.

Is there a way to get rid of Grub? I don't need it since I will only run Windows XP on this machine?

BTW, Grub does not seem to be installed properly anymore. If it is installed ok how can I get it change default=0 to default=saved as one of the post suggested to stop it from looking for other booting options.

Thanks for any help.
Paul

geezer99's picture

grub error

On April 12th, 2007 geezer99 (not verified) says:

cannot 'unload' GRUB anymore...it ends up with ERROR 22 does not want to enter BIOS so I am pretty much stuck in here...
any hints?? please..

GrumpyGrampa's picture

Linux bootloader entries

On December 1st, 2006 GrumpyGrampa (not verified) says:

All of the boot loaders apparently add bits and pieces to the Master Boot Loader. If you have a problem with this, it is because the MBR remains even thru changes in the partition table. I finally resorted to using the disk manager for my HD to give it a new MBR and strictly avoided installation of an overlay.

Dhanraj's picture

Fstab

On March 27th, 2006 Dhanraj (not verified) says:

Hi Sir,
when i go to see the contents of fstab file,it gives message that "couldn't open file fstab"
sir please could u tell me the solution?

Anonymous's picture

fstab

On August 20th, 2009 Anonymous (not verified) says:

try going into termanal and useing the following commands

cd /etc (or whatever the location of your fstab)
sudo gedit fstab (if you do not use gnome replace gedit with your favorite text editor)

hope it helps!

Sajjad's picture

Grub vs Lilo

On March 27th, 2006 Sajjad (not verified) says:

The main reason I still (yes, still) stick to LILO is the test kernel feature (-R, default kernel for next reboot). The last I checked, Grub didn't support this.

Ok, not everyone needs to install new kernels on remote systems, but that feature has saved me a number of times when the new kernel failed to load and all I had to do was ask to have the machine rebooted. The spartan interface is a small price to pay for the simplicity and this feature of Lilo.

Anonymous's picture

Re: Grub vs LiLo (testing new kernels)

On April 10th, 2006 Anonymous (not verified) says:

The "Making your system robust" section of the grub manual talks about setting up fallbacks for remote booting.

kees's picture

grub

On March 22nd, 2006 kees (not verified) says:

Exellent explanation how GRUB works, and more..

You saved a newbie from loosing his documents after a try of Linux.

I'll stay with you

gr

kees

sarathy's picture

Excellent Info

On March 12th, 2006 sarathy (not verified) says:

The information that was given here by Marshall was excellent. Hat's Off to Wayne Marshall. I breathe a lot easier with grub now. Happy Grubbing .....

:-)

Anonymous's picture

Grub is realy the ugliest

On February 20th, 2006 Anonymous (not verified) says:

Grub is realy the ugliest piece of software that I ever instaled on my machine. I am a "newbie" to linux and so have done a little stupid thing, adding a new partion without telling Grub. The result was that I had to reinstall that ugly shit, without having access to internet. It was not before few terrifying hours that I had a disc with linux in my hands supporting that shit Grub, so I could restore my machine and get access to my stuff...
I personalyhate that thing

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Newsletter

Each week Linux Journal editors will tell you what's hot in the world of Linux. You will receive late breaking news, technical tips and tricks, and links to in-depth stories featured on www.linuxjournal.com.
Sign up for our Email Newsletter

Tech Tip Videos

From the Magazine

December 2009, #188

If last month's Infrastrucuture issue was too "big" for you then try on this month's Embedded issue. Find out how to use Player for programming mobile robots, build a humidity controller for your root cellar, find out how to reduce the boot time of your embedded system, and if you're new to embedded systems find out the basics that go into one. You can also read about the Beagle Board, the Mesh Potato and a spate of other interestingly named items. And along with our regular columns don't miss our new monthly column: Economy Size Geek.







Read this issue