From: buck on
add hard drives Micro HOWTO

Original configuration:
4 Seagate 250 gig HDs (/dev/sda through /dev/sdd)
1 Seagate 750 gig HD (/dev/sde)
1 Plextor DVD
Each HD has 2 primary partitions. The first partition uses cylinders
1 - 15 and the second consumes the remainder of the drive. /boot is
in /dev/sda1 so that it is within the first 1024 cylinders for lilo,
and sda1 is flagged bootable. Lilo is installed in the mbr of sda.
/dev/sd[b-d]1 are set up as swap partitions.

New configuration. Note that the new drives are wired such that they
become /dev/sda through /dev/sdd, thus moving up the original drives
from /dev/sd[a-d]; now they are /dev/sd[e-h].
4 WD 640 gig HDs
4 Seagate 250 gig HDs
1 Seagate 750 gig HD
1 Plextor DVD

Problem:
When I added the 4 new hard drives, I got errors running lilo:
"fatal: open /dev/sdf: no such file or directory"
"linux experimental device 0x04x needs to be defined".

Solution:
Boot an appropriate Slackware install media. I used a Slackware-13.0
CD.

Run setup and select TARGET to be sure the desired partition is
visible. In this case, / (root) is a volume group and running setup
is necessary for the VG to be visible. Exit setup without doing
anything.

Create a temporary directory: "mkdir /mountpoint".

Mount the root partition there: "mount /dev/vg/root /mountpoint".

Change root to /mountpoint: "chroot /mountpoint".

List the sd devices (thanks to Grant for the "heads up") because,
although the CD boot may correctly set up /dev for all drives, it is
unlikely that the partition in your chroot environment has all needed
entries in /dev: "ls -l /dev/sd*". Udev will not run in the chroot,
so use mknod to create the necessary entries. Note that the increment
for each drive is 16 and for each partition is 1. From my reading, it
appears that the maximum number of partitions for "sd" devices is 15:
mknod /dev/sdf b 8 80
mknod /dev/sdf1 b 8 81
mknod /dev/sdf2 b 8 82
mknod /dev/sdg b 8 96
mknod /dev/sdg1 b 8 97
mknod /dev/sdg2 b 8 98
mknod /dev/sdh b 8 112
mknod /dev/sdg1 b 8 113
mknod /dev/sdg2 b 8 114
mknod /dev/sdi b 8 128
mknod /dev/sdg1 b 8 129
mknod /dev/sdg2 b 8 130

Edit /etc/fstab and alter the entries to account for the changes in
drive letters.

Because /boot is in its own partition, mount it in the chroot
environment. This is what stops the lilo error "linux experimental
device 0x04x needs to be defined" (thanks to redtricycle): "mount
/dev/sde1 /boot" and "ls /boot".

Edit /etc/lilo.conf. Here are the uncommented lines from mine. I
don't know if all those "disk=" lines are necessary and I don't give a
damn because running lilo succeeded with them present. I do know that
only the first 7 devices are seen by the motherboard BIOS, so I
defined 'em. Note that the "bios=" entries are bogus because 0x80 is
really a WD 640 gig HD which is /dev/sda, and that /dev/sde really
should be 0x84. But since the BIOS sees only 7 devices, the maximum
usable value is 0x86 where 0x88 would be "correct". It seems
realistic to believe that only the "/dev/sdi" line is necessary
because that drive is not seen by the BIOS and it contains the root
filesystem of one of the boot options in lilo.conf. I'll experiment
with removing the "disk=" lines now that mknod has been run to see if
running lilo succeeds without them:
append=" vt.default_utf8=0"
boot = /dev/sde
bitmap = /boot/slack.bmp
bmp-colors = 255,0,255,0,255,0
bmp-table = 60,6,1,16
bmp-timer = 65,27,0,255
prompt
timeout = 60
change-rules
reset
disk=/dev/sde bios=0x80 sectors=63 heads=255 cylinders=30401 max-
partitions=15
disk=/dev/sdf bios=0x81 sectors=63 heads=255 cylinders=30401 max-
partitions=15
disk=/dev/sdg bios=0x82 sectors=63 heads=255 cylinders=30401 max-
partitions=15
disk=/dev/sdh bios=0x83 sectors=63 heads=255 cylinders=30401 max-
partitions=15
disk=/dev/sdi bios=0x84 sectors=63 heads=255 cylinders=90201 max-
partitions=15
vga = normal
image = /boot/bzImage-2.6.28.7-smp
initrd = /boot/newinitrd.gz
root= /dev/vg/root
label = Linux-2.6.28.7
read-only
image = /boot/vmlinuz750-generic-smp-2.6.27.7-smp
append=" 1"
initrd = /boot/initrd750.gz
root= /dev/VG/root
label = Linux750Single
read-only
image = /boot/bzImage-2.6.27.7-smp
initrd = /boot/initrd.gz
root= /dev/vg/root
label = Linux-2.6.27.7
read-only
image = /boot/vmlinuz
initrd = /boot/fallbk.gz
root = /dev/vg/root
label = FallBack
read-only

Run lilo. Assuming it succeeds, exit from the chroot. Reboot.

I make no promises that this will work for you, but it worked for me.
From: buck on
buck <buck(a)private.mil> wrote in news:hfi1fh01pn(a)news1.newsguy.com:

> Edit /etc/lilo.conf. Here are the uncommented lines from mine. I
> don't know if all those "disk=" lines are necessary and I don't give
a
> damn because running lilo succeeded with them present. I do know

> disk=/dev/sde bios=0x80 sectors=63 heads=255 cylinders=30401 max-
> partitions=15
> disk=/dev/sdf bios=0x81 sectors=63 heads=255 cylinders=30401 max-
> partitions=15
> disk=/dev/sdg bios=0x82 sectors=63 heads=255 cylinders=30401 max-
> partitions=15
> disk=/dev/sdh bios=0x83 sectors=63 heads=255 cylinders=30401 max-
> partitions=15
> disk=/dev/sdi bios=0x84 sectors=63 heads=255 cylinders=90201 max-

None of the above "disk=" lines is necessary.

The real trick is to chroot, make sure /dev is correct and that /boot
is mounted, then run lilo.
--
buck
 | 
Pages: 1
Prev: xfce menu editor?
Next: slack 13.0 DVD Burning