Boot BeOS via SCSI with LILO
[Editor’s note: Be’s bootman is far easier to configure and use than LILO. If you’re running a multi-boot machine, I recommend bootman (search this site for bootman tips). Bootman can boot virtually any OS from any kind of device, with no special configuration required. If you enjoy pain, read on.]
If you’re not familar with LILO, getting BeOS to boot off a SCSI disk can be stressful.
First off, let’s determine what hard drive number you have:
1. How many physical hard drives do you have in your system?
2. Which hard drive contains BeOS? (hint: it’s connected to the SCSI controller)
3. Let’s determine the hard drive number by knowing which ones your computer’s BIOS sees. They are seen in order.
For example, I have two hard drives on my primary ide controller (master and slave), which allows up to two drives off that connector. I have another IDE hard drive on the secondary ide ( master ) and a ide cdrom drive ( slave ).
Confused? Don’t be, it’s going to make sense in a second:
Master is referring to the 1st hard drive set as master on the primary ide controller. Slave is referring to the 2nd hard drive set as slave on the primary ide controller.
See a pattern?
In my configuration I have a total of *four* hard drives. Three IDE and one SCSI. The BIOS will see the drives on the primary IDE first, followed by secondary IDE and then finally it will see the SCSI controller with drives off of it.
In my case, the hard drive number that has BeOS on it is number four.
Master IDE drive on primary ide controller = 1.
Slave IDE drive on primary ide controller = 2.
Master IDE drive on secondary ide controller = 3.
Slave IDE cdrom on secondary ide controller = n/a, doesn’t apply here, not a hard drive.
SCSI disk first in SCSI chain (my only hard drive on it) is 4.
Now we know the disk/hard drive number, now write that down. 🙂
For the next part you need to be ‚root‘ and use an editor of your choice.
Let’s take a peak at my /etc/lilo.conf file.
Example of /etc/lilo.conf
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 linear default=linux compact disk=/dev/sda bios=0x83 image=/boot/vmlinuz-2.2.14-5.0smp label=linux initrd=/boot/initrd-2.2.14-5.0smp.img read-only root=/dev/hdb1 image=/boot/vmlinuz-2.2.14-5.0 label=linux-up initrd=/boot/initrd-2.2.14-5.0.img read-only root=/dev/hdb1 other=/dev/hda1 label=dos other=/dev/sda1 label=be
As you see I have several entries, your’s may be more or less.
See the lines that read (near the top):
disk=/dev/sda bios=0x83
Yep, /dev/sd -> ‚a‘ is hard drive one on the scsi chain.
Remember that hard drive number we jotted down (you did right?), well here is what all that work was for:
bios=0x8 -> ‚3‘ is hard drive number 4 seen by the BIOS.
In other words figure out the drive number from step 3 above and substract 1.
Edit your /etc/lilo.conf and include „linear, disk, bios“ lines like mine, minus making changes to reflect your setup.
We are almost done, look at the bottom of my example lilo.conf, notice „other=/dev/sda1“ section? Make yours look like it but make the appropriate changes. Due note, /dev/sda1 is referring to partition ‚1‘ on /dev/sda (scsi disk one in chain). Make sure you give it the right BeOS partition off of the SCSI drive.
Save your changes to the lilo.conf file.
At the Linux shell prompt, as user ‚root‘ enter:
lilo
Now reboot and when LILO pops up, enter „be“ to enter BeOS.