After 3 days of trial and error, I’ve managed to install Fedora Core 7 directly onto the 6 disk raid5 array of a SuperTrak SX6000. With all the threads and mailing list questions I’ve seen on the subject, I decided to contribute my experience in the hope that it may prove useful to someone else, and that when I need this information again 3 years from now, there’s a repository from which I can remember. This is a culmination of information from
http://i2o.shadowconnect.com, securemind.org, and my own aimless wanderings. Where applicable, I will link to those URLs. And yes, while it is much easier to install the OS on a non-raided drive and proceed, my masochistic self-loathing left me with the onus to persevere without a non-raided drive.
My hardware setup:
Asus motherboard w/ Duron 950 mHz
512mb RAM
(6) Seagate barracuda hdds attached to
Promise SuperTrak SX6000 w/ 128mb pc133 RAM
I should also say that my particular raid array was already partitioned from having rh9 installed on it previously. Thusly, partition 1 was an (now defunct) ext3 formatted redhat9 installation, partition 2 was SWAP, and partition 3 was an ex3 formatted space for my actual files that I mounted under /raid.
Let’s begin.
Although my system is (barely) i686, it is my understanding that FC7 has a bug(/feature?) that causes it to install i586 by default, even though it will tell you it’s i686 – it’s not. I started off by acquiring the kernel-2.6.21-1.3194.fc7.
i586 file. You can find this on any number of Linux kernel mirrors. Let me reiterate at this point that the kernel-2.6.21-1.3194.fc7.
i686 DID NOT work for my purposes because what was, in fact, being installed was i586, despite the output of ‘uname –a.’ I used the program 7-zip on a Windows machine to get inside the rpm and go to the /lib/modules/2.6.21*/kernel/drivers/messages/i2o directory and extract i2o_proc.ko and i2o_block.ko. I then hosted these files on a web-server over my LAN for later access.
The following is adapted from the HOWTO
http://www.redhat.com/archives/fedor...msg03906.html:
I booted up my would-be raid server to the FC7 install DVD. At the initial screen where it prompts for regular GUI installation, text mode, rescue, etc., I hit [TAB] and added the options ‘expert askmethod’ after the initrd line, and hit [enter]. When it prompted me for my package installation location, I chose NFS only to configure my network adapter. Once configured, it asked me for the NFS and I gave it one (that I knew it wouldn’t find). It returned saying as much and I went back to the screen for choosing package installation location, this time choosing CDROM. At this point, it’s going to say “Running anaconda...” and begin to boot up an x session. Once it takes you to the first GUI screen asking you to hit “Forward,” instead, get back to a console with [ctrl]+[alt]+[F2]. Because of your previous steps of configuring the network adapter through the NFS screen, you should now be able to access those needed i2o modules. I went to the /tmp directory and did a wget on i2o_block.ko and i2o_proc.ko across my LAN. I then did a ‘chmod u+x i2o*’ to make them both executable to the root user (not sure if this is necessary, but it matched the permissions for the other .ko files in the /tmp directory, so I did it to pacify my need for consistency). From the /tmp dir, I issued insmod commands exactly like this:
insmod –p /tmp i2o_block.ko
insmod –p /tmp i2o_proc.ko
I tried varying permutations of the insmod command, and that was the only one I got to work correctly (and I had to be within the /tmp directory for it to work). With different insmod commands, I kept getting an error about the modules having unknown public keys. I also need to point out that you have to load the modules in this order. It seems i2o_proc is dependant on i2o_block. You should now do a lsmod | grep i2o to be sure they loaded. You should see an i2o_core in the lsmod as well since it should have started automatically (at least it did for me) with the rest of the automated modules. Unfortunately, I still had no /dev listings for my new i2o creations, so we make them via:
mkdir /dev/i2o
mknod /dev/i2o/had b 80 0
mknod /dev/i2o/hda1 b 80 1
mknod /dev/i2o/hda2 b 80 2
mknod /dev/i2o/hda3 b 80 3
Remember, I had 3 partitions (old rh9 installation, swap, and plain ol’ ext3 for my fileserver files). Setup block nodes w/ mknod for as many as you need (I suppose).
At this point, you want to [alt]+F6 back into the GUI installation and hit the ‘Forward’ button. When you reach Disk Druid (or whatever hideous GUI disc partitioning tool is used in FC7), it should now scan for previous Fedora installations and pick up your raid array. Yeehaw, let’s partition and install. Unfortunately, counter indicative to what the aforementioned HOWTO (
http://www.redhat.com/archives/fedor.../msg03906.html) states, it won’t *just work* at this point – at least it didn’t for me. The kernel you just installed has the i2o configured as loadable modules, but your system can’t boot without i2o being integrated into the kernel (can’t boot from /dev if you can’t map to /dev because you can’t access modules on a /dev device not being loaded yet – cart<->horse).
So back to the FC7 boot DVD we go. Again, append ‘expert askmethod’ as boot options as peviously done and configure your network adapter in the same way. Drop yourself to a shell console in [alt]+F2 again. We’re going to wget the i2o_block.ko and i2o_proc.ko modules again and load them the same as last time. Then we’re going to make our device block nodes again with mknod setting up the primary linux partition we just created and installed on in the last step. Now we want to mount the linux partition (eg: mount /dev/i2o/hda1 /mnt/linux). Once we have it mounted we want to cd to /mnt/linux and chroot to /mnt/linux. Boom, /mnt/linux is now / and we have network access.
At this point, I followed verbatim the kernel recompiling information found at
http://www.securemind.org/v4/?p=118. When I did the ‘make menuconfig’ portion, I went to i2o and configured them all (but the i2o_scsi, I believe) to be built-in, instead of modules. Oh, I also removed SMP, because my Duron barely single-processes. I finished recompiling, ran the mkinitrd command the instructions provide and edited my grub menu.lst and rebooted. Upon reboot, it fsck’d my partitions and booted up like it couldn’t be happier. Yippee-ki-yay mother-fsck’er.