Perform Tricks for Your GRUB - Page 2

 By Carla Schroder
Page 2 of 2   |  Back to Page 1
Print Article
Continued From Page 1

Easily Restoring LILO
Don't uninstall LILO — leave it intact, including lilo.conf. The /boot directory will get cluttered with both LILO and GRUB files, but that doesn't hurt anything. You can have both on your system, and easily switch back-and-forth simply by installing the one you want to the MBR. Of course old LILO hands know how to do this:

# /sbin/lilo -v

GRUB really shines at multi-booting. GRUB operates independently of any operating system. So you can create a separate boot partition, then add and remove operating systems at will, without disturbing the bootloader. It's a great way to build a compact testing network, using native environments. With three machines — two desktops and a notebook — you can combine many combinations of Linux, Windows, and any other operating systems you like, and test things like networking, proxying, mail servers, web servers, terminal servers, VPNs, firewalls, routings — anything at all. Throwing a notebook into the mix is a good idea, as they usually have weirdo proprietary hardware, so it's a good way to test it.

Here's how to do it:

Starting from scratch, install a new Linux. During installation, create a 100-MB boot partition. Make this a primary partition. When the installation is completed, you'll be able to delete the root filesystem, and still have a functioning bootloader. There won't be anything to boot to, but you can now add other operating systems, and have your boot files and configuration safely isolated. And, you can mount the boot partition in any Linux, and edit menu.lst as you need.

Another option is to have a minimal Linux installation on its own primary partition, to use as your stable "host" operating system, containing GRUB's active /boot directory. Debian and Red Hat have minimal installations of around 500 megabytes; give them a 1-gigabyte partition to allow room for log and tmp files, and any data you wish to store.

Multi-booting Windows
GRUB makes multi-booting Linux and Windows NT/2000/XP a whole lot easier. The easy way is to install Windows first, or multiple Windowses, then install Linux last. If you're going to run more than one Windows, you need to install them in order, oldest first. Windows NT/2000/XP will recognize other installed Windows, and add them to its own bootloader. When you finish off the installation spree with Linux, be to sure to install GRUB to the MBR. It will automatically create a menu entry for Windows.

Linux will happily boot from logical partitions, Windows will not. To run multiple Windows, you need one primary partition, then create as many additional logical partitions as you need. The easiest way is leave free space on the drive, then use the Windows NT/2000/XP installer to create and format the new partitions.

You can add Windows NT/2000/XP after Linux, because it is smart enough to not freak out at the sight of your Linux partitions. Windows will overwrite the bootloader, so use the steps outlined above to restore GRUB to the bootloader.

Windows 95/98/ME is much stupider, and requires the use of GRUB's partition hiding to install on a Linux system. This is too complex to go into here, I'll write it up in a future article if there is enough interest. The easy way is to install Windows 95/98/ME first, then Linux.

Windows must be on the first hard disk. It will not boot from a secondary IDE disk, nor from the second primary IDE disk. GRUB will let you map the drives, and fake Windows out into thinking the second drive is the first one, but it's really simpler and better to use the first physical disk.

Booting A RAID Array
If you're running Linux's software RAID, you know that you can use either SCSI or IDE disks. Booting RAID can be a bit tricky, especially when you get people yelling at you about how evil it is to have root filesystems on RAID arrays, and software RAID is evil, and blah blah blah. Here's a simple GRUB trick for booting a two-disk RAID 1 (mirror) array. Install the GRUB boot records on both drives. Configure an identical menu.lst on each drive. Be sure to include the fallback option:

# first entry is the boot default
default 0

# fallback to the second entry
fallback 1

So if the first drive fails, the second one will automatically boot. This is useful for IDE RAID 1, as a quick 'n dirty failover for workstations and low-to-medium duty servers. Sometime down the road we'll do a how-to article on using Linux RAID, and some nifty booting hacks to make sure drives and modules and services load up in the correct order.

The GRUB Manual

This article was originally published on Apr 22, 2004
Get the Latest Scoop with Networking Update Newsletter