Trouble installing Redhat 9.0 on Promise FastTrak100 TX2 RAID controller, RAID1 mirrored - solved

From: Dave Burton (dave146_at_burtonsys.com)
Date: 01/11/04


Date: Sat, 10 Jan 2004 23:27:21 -0500

I finally managed to get the latest Redhat 9.0 installed on
a computer with mirrored 120 GB IDE drives on a Promise
Technologies FastTrak100 TX2 RAID controller. But it wasn't
easy.

Frankly, I'm very, very disappointed with Promise Technology.
If I had it to do over again, I'd just use Linux's software
RAID and the motherboard's IDE controller. But now that I've
finally got this thing working, I guess I'll use it.

At least I know that I'm not stuck with it. One of the few
good things about Promise's package is that you can pull one
of the drives out of the RAID 1 (mirrored) array, plug it
into a plain IDE controller, and run it, without change.
Apparently you cannot do that with some competing products.

This message contains a mixture of two things: gripes about
Promise, and instructions about how to make it actually
work.

Here's the first gripe: Despite Promise's claims to the
contrary, even in the manual for the FastTrak100
controllers, they are NOT hardware RAID controllers.
Supposedly, it makes multiple drives (in this case, a
mirrored RAID 1 pair) look to the computer like a single
drive. That's what the documentation says. The manual
says, on p. 88:

   The FastTrak100 "fools" the system into thinking that
   it's dealing with a single HDD. Therefore, anything
   you can do to a single HDD can also be done to a
   FastTrak100 array. You can, and should, use the FDISK
   and FORMAT utilities to partition/format the array.
   You can partition the array however you wish. You can
   format the array with whatever system you wish.

But that a complete lie. It will NOT work with "whatever
system you wish," and it can only fool your system into
thinking that it is dealing with a single HDD if you have
a special driver installed (or if your OS uses the BIOS,
but most don't).

Actually, these are just simple IDE controllers with BIOS
and drivers to do software RAID. Their BIOS does a good job
of emulating a hardware RAID controller for those operating
systems that access the disk through BIOS -- which basically
means just MS-DOS. For everything else, special drivers are
required to emulate a RAID controller in software.

This is what I did to make it work, in 24 steps:

1) First, I downloaded the latest version of the RH 9.0 .iso
disk images from
http://linuxsite.divms.uiowa.edu/redhat/iso/redhat-9.0-en/
and burned them into 6 CDs (of which I've actually only used
the first 3). They were dated 12/24/2003.

2) I installed the Promise TX2 adapter and a pair of Seagate
120 GB IDE disk drives into the computer.

3) I booted DOS 7 (a/k/a Win98 SE in DOS mode) from a
diskette, and set up the RAID 1 (mirrored) array according
to Promise's instructions. Since one of the drives had a
small old partition that I wanted to keep, I let the Promise
FastBuild(tm) BIOS setup utility to copy that disk drive to
the other one.

(It was very slow! With those drives, it should have copied
at 40-45 MB/sec. In fact, it only copied at about 15
MB/sec. It took over 2 hours to copy the entire drive!
I emailed support@promise.com, and asked them why it was
so slow. That was 4.5 days ago, 8:30 AM Tuesday in their
time zone, but they've not yet replied to either that email
or any of my subsequent emails.)

But finally it finished.

4) I then partitioned with Partition Magic 8.01 (which is
excellent). I moved the small old partition out to the end
of the (now mirrored) drive. I gave it a 500 MB primary
partition for Windows 98, and an extended partition
containing:
a ~80 MB ext2 /boot partition, and
a pair of ~240 MB swap partitions, and
a great big ext3 main partition, and
the old, small partition.

5) I let Partition Magic do the formatting of the new
partitions. I trust it.

6) I installed Win98 in the little 500 MB partition, and
installed the Promise driver for Windows, without incident.
It all worked fine.

7) I also installed System Commander, for ease of switching
between OSs. (For some reason my old System Commander 4.01
refuses to boot to the Linux boot partition, /dev/sda5.
I have no idea why. I've never seen it have that problem
before. Perhaps it had something to do with the Promise
RAID controller, or the large drive size. But I worked
around the problem by installing lilo to the MBR and booting
it using System Commander's MBR boot technique.)

8) I downloaded Promise's driver for RH 8/9, from their web site:
http://www.promise.com/support/download/download_eng.asp
http://www.promise.com/support/download/download2_eng.asp?productId=8&category=driver&os=3
http://www.promise.com/support/file/driver/4_ft2xrhb1.zip

9) I unzipped the driver files, and printed out the
readme.txt. I copied the driver files onto a
diskette, per Promise's instructions.
These are the files:

| 4893 5-29-03 3:01p a:\ft-ioctl.txt
| 4258 5-29-03 3:01p a:\install
| 65 5-29-03 3:01p a:\modinfo
| 449752 5-29-03 3:01p a:\modules.cgz
| 19 5-29-03 3:01p a:\modules.dep
| 8467 5-29-03 3:01p a:\pcitable
| 4999 5-29-03 3:01p a:\readme.txt
| 21 5-29-03 3:01p a:\rhdd-6.1
| 1121 5-29-03 3:01p a:\setup-ft

Note that the diskette should be formatted as a regular
DOS/Windows (FAT12) diskette, and that the files must be in
the root directory of the diskette, not in a subdirectory.

10) Then I booted the computer from the RH 9.0 CD #1, and
Installed RH 9.0, following Promise's readme.txt
instructions. At the "boot:" prompt I entered the long
command line:

linux ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0
ide6=0 ide7=0 ide8=0 ide9=0 expert

...and fed it the driver diskette when prompted. The install
appeared to go okay until it came time to create the optional
boot diskette. There it hung, and refused to allow me to
continue.

This problem seems to be a Redhat installer bug: it had left
the floppy mounted after loading the FastTrak driver, and
then failed when it tried to use the same floppy drive for
creating the boot diskette. (I figured that out by doing
Ctrl-Alt-{Fn} where {Fn} is a function key, F1-F5, and
reading the various error messages.)

11) The next time I tried the install, when it came time to
create the boot diskette, I first did Ctrl-Alt-F2 and
umount'd the floppy. Then the boot diskette creation seemed
to work, and I was able to complete the install.

12) However, the resulting Linux installation refused to
boot, neither from the hard disk nor from the boot diskette.
The error was:

   kmod: failed to exec /sbin/modprobe -s -k block-major-8, errno = 2
   VFS: Cannot open root device "808" or 08:08
   Please append a correct "root=" boot option
   Kernel panic: VFS: Unable to mount root fs on 08:08

(The root device name varied.)

I called Promise tech support. It was a toll number, but the
hold queue wasn't too bad. However, the support guy didn't
help at all. He told me that Promise only supports their
adapter on the original Redhat 9.0 release, not on newer
kernels. He blamed Redhat, for not sticking with one kernel
version. I'm not kidding! As if any sane person would use
a disk controller which they know will cease working when
the OS is upgraded. He suggested that I download Promise's
driver source code and rebuild the kernel. (I reminded him
that my Linux system would not boot, which makes it hard to
rebuild the kernel.) I'm not making this up, folks. :-(

The cause of the error was that there was no driver for the
Promise FastTrak100 TX2. The reason there was no driver is
that Promise's installation instructions and scripts are
totally botched.

It would be difficult to overstate how BAD Promise's driver
package is. Their installation instructions are wrong.
Their "setup-ft" script for installing their driver on a new
system doesn't work at all. Their "install" script for
installing their driver on an existing system partly works,
but not if you have a current RedHat 9.0 release, with a
kernel that is anything other than exactly version 2.4.20-8.
In that case, the install script fails without reporting an
error. It says "setup is complete, need to reboot system."
Then it exits, displaying exactly the same message that
it would have displayed if it had worked, but without even
copying the driver onto your hard disk drive.

Really, I'm not making this up.

Eventually I figured it out.

13) First, get to a Linux command prompt.

To get a usable command-prompt, boot from the Redhat 9.0 CD
#1 and start it with the Promise recommended command:

  linux ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0 ide5=0
ide6=0 ide7=0 expert

then, when it asks if you have a driver disk, say yes, and
let it load the FastTrak100 driver from diskette. (Note: the
diskette should be in normal DOS-style FAT12 format, with the
driver files in the root directory.) When it gets to a GUI
screen, you can press Ctrl-Alt-2 to get to a usable text-mode
command prompt, as root.

14) Now that you have a usable command prompt, you need to
mount the hard disk drive. In my case, I have a small
(~80 MB) ext2 boot partition as /dev/sda5, and a great big
ext3 root partition as /dev/sda8. So these are the commands
to mount it:

mkdir /mnt/sysimage
mount /dev/sda8 /mnt/sysimage
mount /dev/sda5 /mnt/sysimage/boot

15) Then 'chroot' to the hard drive root partition:

chroot /mnt/sysimage

(Note that I'm assuming that the RH 9 install has already
been done. So there should already be a /boot directory
in the root of /dev/sda8, to serve as a mount point for
the boot partition, /dev/sda5.)

16) This next step isn't strictly necessary, but I did it
to make it more convenient to run programs that are in
/sbin. Redhat includes /mnt/sbin in their install CD's
$PATH, but not /sbin. So this effectively adds /sbin to the
$PATH when working as "chroot /mnt/sysimage":

ln -s /sbin /mnt/sbin

16) Examine /etc/fstab, and ensure that it contains the
needed lines for your boot & root partitions. For my
partitions, they are:

   /dev/sda8 / ext3 defaults 1 1
   /dev/sda5 /boot ext2 defaults 1 2

17) Not it is time to install the Promise FastTrak driver.
The following procedure (from Promise's readme.txt) will NOT
work unless you are installing kernel version 2.4.20-8:

   mkdir /mnt/floppy
   mount /dev/fd0 /mnt/floppy
   sh /mnt/floppy/install

My first attempt to work around this problem was as follows:

   mkdir /tmp/dave
   cp modules.cgz /tmp/dave/
   cd /tmp/dave
   zcat modules.cgz | cpio -id
   cd /lib/modules/2.4.20-27.9/kernel/drivers/scsi
   cp -p /tmp/dave/2.4.20-8/FastTrak.o .
   cd /lib/modules/2.4.20-27.9smp/kernel/drivers/scsi
   cp -p /tmp/dave/2.4.20-8smp/FastTrak.o .
   # and then manually edit the /etc/modules.conf file as
   # described below

However, this is simpler... we just use symbolic links to
trick the Promise install script into installing into the
right directories:

   ln -s /lib/modules/2.4.20-27.9 /lib/modules/2.4.20-8
   ln -s /lib/modules/2.4.20-27.9smp /lib/modules/2.4.20-8smp
   # then, with the Promise FastTrak100 driver diskette mounted on
/mnt/floppy:
   /mnt/floppy/install
   # that should also fix the /etc/modules.conf file, in one swell foop

18) The Promise install script should have added (or fixed)
the following needed "alias scsi_hostadapter" line in
/etc/modules.conf (which was
formerly called /etc/conf.modules) to be:

   alias scsi_hostadapter FastTrak

I also edited /etc/conf.modules and added this line, but it
might not be necessary:

   alias block-major-8 FastTrak

19) I don't know whether or not it is necessary to create an
/etc/rc.modules file. I sort of doubt it, but Promise's
instructions say to do so, so I did. It is very simple; it
just contains 3 lines:

   insmod scsi_mod
   insmod sd_mod
   insmod -N FastTrak

Note that I added the "-N". The '-N' says to not be so picky
about version numbers. ('-f' instead of '-N' would say to
ignore the version numbers altogether -- which might possibly
make the driver work with at 2.5 or 2.6 kernel, though I
wouldn't bet money on it.)

20) Next, we need to create initrd images containing the
FastTrak.o and related drivers.

But before running mkinitrd, you need to edit it. It must be
changed to use the -N (or -f) option when invoking insmod, so
that the Promise driver will load despite the version
mismatch. mkinitrd normally resides in /sbin, but you can
find it by doing 'which mkinitrd'. Then edit it by changing
"insmod /lib" to "insmod -N /lib". This will do the job:

   sed -i.bak1 's/insmod \/lib/insmod -N \/lib/' `which mkinitrd`

You can verify that the '-N' has been added to it by scanning
with grep:

   grep 'insmod' `which mkinitrd`

As you can see, the original is left in mkinitrd.bak1:

   ls -al \sbin\mkinitrd*

21) Now we can use the modified mkinitrd script to create
initrd images:

   mkinitrd -v -f /boot/initrd-2.4.20-27.9.img 2.4.20-27.9
   mkinitrd -v -f /boot/initrd-2.4.20-27.9smp.img 2.4.20-27.9smp

22) Next you must edit /etc/lilo.conf (or the grub
configuration file, if you prefer grub). You must at least
add the initrd= lines, which are needed to use the initrd
images.

I also added a menu choice to boot Linux in single-user mode:

 | image=/boot/vmlinuz-2.4.20-27.9
 | label=linux-1cpu
 | initrd=/boot/initrd-2.4.20-27.9.img
 | read-only
 | root=/dev/sda8
 | append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0
ide5=0 ide6=0 ide7=0 ide8=0 ide9=0"
 |
 | image=/boot/vmlinuz-2.4.20-27.9
 | label=linux-1usr
 | initrd=/boot/initrd-2.4.20-27.9.img
 | read-only
 | root=/dev/sda8
 | append="ide0=0x1f0,0x3f6,14 ide1=0x170,0x376,15 ide2=0 ide3=0 ide4=0
ide5=0 ide6=0 ide7=0 ide8=0 ide9=0 s"

Note: if you have a 'default' line, it must match one of the
'label=' lines.

23) Then run lilo:

   lilo

Note: I prefer lilo to grub. Grub has one advantage, in that
its boot loader code understands ext2 file systems, so that
it can find your files on the hard disk even if they move.
With lilo, if you do ANYTHING to your boot files, you MUST
run lilo again to tell its low-level boot loader where the
files are. But the problem with grub is that if you change
the boot device order in your BIOS setup, it might no longer
read the right drive. This is from the grub documentation:

   "Note that GRUB does _not_ distinguish IDE from SCSI - it
   simply counts the drive numbers from zero, regardless of
   their type. Normally, any IDE drive number is less than
   any SCSI drive number, although that is not true if you
   change the boot sequence by swapping IDE and SCSI drives
   in your BIOS."

Well, to install RedHat 9, you probably changed the boot
sequence in your computer's BIOS, to boot from CD; then you
probably changed it again to boot from RAID hard disk. In
my Abit computer's BIOS, the only boot sequence menu choice
which boots from CD-ROM also puts the onboard IDE controller
as next in boot order. So I stuck with lilo to avoid the trouble.

24) Then undo the umount and chroot commands:

   cd /
   umount /mnt/floppy
   exit
   cd /
   umount /mnt/sysimage/boot
   umount /mnt/sysimage

25) At this point, RH 9 should finally boot, in text mode.
When I tried 'startx', however, the GUI refused to run. It
said:

| (EE) Unable to locate/open config file
| (EE) Error from xf86HandleConfigFile()
| Fatal server error:
| no screens found

But that was easily fixed by running running
/usr/bin/redhat-config-xfree86 as root to create the missing
XF86Config file.

Finally, RH 9.0 is working with the Promise FastTrak100 TX2
adapter in RAID 1 mode (mirrored drives).

-Dave
http://www.burtonsys.com/

references:
http://howtos.linuxbroker.com/howtoreader.shtml?file=Linux-Promise-RAID1-HOWTO.html
http://groups.google.com/groups?q=%22Dennis+Peere%22+perfomring
http://www.mail-archive.com/xfree86@xfree86.org/msg10598.html



Relevant Pages

  • Re: XP Pro wont boot, safemode wont help, recovery console doesnt h
    ... Win XP Pro installed on a 300GB SATA drive, ... When trying to boot it gets to the standard Windows logo and after ... new install, which AFAIK would wipe the drive). ... the SATA HDD listed in Device Manager in the "Disk drives" section? ...
    (microsoft.public.windowsxp.general)
  • Re: XP HOME BOOT FAILURE
    ... I did check both hard drives using the setup CD ROM that came with the new ... downloaded and updated the driver for the original 80 GB Maxtor hard drive. ... > If you run a repair install as I initially described, ... >>> on, follow the screens. ...
    (microsoft.public.windowsxp.accessibility)
  • Re: Problems with OpenServer 6
    ... I was able to install the 7.1.4d IDE driver on my ... you should set: Configure SATA as to AHCI ... If your drives weren't in AHCI mode originally, ...
    (comp.unix.sco.misc)
  • Re: XP Pro wont boot, safemode wont help, recovery console doesnt h
    ... Win XP Pro installed on a 300GB SATA drive, ... When trying to boot it gets to the standard Windows logo and after ... new install, which AFAIK would wipe the drive). ... drives" section? ...
    (microsoft.public.windowsxp.general)
  • Re: Installing XP Pro on Hard Drive
    ... Windows 2000 Pro, but I want to install a retail version of Windows ... and set to boot from a Windows 98SE startup floppy. ... By the way, the BIOS recognizes both optical drives, and even in Device ...
    (microsoft.public.windowsxp.help_and_support)