----- Original Message -----
From: "Martin" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, December 13, 2000 12:24 PM
Subject: [SLUG] lilo problems


> I've got HPT366 support compiled into a 2.4 kernel, and I use append
> ide=reverse to get it to boot of the linux hd. This also has the effect
> of switching the controllers locations, so that /dev/hda is now the
> linux drive and /dev/hde the win2k. I've tried switching all the drives
> in fstab and lilo.conf and not using reverse, but lilo hangs at LI.

ide=reverse is not necessary - it only changes the order in which the linux
kernel sees the devices.  This is not needed except in a few rare
circumstances.  It holds no bearing on the boot process itself.

I can see two solutions:

1) [more involved, less complicated, more likely to work out of the box]

Use partition magic to free up a tiny 20MB slice on the Win2k disk (if you
haven't got a copy yet, buy or borrow one - either that, or nuke/rebuild a
partition to make the space).  Create an ext2 parition in that space, copy
/boot to it, and then mount it under /boot at boot time.  Make sure the
kernel images you wish to boot are in that directory.  Stop using
ide=reverse, and unbreak your fstab.  fix lilo.conf to reflect the new
location of / and where the boot disk really is [/dev/hda].  Make sure you
have lba32 enabled too.  Run lilo -v, make sure everything is being found
correctly.

This should work a charm.

2) [quicker to implement, more hackish, more complicated, more likely to
fsck up whilst getting it right]

Alternatively, you can might be able to get away by overrideing what LILO
thinks the bios translation map should look like.

I'm assuming that /dev/hda and /dev/hde are the only devices visable to the
BIOS....  [if you have other drives, then you'll need to work out what
device BIOS sees your linux disk as]

in which case, including

disk=/dev/hde
  bios = 0x80
disk=/dev/hda
  bios = 0x81

in lilo.conf [with ide=reverse still enabled] might fix your problem.


Why It Isn't Working:  [or (more correctly), why it shouldn't be working]

LILO uses BIOS calls to load kernels from disk.  the LILO installer
[/sbin/lilo] has troubles translating devices to bios device numbers under
certain circumstances.  Furhtermore, BIOS can only access the first 4 drives
in your system.  By placing /boot and lilo on your real first disk, and not
doing stupid things with IDE device reordering, LILO can map the BIOS id to
the device properly, and access the kernel stored on that disk.

Other good things:
* You won't need to install LILO in the MBR [which is a bad idea IMO
anyway].  Instead you can install it to the boot sector of that tiny /boot
partition [if you made it a primary], and use the active flag to select it.
This way if you install a M$ OS again, you don't lose LILO when it rebuilds
the MBR.

* if you do it right, then it'll work with any bootloader you wish to try in
the future.   (I used to use System Commander to Select between Win9x, Linux
[LILO] and OS/2)

--==============================================--
  Crossfire      | This email was brought to you
  [EMAIL PROTECTED] | on 100% Recycled Electrons
--==============================================--




-- 
SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/
More Info: http://slug.org.au/lists/listinfo/slug

Reply via email to