[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Understanding LILO (was: Using dd to copy a disk)



I have to ask a dumb question.  When booting is lilo.conf read?
Or is lilo.conf only used for writing the MBR plus the additional boot
sectors?  I assume it's not read while booting.

I'm trying to understand the "disk", "boot", and "root" options in 
lilo.conf and when they are used (i.e. are the settings relative to the 
disk when running lilo or when booting).

In the Hard Disk Upgrade HOWTO:

http://www.linux.org/docs/ldp/howto/mini/Hard-Disk-Upgrade/prepare.html

it shows modifying all the settings for lilo to reflect their current 
mount points.

In a message yesterday from Rogier Wolff:

On Tue, Jul 29, 2003 at 07:55:24AM +0200, Rogier Wolff wrote:

Regarding writing the MBR on a new disk drive.

> - Modify the /etc/fstab and /etc/lilo.conf files before rebooting. 
> - Add
> 
> device=/dev/hda
>   bios=0x80

I assume that was suppose to be "disk" not "device".

> to Lilo.conf, mount the hda disk on /mnt and then run 
>   lilo -r /mnt

Ok so this make /mnt the root, so the settings in lilo.conf are relative 
to an existing setting like:

 install=/boot/boot-menu.b

will actually install /mnt/boot/boot-menu.b

But the "disk", "boot", and "root" settings will need to be changed 
before running lilo, from what I can tell.

This is a bit confusing since my *new* disk is /dev/hda instead of the
typical (see HOWTO) /dev/hdb.  So I want to make sure I understand
what's happening.

My current lilo.conf settings on the RAID 1 machine have:

# Overrides the default mapping between harddisk names and the BIOS'
# harddisk order. Use with caution.
#
#disk=/dev/hde
#    bios=0x81

#disk=/dev/sda
#    bios=0x80

# Specifies the boot device.  This is where Lilo installs its boot
# block.  It can be either a partition, or the raw device, in which
# case it installs in the MBR, and will overwrite the current MBR.
#
boot=/dev/sda

# Specifies the device that should be mounted as root. (`/')
#
root=/dev/sda2

So, again, the *new* disk is installed in /dev/hda (my RAID is 
/dev/sda).  When I'm done the disk will be installed in another machine 
also as /dev/hda.

To to have lilo() install the MBR to the new disk (currently in 

/dev/had) I'd need to use:

  boot=/dev/hda

(If, for example if the new drive is in /dev/hdb then I'd used 
boot=/dev/hdb).

Now, "root" is confusing me.  The HOWTO doesn't show me a "root" entry.
I would think that root should point to where the drive will *finally* 
be installed (booted).  That is,

   root=/dev/hda

regardless of where the disk is when running lilo.  Is that correct?
That is, if I was creating a new disk mounted /mnt that was on 
/dev/hdb I'd still use root=/dev/hda.  If not correct can someone 
explain?

Finally, there's "disk" which looks more like a way to map hardware at 
boot time (i.e. /dev/hda is the first BIOS drive number 0x80).

My current lilo.conf doesn't have a "disk" setting and I assume I don't 
need one since I'll be using a standard disk setup (first BIOS disk is 
indeed /dev/hda.

So my real questions (after all that) is simply to understand the
settings in lilo.conf and when they apply -- which is especially
important to understand when building a drive that will end up at a 
different location than the build location.

Thanks,




-- 
Bill Moseley
moseley@hank.org



Reply to: