vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I finally managed to get the latest Redhat 9.0 installed on a computer with mirrored 120 GB IDE drives on a Promise FastTrak100 TX2 RAID controller. But it wasn't easy. Frankly, I'm very disappointed with Promise. 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. First of all, despite Promise's claims to the contrary, even in the manual for the FastTrak100 controllers, they are NOT hardware RAID controllers. They are 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 MS-DOS. For everything else, special drivers are required to emulate a RAID controller in software. This is what I did. First, I downloaded the latest version of RH 9.0 from http://linuxsite.divms.uiowa.edu/red...redhat-9.0-en/ and burned it into 6 CDs (of which I've actually used just the first 3). I installed the Promise TX2 adapter, and a pair of Seagate 120 GB IDE disk drives. |
| ||||
| 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/red...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/downl...wnload_eng.asp http://www.promise.com/support/downl...ry=driver&os=3 http://www.promise.com/support/file/...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/howtor...ID1-HOWTO.html http://groups.google.com/groups?q=%2...%22+perfomring http://www.mail-archive.com/xfree86@.../msg10598.html |
| Thread Tools | |
| Display Modes | |
|
|
| ||||
| Posted By | For | Type | Date | |
| home [klimke] | This thread | Refback | 04-11-2008 11:02 AM | |