<?xml version="1.0"?>
<article><artheader><title>Linux ATA RAID HOWTO</title><author><firstname>Murty</firstname><surname>Rompalli</surname><affiliation><address format="linespecific">           <email>murty@solar.m u r t y.n e t</email>
        </address></affiliation></author><revhistory><revision><revnumber>2.0</revnumber><date>2002-05-10</date><authorinitials>mr</authorinitials><revremark>            Major enhancements
         </revremark></revision><revision><revnumber>1.3</revnumber><date>2002-05-07</date><authorinitials>jyg</authorinitials><revremark>            format fixes
         </revremark></revision><revision><revnumber>1.2</revnumber><date>2002-04-30</date><authorinitials>mr</authorinitials><revremark>            Minor fixes
         </revremark></revision><revision><revnumber>1.1</revnumber><date>2002-04-28</date><authorinitials>ldl</authorinitials><revremark>            Some minor changes and sgml-improvements
         </revremark></revision><revision><revnumber>1.0</revnumber><date>2002-04-26</date><authorinitials>mr</authorinitials><revremark>            Initial Release
         </revremark></revision></revhistory><pubdate>April 26, 2002</pubdate><abstract><indexterm significance="normal"><primary>ataraid</primary></indexterm><para>	RAID is not limited to expensive SCSI disks anymore as more and more motherboard manufacturers are introducing motherboards with onboard RAID support for inexpensive IDE disks, known as ATA RAID. Promise Technolgy and HighPoint are two companies that dominate this ATA RAID market. This HOWTO document explains how to install Linux on an Intel Pentium compatible computer with an ATA RAID Controller (onboard chip or seperate card), single or  multiple processors and atleast two hard disks. Currently, this document covers installing RedHat Linux 7.2 with Promise FastTrack ATA RAID Controller only.</para></abstract></artheader><sect1 id="intro"><title>Introduction</title><indexterm significance="normal"><primary>ataraid!introduction</primary></indexterm><para>The goal of this HOWTO document is to explain how to setup RAID 1 (mirroring) with the two hard disks and install bootable RedHat Linux Operating System on the mirror device. This document discusses both methods of achieving this goal: 1. Using Promise supplied driver 2. Using Linux native RAID. If you choose the first method (using Promise supplied driver), you must use the Kernel 2.4.7-10 that comes with RedHat 7.2 CD. If you choose the second method, you can upgrade the kernel to the latest kernel (2.4.18). This document does not discuss Striping or other disk configurations, although the author believes that this document might help setup those configurations.  This document does not yet cover: 1. Installation using GRUB instead of LILO and 2. Installation with Latest development kernels (2.5.x).</para><para>   First of all we need a bit of legalese. Recent development
   shows it is quite important.
  </para><sect2 id="copyright"><title>Copyright Information</title><para>© 2002 Murty Rompalli</para><para>    This document is copyrighted © 2002 Murty Rompalli and is
    distributed under the terms of the <ulink url="http://www.gnu.org/copyleft/fdl.txt">GNU Free Documentation License</ulink> and additional terms described below.</para><para>    This Linux HOWTO document may
    be reproduced and distributed in whole or in part, in any medium
    physical or electronic, as long as this copyright notice is
    retained on all copies. Commercial redistribution is allowed and
    encouraged; however, the author would like to be notified of any
    such distributions.
   </para><para>    All translations, derivative works, or aggregate works
    incorporating this Linux HOWTO document must be covered under this
    copyright notice. That is, you may not produce a derivative work
    from this HOWTO document and impose additional restrictions on its
    distribution. Exceptions to these rules may be granted under
    certain conditions; please contact the Linux HOWTO coordinator at
    this address <email>linux-howto@metalab.unc.edu</email>.
   </para><para>    In short, the author wishes to promote dissemination of this
    information through as many channels as possible but 
    wish to retain copyright on this HOWTO document, and would like to
    be notified of any plans to redistribute this HOWTO document.
   </para></sect2><sect2 id="disclaimer"><title>Disclaimer</title><para>    No liability for the contents of this documents can be accepted.
    Use the concepts, examples and other content at your own risk.
    As this is a new edition of this document, there may be errors
    and inaccuracies, that may of course be damaging to your system.
    Proceed with caution, and although this is highly unlikely,
    the author does not take any responsibility for that.
   </para><para>    All copyrights are held by their by their respective owners, unless
    specifically noted otherwise.  Use of a term in this document
    should not be regarded as affecting the validity of any trademark
    or service mark.
   </para><para>    Naming of particular products or brands should not be seen 
    as endorsements.
   </para><para>    You are strongly recommended to take a backup of your system 
    before major installation and backups at regular intervals.
   </para></sect2><sect2 id="newversions"><title>New Versions</title><indexterm significance="normal"><primary>ataraid!news</primary></indexterm><para>The newest version of this HOWTO will always be made available on my website <ulink url="http://www.murty.net/ataraid/">http://www.murty.net/ataraid/</ulink>, or you may contact me directly at <email>murty at solar . murty . net</email> to check if there is a newer version.
   </para><para>Currently, this document is available in the following formats:</para><para>   <itemizedlist><listitem><para>      <ulink url="ataraid.html">HTML</ulink>.
     </para></listitem><listitem><para>       <ulink url="ataraid.txt">plain text</ulink>.
     </para></listitem><listitem><para>       <ulink url="ataraid.pdf">Adobe PDF</ulink>.
     </para></listitem><listitem><para>      <ulink url="ataraid.ps.gz">gzipped 
       postscript (US letter format)</ulink>.
     </para></listitem><listitem><para>      <ulink url="ataraid.sgml">SGML source</ulink>.
     </para></listitem><listitem><para>      <ulink url="ataraid.dvi.gz">gzipped DVI file</ulink>.
     </para></listitem><listitem><para>      <ulink url="ataraid.tex.gz">gzipped TeX (to be used with jadetex)</ulink>.
     </para></listitem></itemizedlist>
   </para><para>    Note that paper sizes vary in the world, A4 and US letter differ 
    significantly. You might also wish to consider using the 
    <emphasis>universal format</emphasis> (8.27x11in; 210x279mm). 
   </para></sect2><sect2 id="credits"><title>Credits</title><para>    <emphasis>Your name here, if you contribute :)
    </emphasis>
   </para><para>Luc de Louw entluc at delouw.chent corrected errors in my SGML source.</para><para>Joy Y Goodreau entjoyg at us.ibm.coment corrected errors in my SGML source.</para><para>In this version I have the pleasure of acknowledging:</para><para>Alain Portal entalain.portal at free.frent, Service Commun de Microscopie Electronique for proof-reading and correcting mistakes.</para></sect2><sect2 id="feedback"><title>Feedback</title><para>    Feedback is most certainly welcome for this document. Without
    your submissions and input, this document wouldn't exist. Please
    send your additions, comments and criticisms to the following
    email address : <email>murty at solar. murty . net</email>.
   </para></sect2><sect2 id="translations"><title>Translations</title><para>Please help International users who do not speak English. You are encouraged to translate this document to a foreign language. Please notify the author if you translated or would like to translate this document into a foreign language. The following translation efforts are already under way.
   </para><para>    <itemizedlist><listitem><para>	French Translation is coming soon. Thanks go to Alain Portal.
      </para></listitem></itemizedlist>
   </para></sect2></sect1><sect1 id="requirements"><title>Requirements</title><para>This section lists what items are required before you start installing on your computer.
  </para><para>    <itemizedlist><listitem><para>Two blank floppies, DOS formatted. On a working linux computer, you can type <command moreinfo="none">mkfs.msdos /dev/fd0</command></para></listitem><listitem><para>Red Hat Linux 7.2 CDs 1 and 2 (3 and 4 contain SRPMS and are not required) 
     </para></listitem><listitem><para>Internet connection available 
     </para></listitem><listitem><para>Your computer with working CD, floppy,10/100 ethernet card support 
     </para></listitem><listitem><para>Patience
     </para></listitem></itemizedlist>
  </para></sect1><sect1 id="preparation"><title>Prepare Promise Driver Floppy</title><para><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Download appropriate driver from one of the two sites below and save the driver on one of the blank floppies. You can do this on any computer connected to Internet. 
<itemizedlist><listitem><para><ulink url="http://www.promise.com.tw/support/file/rhup-ftb14.tgz">Driver for Single Processor Machine</ulink></para></listitem><listitem><para><ulink url="http://www.promise.com.tw/support/file/rhsmp-ft12014.tgz">Driver for Multiple Processor Machine</ulink></para></listitem></itemizedlist></para></listitem><listitem><para>Insert the floppy with the driver tar ball into a working Linux computer and type:</para><para><screen format="linespecific">mount /dev/fd0 /mnt/floppy 
cd /mnt/floppy 
cp rhsmp-ft12014.tgz /tmp 
tar xvzf /tmp/rhsmp-ft12014.tgz 
cd / 
umount /mnt/floppy</screen></para></listitem><listitem><para>Label the floppy »Promise FastTrack driver« and set it aside.</para></listitem></orderedlist></para></sect1><sect1 id="preparing"><title>Preparing RedHat 7.2 CDs</title><para><note><title>NOTE</title><para>If you already have Red Hat Linux 7.2 CDs 1 and 2, skip this step. Otherwise, read this step to learn how you can get them for free.</para></note></para><para><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Logon to a Windows computer that has a CD Writer drive installed and setup properly. Insert a blank CD-R into the CD Writer.</para></listitem><listitem><para>Point your browser to the Red Hat Web site:  <ulink url="ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/iso/i386/">ftp://ftp.redhat.com/pub/redhat/linux/7.2/en/iso/i386/</ulink>. </para></listitem><listitem><para>Browse and locate <filename moreinfo="none">enigma-disc1.iso</filename> (the first disk of Red Hat 7.2), and save this file to your Windows desktop.</para></listitem><listitem><para>Right-click on the iso image created on your desktop and choose "Record to CD" It will then write the iso image onto your CD-R and create disk-1. </para></listitem><listitem><para>Repeat the procedure for the second iso file named <filename moreinfo="none">enigma-disc2.iso</filename> on <ulink url="ftp://ftp.redhat.com/pub">ftp.redhat.com/pub</ulink>. </para></listitem><listitem><para>Test to make sure your CD-Rs are indeed readable. If you click on »My Computer« and click on the CD Writer Drive icon, you should be able to browse the contents of the CD-R.</para></listitem><listitem><para>Label the CD-Rs properly: RH 7.2 disk-1 and RH 7.2 disk-2</para></listitem></orderedlist></para></sect1><sect1 id="installing"><title>Installing Red Hat 7.2</title><para>Once you have created your CDs, you are ready to begin installing Red Hat 7.2 on your Linux system.
	<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Restart the computer and press <keycap moreinfo="none">Cntrl-F</keycap> when you see FastTrack BIOS prompt on screen. This will take you into the Promise FastTrack BIOS.</para></listitem><listitem><para>Inside this BIOS, choose "delete array," "define array," and "choose Mirror."</para></listitem><listitem><para>Press <keycap moreinfo="none">Cntrl-Y</keycap> to save. </para></listitem><listitem><para>Choose »Create Only« and <keycap moreinfo="none">ESC</keycap> to reboot. When it reboots, you should see that Promise FastTrack now has 1x2 RAID Mirror defined over your two hard disks connected to FastTrack controller.</para></listitem><listitem><para>Insert your Red Hat 7.2, disk-1 into your CD-ROM and reboot.</para></listitem><listitem><para>At the boot-prompt, type:</para><para><screen format="linespecific">linux noprobe</screen></para></listitem><listitem><para>Now, installation will begin. Choose »Add device« and scroll through the list of available drivers to see if Promise FastTrack is listed. If it is not listed, press <keycap moreinfo="none">F2</keycap> to load external driver from a floppy. Insert your Promise FastTrack driver floppy and hit "OK."</para></listitem><listitem><para>Continue with installation. Choose only ext3 type partitions for now. You can make ext2 partions at the very end, if you really need them. </para></listitem><listitem><para>When the system you to create Boot Floppy, insert a blank floppy disk. The Red Hat installation program will create a Boot Floppy disk.<note><title>NOTE</title><para>Please do not click on »Skip boot disk creation«. If you skip this step and do not create a Boot Floppy disk, you will be very sorry later.</para></note></para></listitem><listitem><para>When the install asks you to choose Boot loader configuration, please choose »LILO only«. Do not choose »GRUB« as your boot loader.</para><para>When the installation is finished, you will see »Congratulations« screen.</para></listitem><listitem><para>Press <keycap moreinfo="none">Cntrl-ALT-F2</keycap> to switch to <filename moreinfo="none">tty2</filename>.</para></listitem><listitem><para>At the shell prompt, type:</para><para><screen format="linespecific">cd /mnt/sysimage/lib/modules/2.4.7-10/kernel/drivers/scsi</screen></para></listitem><listitem><para>Type <command moreinfo="none">ls</command> and make sure the file <filename moreinfo="none">ft.o</filename> exists. If not, you are going to need to manually install the module <filename moreinfo="none">ft.o</filename> as follows:
		<orderedlist numeration="loweralpha" inheritnum="ignore" continuation="restarts"><listitem><para>Make sure your Driver floppy is mounted. Go into the floppy and type</para><para> 
<screen format="linespecific">mv module.cgz /tmp 
cd /tmp 
gzip -dc module.cgz | cpio -idumv </screen></para></listitem><listitem><para>Now, you will see a bunch of directories created under <filename class="directory" moreinfo="none">/tmp</filename>.</para><para> 
<screen format="linespecific">cd /tmp/`uname -r` 
cp ft.o /mnt/sysimage/lib/modules/`uname -r`/kernel/drivers/scsi</screen></para></listitem><listitem><para>At the shell prompt, type:</para><para><screen format="linespecific">less /mnt/sysimage/etc/lilo.conf</screen></para><para>Check to see that the <filename moreinfo="none">lilo.conf</filename> looks good. Especially, it should have the <filename moreinfo="none">initrd=</filename> line and the corresponding <filename moreinfo="none">initrd.img</filename> file must exist in <filename moreinfo="none">/mnt/sysimage/boot</filename>. If not, you are going to create it manually as follows:</para><para><screen format="linespecific">/mnt/sysimage/usr/sbin/chroot /mnt/sysimage /sbin/mkinitrd \
--preload jbd \ 
--preload ext3 \ 
--preload scsi_mod \ 
--with ft \ 
/boot/initrd.img 2.4.7-10</screen></para></listitem></orderedlist></para></listitem><listitem><para>Now, remove the floppy and the CD, and reboot. At this point, pray that your computer will boot without any problems.</para></listitem><listitem><para>If it does not boot, insert your Boot Floppy and reboot and login; And then repair as follows:
		<orderedlist numeration="loweralpha" inheritnum="ignore" continuation="restarts"><listitem><para>Make sure <filename moreinfo="none">/boot/initrd.img</filename> exists. Make sure <filename moreinfo="none">/lib/modules/2.4.7-10/kernel/drivers/scsi/ft.o</filename> exists (If not you have to manually fix these issues as explained above)</para></listitem><listitem><para> Type: <command moreinfo="none">/sbin/lilo</command></para></listitem><listitem><para>Now, remove floppy and reboot. Your machine should boot into your new machine now using Promise Driver.</para></listitem></orderedlist></para></listitem><listitem><para> Type <command moreinfo="none">df -k</command> and you should see your hard disks as <filename moreinfo="none">/dev/sdaX</filename> instead of <filename moreinfo="none">/dev/hdaX</filename>. This is because the Promise Driver is actually a special type of Software Emulation RAID, not exactly Hardware RAID. (Promise RAID works through a BIOS Hack). </para></listitem></orderedlist>
</para><para>If your machine is SMP, you will have to manually create <filename moreinfo="none">initrdsmp.img</filename>, when you boot into Uniprocessor Kernel as shown below, and edit <filename moreinfo="none">/etc/lilo.conf</filename> and then test to see you can boot into SMP system.
	<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>When you boot your machine into <filename moreinfo="none">2.4.7-10</filename> uniprocessor kernel, type the following to make <filename moreinfo="none">initrdsmp.img</filename> to be used for <filename moreinfo="none">2.4.7-10smp</filename> kernel:</para><para><screen format="linespecific">/sbin/mkinitrd \
--preload jbd \ 
--preload ext3 \ 
--preload scsi_mod \ 
--with ft \ 
/boot/initrdsmp.img 2.4.7-10smp</screen>
<note><title>NOTE</title><para>If you are tired of remembering the command to create initrd files, dowload my <ulink url="files/geninitrd.txt">geninitrd</ulink> script and keep it handy. </para></note>
	</para></listitem><listitem><para>Adjust your <filename moreinfo="none">/etc/lilo.conf</filename> accordingly for <filename moreinfo="none">2.4.7-10smp</filename> (the SMP kernel section), type <command moreinfo="none">/sbin/lilo</command> and reboot into the SMP kernel. <ulink url="files/lilo.conf.txt">Here is how <filename moreinfo="none">/etc/lilo.conf</filename> should look like.</ulink></para></listitem></orderedlist></para><para>At this point, you have a working Red Hat 7.2 machine with SMP support, if applicable. If you are happy with the fact that you are running a fake Hardware RAID from Promise FastTrack using SCSI Emulation, then read no further.</para><para>Because Promise Driver is a SCSI emulation, it puts a lot of load on CPU(s). Read on if you want to enable true Linux native RAID and get rid of this Promise SCSI emulation.</para></sect1><sect1 id="nativeraid"><title>Installing Native Linux RAID</title><para>The first step you want to take is to configure your networking and connect your computer to Internet, which is still running under Promise Driver SCSI emulation. Next you will install native Linux RAID.</para><para>
	<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Go to <ulink url="http://www.kernel.org/">www.kernel.org</ulink> and download latest kernel <filename moreinfo="none">2.4.18.tar.gz</filename>.</para></listitem><listitem><para>Configure your kernel:</para><para><screen format="linespecific">cd /usr/src/ 
tar xvzf linux-2.4.18.tar.gz 
cd linux                 # cd to kernel source directory just created by tar
cp config.txt .config    #(See NOTE below to find out where to get config.txt)
make menuconfig</screen>
	<note><title>NOTE</title><para>You can download a working <filename moreinfo="none">config.txt</filename> file <ulink url="files/config.txt">HERE</ulink>. You can, of course, modify this to suit your needs either directly in a text editor or by typing <command moreinfo="none">make menuconfig</command> as explained above. It is easy to make mistakes if you are editing <filename moreinfo="none">.config</filename> directly in vi or emacs. Therefore, it is recommended to use Menu Interface by typing <command moreinfo="none">make menuconfig</command>.</para></note></para></listitem><listitem><para>Enable all the following in the kernel statically (NOT as modules):</para><para><screen format="linespecific">  ATA/IDE/MFM/RLL Support --ent
	ent*ent ATA/IDE/MFM/RLL Support
	IDE/ATA/ATAPI Block Devices --ent	
		ent*ent Enhanced ATA/IDE/MFM/RLL disk/cdrom/tape/floppy support
		ent*ent Include IDE/ATA-2 Disk Support
		[*] Use multi-mode by default
		Include IDE/ATAPI CDROM support
		[*] Generic PCI IDE chipset support
			[*] Sharing PCI IDE interrupt support
			[*] Generic PCI Bus master DMA support
			[*] Use PCI DMA by default when available
			[*] Intel PIIXn chipset support
				[*] PIIXn tuning support
		[*] Promise PDC202{46|62|65|67|68} support
			[*] Special UDMA Feature
			[*] Special FastTrack Feature
		[*] VIA 82CXXX chipset support
		ent*ent Support for IDE RAID controllers
			ent*ent Support Promise Software RAID (fasttrack)</screen></para></listitem><listitem><para>After you have enabled static features as shown above, make any more changes that you would like to make to suit your environment.</para></listitem><listitem><para>Save the kernel configuration. It is saved to <filename moreinfo="none">.config</filename> in the current directory. Please back up this file. If you dont do so, you will regret it later. Copy <filename moreinfo="none">.config</filename> file in a blank floppy or in <filename moreinfo="none">/root</filename></para></listitem><listitem><para>Build and install the kernel like you normally do, by typing:</para><para><screen format="linespecific">make dep ; make clean ; make entent make install 
make modules entent make modules_install</screen></para></listitem></orderedlist></para><para>Look at <filename moreinfo="none">/etc/lilo.conf</filename> to make sure new lines are added to boot your new kernel 2.4.18. Note that there should not be an <option>initrd=</option> line for this new kernel in <filename moreinfo="none">/etc/lilo.conf</filename>. That is, our new kernel will boot itself without depending on a <filename moreinfo="none">initrd.img</filename> unlike your current 2.4.7-10 kernel.</para><para>Now adjust <filename moreinfo="none">/etc/lilo.conf</filename> as follows:
	<orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Locate the root=/dev/sdaX line for the new kernel in <filename moreinfo="none">/etc/lilo.conf</filename>. Change this to <filename moreinfo="none">root=/dev/ataraid/d0pX</filename> where <filename moreinfo="none">X</filename> is a number <filename moreinfo="none">1</filename> through <filename moreinfo="none">16</filename>. Save your changes.</para></listitem><listitem><para>Type:</para><para> 
<screen format="linespecific">/sbin/lilo</screen></para></listitem><listitem><para>If you chose any ext2 partitions during installation, you should comment them out in <filename moreinfo="none">/etc/fstab</filename> for now.(Best thing is: Forget ext2 in this whole process)</para></listitem><listitem><para>Remove all floppies and CDs, and reboot by typing:</para><para> 
<screen format="linespecific">sync;sync;reboot</screen></para></listitem><listitem><para>At the LILO prompt, type your new kernel lable corresponding to <filename moreinfo="none">2.4.18</filename> Your computer should then boot into your new kernel.</para></listitem><listitem><para>Login and type <command moreinfo="none">df -k</command> to make sure you see <filename moreinfo="none">/dev/ataraid/d0X</filename> entries instead of earlier <filename moreinfo="none">/dev/sdaX</filename> entries.

<note><title>NOTE</title><para>You may see some errors related to mounting swap device at the time of booting into new kernel. These are harmless. You should edit <filename moreinfo="none">/etc/fstab</filename> to change any <filename moreinfo="none">sdaX</filename> entries to <filename moreinfo="none">ataraid/d0pX</filename> entries.</para></note>
	</para></listitem><listitem><para>Now, connect your computer to Internet and download <filename moreinfo="none">lilo-22.tar.gz</filename> (the latest version of lilo program) from the Internet.</para></listitem><listitem><para>Remove the existing lilo on your computer by typing: <command moreinfo="none">rpm -e --nodeps lilo</command></para></listitem><listitem><para>Install new version of lilo as follows:</para><para><screen format="linespecific">tar xvzf lilo-22.tar.gz
cd lilo-22	# cd to lilo source directory just created by tar 
./QuickInst.sh </screen></para></listitem><listitem><para>Say "Yes" to questions the system will ask  you.</para></listitem><listitem><para>Ignore any errors except if <filename moreinfo="none">/sbin/lilo</filename> is not created.</para></listitem><listitem><para>Adjust <filename moreinfo="none">/etc/lilo.conf</filename> as follows:
		<itemizedlist><listitem><para>Replace <filename moreinfo="none">linear</filename> by <filename moreinfo="none">lba32</filename></para></listitem><listitem><para>Delete line "<filename moreinfo="none">compact</filename>"</para></listitem><listitem><para>Change <filename moreinfo="none">vga=</filename> line to <filename moreinfo="none">vga=normal</filename></para></listitem><listitem><para>Change <filename moreinfo="none">boot=/dev/sda</filename> line to <filename moreinfo="none">boot=/dev/ataraid/dN</filename> (where <filename moreinfo="none">N</filename> is the partition number on which your root file system exists. Type <command moreinfo="none">df -k /</command> to find out your root partition number).</para></listitem><listitem><para>Make sure that <filename moreinfo="none">default=linux-2.4.18</filename> (where <filename moreinfo="none">linux-2.4.18</filename> is the label given to boot your new kernel: <filename moreinfo="none">2.4.18</filename>)</para></listitem></itemizedlist></para></listitem><listitem><para>Save changes to the file and type: <command moreinfo="none">/sbin/lilo</command></para></listitem><listitem><para>Reboot the system and cross your fingers.</para></listitem></orderedlist></para><para><ulink url="files/lilo.conf2.txt">Here is how the final <filename moreinfo="none">/etc/lilo.conf</filename> should look like.</ulink></para><para>If everything comes up without any errors, time to celebrate!!</para></sect1><sect1 id="existing"><title>Installing on an existing Linux system</title><para>This section explains how to install Linux Native ATA RAID on non-OS disks you may have on a running Linux machine. Non-OS disks are those which do not contain any Linux OS partitions such as <filename moreinfo="none">/</filename>, <filename moreinfo="none">/usr</filename>, <filename moreinfo="none">/var</filename>, <filename moreinfo="none">/boot</filename>.  In other words, we have a working Linux machine with two free disks and we want to setup ATA RAID mirror (raid 1) on those two disks. When we save important data on such a mirror device, our data is protected. Ofcourse, like any other RAID 1, we will experience improved read speeds while reading the data and slightly decreased write speeds while modifying or adding new data to the mirror device. Therefore, using RAID 1 for data disks is recommended if the data disk is more frequently read than written to.  A web server hosting rarely changing web sites is a good example where web content is rarely modified but very frequently accessed by users.</para><para>Here are the steps to install non-OS ATA RAID if your RAID chip is from Promise Technology:</para><para><itemizedlist><listitem><para>Find out IO address numbers and IRQ number(s) for your Promise RAID chip/card.</para></listitem><listitem><para>Edit <filename moreinfo="none">/etc/lilo.conf</filename> and insert appropriate <emphasis>Append Line</emphasis></para></listitem><listitem><para>Enable ataraid support either by automatically loading ataraid module when your Linux machine starts up or by statically building ataraid support into your kernel</para></listitem></itemizedlist></para><sect2 id="appendline"><title>Append Line</title><para>For the purpose of understanding various tasks involving Promise FastTrack RAID such as upgrading or troubleshooting, we introduce a noun: <emphasis>Append Line</emphasis></para><para>All the <filename moreinfo="none">ide</filename> options you pass at the LILO <prompt moreinfo="none">boot:</prompt> prompt at the time of booting, when put together as a string, make up the <emphasis>Append Line</emphasis>.  All the <filename moreinfo="none">ide</filename> options in double quotes after <filename moreinfo="none">append=</filename> keyword in <filename moreinfo="none">/etc/lilo.conf</filename> also make up the <emphasis>Append Line</emphasis>.</para><para>For example, if you type</para><para> 
<command moreinfo="none">linux-new ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none nousb expert root=/dev/hda3</command></para><para>at <prompt moreinfo="none">boot:</prompt> prompt at the time of booting your Linux computer, then <emphasis>Append Line</emphasis> is the string</para><para><emphasis>ide2=0x0001,0x0009,9 ide3=0x2000,0x2009,10 ide4=none</emphasis>.</para><para>Similarly, if your <filename moreinfo="none">/etc/lilo.conf</filename> has the following section, your <emphasis>Append Line</emphasis> is</para><para><emphasis>ide2=0x9400,0x9002 ide3=0x8800,0x8402</emphasis>.</para><para><screen format="linespecific">image=/boot/vmlinuz-2.4.9-10
	label=linuxold
	read-only
	root=/dev/hde9
	append="nousb ide2=0x9400,0x9002 ide3=0x8800,0x8402"
	initrd="initrd.img"</screen></para><para>When we experience problems booting a Linux machine with RAID, we may have to use an appropriate <emphasis>Append Line</emphasis>. Therefore, it is important to determine and write down the <emphasis>Append Line</emphasis>. This will help you fix your problems later or upgrade your kernel smoothly or add/remove additional hard disks.</para></sect2><sect2 id="determine"><title>Determining the Append Line</title><para>To determine the correct <emphasis>Append Line</emphasis>, we should first know how all our <filename moreinfo="none">ide</filename> devices are connected. IDE devices can be hard disks, ATAPI CDROM(s) <emphasis>etc</emphasis>. Once we determine the <emphasis>Append Line</emphasis>, we can append it to the <prompt moreinfo="none">boot:</prompt> options (at the time of booting) or we can alternatively assign it as a string value to the append paramater in <filename moreinfo="none">/etc/lilo.conf</filename>. Unless you love to remember complicated <prompt moreinfo="none">boot:</prompt> options and type them at boot time every time, you should choose the second method, <emphasis>i.e.</emphasis>, insert it into <filename moreinfo="none">/etc/lilo.conf</filename> . You can do so by inserting <filename moreinfo="none">append="</filename><emphasis>Your Append Line Here</emphasis><filename moreinfo="none">"</filename>, saving file and then activating new <filename moreinfo="none">/etc/lilo.conf</filename> by running the command <command moreinfo="none">/sbin/lilo</command>.</para><para>For the purpose of understanding better, lets say that your <filename moreinfo="none">ide</filename> devices are as follows:</para><para><itemizedlist><listitem><para><filename moreinfo="none">ide0</filename>: <filename moreinfo="none">hda</filename> , <filename moreinfo="none">hdb</filename> (hard disks)</para></listitem><listitem><para><filename moreinfo="none">ide1</filename>: <filename moreinfo="none">hdc</filename> , <filename moreinfo="none">hdd</filename> (hard disks or other ide devices like CDROM)</para></listitem><listitem><para><filename moreinfo="none">ide2</filename>: <filename moreinfo="none">hde</filename> (first free disk)</para></listitem><listitem><para><filename moreinfo="none">ide3</filename>: <filename moreinfo="none">hdg</filename> (second free disk)</para></listitem></itemizedlist></para><para>The two free disks above (<filename moreinfo="none">hde</filename> and <filename moreinfo="none">hdg</filename>) are the ones we would like to setup as RAID 1 to create <filename moreinfo="none">/dev/ataraid/d0</filename> raid device. Note that we do not have <filename moreinfo="none">hdf</filename> or <filename moreinfo="none">hdh</filename> because that is how we used the IDE/RAID ports on Promise chip. It is not a good idea to connect two hard disks to the same Promise controller IDE port. In the above example, we used Primary Master and Secondary Master connections on the Promise Technology card.</para><para>If you do not know how various <filename moreinfo="none">ide</filename> devices are connected in your computer, take a look at <filename moreinfo="none">/proc/devices</filename> and <filename moreinfo="none">/proc/ide/*</filename>. You can also carefully go through boot log file, <filename moreinfo="none">/var/log/bootlog</filename> (or type <command moreinfo="none">dmesg | more</command> right after your Linux system boots) to find your <filename moreinfo="none">ide</filename> devices. Now type <command moreinfo="none">less /proc/pci</command> and locate appropriate information about Promise Technology. In the output of <command moreinfo="none">less /proc/pci</command>, you can see somewhere information about your Promise chip, something like:</para><para><screen format="linespecific"> Bus  0, device  17, function  0:
    Unknown mass storage controller: Promise Technology Unknown device (rev 2).
      Vendor id=105a. Device id=d30.
      Medium devsel.  IRQ 10.  Master Capable.  Latency=32.  
      I/O at 0x9400 [0x9401].
      I/O at 0x9000 [0x9001].
      I/O at 0x8800 [0x8801].
      I/O at 0x8400 [0x8401].
      I/O at 0x8000 [0x8001].
      Non-prefetchable 32 bit memory at 0xd5800000 [0xd5800000].</screen></para><para>From this output, we learn that our Promise Technology card uses IRQ 10 for both <filename moreinfo="none">ide</filename> ports (<filename moreinfo="none">ide2</filename> and <filename moreinfo="none">ide3</filename>). Using same IRQ is perfectly alright as long as your kernel supports PCI IRQ Sharing. By default, our Linux kernel is configured to support PCI IRQ sharing. From the above output, we also learn that our Promise Technology card uses various IO addresses. For the purpose of identifying Promise Technology disks properly at boot time, we only want the IRQ number(s) and the first four IO Address numbers outside  [ ]. Write down on a piece of paper this information. In this case, from the above output:</para><para><screen format="linespecific">IRQ<subscript>1</subscript> = 10
IRQ<subscript>2</subscript> = 10
IO<subscript>1</subscript> = 0x9400
IO<subscript>2</subscript> = 0x9000
IO<subscript>3</subscript> = 0x8800
IO<subscript>4</subscript> = 0x8400</screen></para><para>Now, we have to evaluate the following to obtain the correct <emphasis>Append Line</emphasis>. Then either specify this <emphasis>Append Line</emphasis> at boot time or specify it in lilo configuration file.</para><para><screen format="linespecific">ideX=IO<subscript>1</subscript>,IO<subscript>2</subscript>+0x0002,IRQ<subscript>1</subscript> ideY=IO<subscript>3</subscript>,IO<subscript>4</subscript>+0x0002,IRQ<subscript>2</subscript>
where ideX and ideY are the two IDE ports of Promise card our free disks are using.</screen></para><para>In our example, the above <emphasis>Append Line</emphasis> will become:</para><para><filename moreinfo="none">ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10</filename></para><para>If, for example, we want to boot kernel version 2.4.18, labelled <filename moreinfo="none">linux</filename> according to <filename moreinfo="none">/etc/lilo.conf</filename>, then we specify our <emphasis>Append Line</emphasis> in one of the following two methods:</para><para><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>At boot time<screen format="linespecific"><prompt moreinfo="none">boot: </prompt><userinput moreinfo="none">linux ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10</userinput></screen>If you choose this method, you should manually type the <emphasis>Append Line</emphasis> after the kernel label <filename moreinfo="none">linux</filename> everytime you boot your Linux machine.</para></listitem><listitem><para>In <filename moreinfo="none">/etc/lilo.conf</filename><screen format="linespecific">image=/boot/vmlinuz-2.2.18
	label=linux
	read-only
	root=/dev/hda1
	append="ide2=0x9400,0x9002,10 ide3=0x8800,0x8402,10"</screen>If you choose this method, you have to run lilo once to activate changes by typing <command moreinfo="none">/sbin/lilo</command>. And you do not have to type anything extra at boot time.</para></listitem></orderedlist></para></sect2><sect2 id="settingup"><title>Setting Up RAID 1</title><para>If you want to setup RAID 1 using Promise Technology proprietary driver (<filename moreinfo="none">ft.o</filename>), you can download Promise Driver (<filename moreinfo="none">ft.o</filename>) into <filename moreinfo="none">/lib/modules/kernel-version</filename> and load the module by typing <command moreinfo="none">modprobe -k ft</command>. You should then be able to access your new raid device as <filename moreinfo="none">/dev/sdc</filename> or something like that. But if it does not work, then determine your <emphasis>Append Line</emphasis> and add it to <filename moreinfo="none">/etc/lilo.conf</filename>. If you are setting up RAID on an existing Linux system and are using either Promise Technology <filename moreinfo="none">ft</filename> driver or Linux native <filename moreinfo="none">ataraid</filename> driver, then use of <emphasis>Append Line</emphasis> in <filename moreinfo="none">/etc/lilo.conf</filename> is strongly recommended. Once you reboot with your new <filename moreinfo="none">/etc/lilo.conf</filename> that contains <emphasis>Append Line</emphasis>, you can load either driver (<filename moreinfo="none">ft.o</filename> from Promise Technology or <filename moreinfo="none">ataraid.o</filename>, the Linux Native RAID module) to enable RAID except when your kernel has built-in ataraid support in which case you do not have to load ataraid module.</para><para>As Linux Native RAID is recommended, let us discuss that in detail. To setup Linux Native RAID on an existing Linux machine, insert <emphasis>Append Line</emphasis> into <filename moreinfo="none">/etc/lilo.conf</filename> as explained above.
Now, activate changes by typing <command moreinfo="none">/sbin/lilo</command>. Then reboot your computer. After your computers reboots, load ataraid module manually if your kernel does not have ataraid built-in support or <filename moreinfo="none">ataraid.o</filename> module failed to load for some reason. If you compiled your kernel with static ataraid support (ataraid not as module), then you can start formatting and using your mirror disk <filename moreinfo="none">/dev/ataraid/d0</filename> right away. </para><para>But if you compile ataraid as a seperate module, then type <command moreinfo="none">lsmod</command> and see ataraid is listed. If not, manually load it by typing <command moreinfo="none">modprobe -k ataraid</command>. If you dont see any errors, then you can start using your mirror disk <filename moreinfo="none">/dev/ataraid/d0</filename> right away. Format it, mount it and use it just like you normally do. </para><para>The fact that you can use <filename moreinfo="none">/dev/ataraid/d0</filename> implies that you are successful in your mission. Please do not access <filename moreinfo="none">/dev/hde</filename>, <filename moreinfo="none">/dev/hdg</filename> or any of their partitions directly, although Linux will let you do that. Once you make a mirror device from two disks, you should always access the mirror device and not the disks directly.</para></sect2></sect1><sect1 id="upgrading"><title>Upgrading Kernel</title><para>Read this section carefully before you plan to upgrade kernel on your Linux machine with Promise FastTrack RAID. Unless you are not using Promise FastTrack at all in any way, you need this information to avoid problems.</para><para>Always backup your data before kernel upgrade. Also backup <filename moreinfo="none">/etc/fstab</filename>, <filename moreinfo="none">/etc/lilo.conf</filename>, <filename moreinfo="none">/boot/vmlinuz-currentversion</filename> and  <filename moreinfo="none">/boot/initrd.img</filename> (if you use initrd). When you upgrade your kernel, do not delete old kernel or its dependent files in <filename moreinfo="none">/boot</filename> and do not delete the lines corresponding to it in <filename moreinfo="none">/etc/lilo.conf</filename>. If you upgrade kernel to say 2.4.19, just create another kernel section in <filename moreinfo="none">/etc/lilo.conf</filename>. For example, add the following lines to <filename moreinfo="none">/etc/lilo.conf</filename>:</para><para><screen format="linespecific">
# Begin Code for booting my brand new kernel: 2.4.19

image=/boot/vmlinuz-2.4.19
	label=linux-new
	read-only
	root=/dev/ataraid/d0p12

# End Code for booting my brand new kernel: 2.4.19
</screen></para><para>Also, do not change <filename moreinfo="none">default=linux</filename> line in <filename moreinfo="none">/etc/lilo.conf</filename> unless and until you successfully can boot into your new kernel by typing <userinput moreinfo="none">linux-new</userinput> at the <prompt moreinfo="none">boot:</prompt> prompt (or highlighting <filename moreinfo="none">linux-new</filename> in the menu, if you are using LILO in curses menu mode).</para><para>Now lets discuss the actual process of upgrading kernel in the following four cases:</para><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Promise Technology (<filename moreinfo="none">ft</filename>) Driver with OS on RAID mirror</para></listitem><listitem><para>Promise Technology (<filename moreinfo="none">ft</filename>) Driver with non-OS data on RAID mirror</para></listitem><listitem><para>Linux Native (<filename moreinfo="none">ataraid</filename>) Driver with OS on RAID mirror</para></listitem><listitem><para>Linux Native (<filename moreinfo="none">ataraid</filename>) Driver with non-OS data on RAID mirror</para></listitem></orderedlist><para>OS stands for "Operating System" or more specifically Red Hat Linux Operating System in our case.  When you install Linux on mirrored partitions such as <filename moreinfo="none">/dev/ataraid/d0p1</filename> (or <filename moreinfo="none">/dev/sda1</filename> when using Promise Technology proprietary driver), you are said to have your OS on RAID mirror.  If your Linux machine has only the main partitions such as <filename moreinfo="none">/</filename> and <filename moreinfo="none">/boot</filename> on RAID, it is also called (a case of) OS on RAID.</para><para>Partitions created by user to make use of available free partitions such as <filename moreinfo="none">/mydata1</filename>, <filename moreinfo="none">/imp</filename>, <filename moreinfo="none">/scratch</filename> are not part of Linux OS because Linux does not install any files into them by default when you install Linux or upgrade any standard Linux software package. Any data in such user partitions becomes user data or alternatively, non-OS data. It is a good idea to use only ext3 and swap file systems for OS partitions. For non-OS partitions, you can use other file systems such as ext2 and dos (if you have another operating system like Windows on the same Linux computer or if you just feel like you love dos so much). However, why do you want to use ext2 if you dont have to and you have a better choice of using ext3 for OS or non-OS partitions?</para><sect2 id="case1"><title>Promise Technology (<filename moreinfo="none">ft</filename>) Driver with OS on RAID mirror</title><para>Currently, Promise Technology supports Red Hat 7.2 and earlier versions only. Red Hat 7.2 uses kernel 2.4.7-10 by default. Also note that, you have to use initrd.img (Initial RAM disk image) in <filename moreinfo="none">/etc/lilo.conf</filename>, when you install Linux with Promise supplied driver. At the time of installation, Promise Driver scripts are supposed to automatically generate initrd file and configure <filename moreinfo="none">/etc/lilo.conf</filename> for you. Unfortunately, this does not work properly and you may have to manually create initrd.img and configure <filename moreinfo="none">/etc/lilo.conf</filename> yourself.</para><para>You are stuck with the default kernel 2.4.7-10 and you cannot and should not upgrade kernel either by compiling or by automatic update programs such as <command moreinfo="none">up2date</command> or <command moreinfo="none">rpm</command> utility. If you really really want to upgrade kernel then do so but do not use raid. You can add <emphasis>Append Line</emphasis> to the <filename moreinfo="none">/etc/lilo.conf</filename> as explained in <link linkend="determine">Section 7.2</link> and do not load ataraid module (or do not compile your new kernel with ataraid feature built-in).  By doing this, you are upgrading kernel to new version and sacrificing RAID feature because you are using Promise Technology card as a simple IDE extension card.</para><para>If Promise Technology releases new version of their <filename moreinfo="none">ft</filename> driver for 2.4.19 in future, you can then upgrade your kernel first to 2.4.19 (using <command moreinfo="none">up2date</command> or <command moreinfo="none">rpm</command> but not by manually compiling) and place their new version of <filename moreinfo="none">ft.o</filename> file in <filename moreinfo="none">/lib/modules/kernel-2.4.19</filename>. You will also have to put <filename moreinfo="none">initrd-2.4.19</filename> in <filename moreinfo="none">/boot</filename> and append <filename moreinfo="none">initrd=</filename> line to the new kernel section in <filename moreinfo="none">/etc/lilo.conf</filename>. If your Linux  machine uses Promise Technology driver, your OS is on RAID mirror and Promise Technology did not release any new versions for new kernel versions, please do not fool around with your current kernel. If you do fool around, remember that you can seriously damage your computer and not be able to boot or retrieve your data.</para></sect2><sect2 id="case2"><title>Promise Technology (<filename moreinfo="none">ft</filename>) Driver with non-OS data on RAID mirror</title><para>Almost all of explanation in previous case (Promise Technology (<filename moreinfo="none">ft</filename>) Driver with OS on RAID mirror) applies in this also, ofcourse you are now risking non-OS data instead of OS. That means, if your upgrade fails, you will be able to boot but not be able to see data in your RAID partitions. Additionally, you have the flexibility of loading and unloading Promise Proprietary driver (<filename moreinfo="none">ft.o</filename>). However, this is not guaranteed to work smoothly because Promise Technology driver has a lot of issues.</para><para>Unless Promise Technology releases appropriate drivers for new kernel version, please do not attempt kernel upgrade in any method. You are stuck with 2.4.7-10 kernel.  You may be required to add <emphasis>Append Line</emphasis> as discussed in <link linkend="determine">Section 7.2</link> to boot your computer in some cases.</para></sect2><sect2 id="case3"><title>Linux Native (ataraid) Driver with OS on RAID mirror</title><para>You can upgrade kernel to any version above 2.4.18 by recompiling the kernel and not by any automatic upgrade method such as <command moreinfo="none">up2date</command> or <command moreinfo="none">rpm</command> utility. You need .config file from your previous kernel source directory (<filename moreinfo="none">/usr/src/linux-2.4.18/.config</filename>). You did save your 2.4.18 .config file, did't you?</para><para>
After you copy <filename moreinfo="none">.config</filename> into <filename moreinfo="none">/usr/src/linux-2.4.19</filename> directory, you may make changes by typing <command moreinfo="none">make menuconfig</command> but generally you do not need to make changes because you are upgrading only to 2.4.19 and your machine hardware did not change. But if you do make changes by typing <command moreinfo="none">make menuconfig</command>, remember to save and also backup your modified .config file. Save the .config file safely in /root or on a floppy disk. Here are the steps:</para><itemizedlist><listitem><para>Unzip new kernel in <filename moreinfo="none">/usr/src</filename> and rename top directory to <filename moreinfo="none">linux-2.4.19</filename>. So your new kernel source directory is <filename moreinfo="none">/usr/src/linux-2.4.19</filename>.</para></listitem><listitem><para><command moreinfo="none">cp /root/config.txt .config</command></para></listitem><listitem><para><command moreinfo="none">make menuconfig</command> (Make any required changes)</para></listitem><listitem><para><command moreinfo="none">cp .config /root/config-2.4.19.txt</command> (Back up config file in a safe place)</para></listitem><listitem><para><command moreinfo="none">make dep ; make clean ; make entent make install</command> (Install new kernel)</para></listitem><listitem><para><command moreinfo="none">make modules entent make modules_install</command> (Install new kernel modules)</para></listitem><listitem><para>Edit <filename moreinfo="none">/etc/lilo.conf</filename> to add new lines to boot new kernel. Label the new kernel <filename moreinfo="none">linux-new</filename>. Do not change <filename moreinfo="none">default=</filename> line and do not delete lines corrosponding to current working kernel.</para></listitem><listitem><para><command moreinfo="none">/sbin/lilo</command> (Activate changes in <filename moreinfo="none">/etc/lilo.conf</filename>)</para></listitem><listitem><para><command moreinfo="none">/sbin/lilo -R linux-new</command> (Tell LILO to treat <filename moreinfo="none">linux-new</filename> as default boot kernel just for one time only)</para></listitem><listitem><para><command moreinfo="none">sync;sync;reboot</command> (Reboot and hope that it works. If it does not boot, power off and power on again. Then login and investigate why your new kernel did not boot.)</para></listitem></itemizedlist></sect2><sect2 id="case4"><title>Linux Native (ataraid) Driver with non-OS data on RAID mirror</title><para>To upgrade kernel in this case, follow same procedure as explained in previous section (Linux Native (ataraid) Driver with OS on RAID mirror). If you experience problems, you may be required to add an additional line, <emphasis>Append Line</emphasis>, to your <filename moreinfo="none">/etc/lilo.conf</filename>. To find out what your <emphasis>Append Line</emphasis> is, see <link linkend="determine">Section 7.2</link>.</para><para>Similar to previous case, do not attempt to upgrade kernel by any automatic method (<command moreinfo="none">up2date</command> or <command moreinfo="none">rpm</command> utility). Manually compile and your install your new kernel as explained in the previous section.</para></sect2></sect1><sect1 id="disable"><title>Disabling RAID feature on Promise FastTrack</title><para>If you are reading this section, then you may be sick and tired of the fake RAID feature (formally known as quasi-hardware RAID) provided by Promise Technology FastTrack card or onboard chip on your motherboard.</para><sect2 id="discase1"><title>Case 1: OS not using RAID</title><para>It is possible to disable the RAID feature and use the Promise FastTrack as a plain vanilla IDE card. It is very simple. Follow the below steps:</para><para><orderedlist inheritnum="ignore" continuation="restarts"><listitem><para>Determine your <emphasis>Append Line</emphasis>. See <link linkend="determine">Section 7.2</link> for help with this</para></listitem><listitem><para>Modify <filename moreinfo="none">/etc/lilo.conf</filename> to include <filename moreinfo="none">append="</filename><emphasis>Append Line</emphasis><filename moreinfo="none">"</filename> in your current kernel boot section. Again see <link linkend="determine">Section 7.2</link> for details.</para></listitem><listitem><para>Type <command moreinfo="none">/sbin/lilo</command> and reboot</para></listitem></orderedlist></para><para>Now you should see your hard disks seperately and you can use them. If you previously had partitions on the RAID mirror, you will see partitions accordingly on each of the two member disks. You will also see the data that you previously stored on the RAID mirror.</para></sect2><sect2 id="discase2"><title>Case 2: OS is using RAID</title><para>If you want to disable RAID on a Linux computer that is using RAID mirror partitions for <filename moreinfo="none">/</filename>, <filename moreinfo="none">/boot</filename>, <filename moreinfo="none">/usr</filename> <emphasis>etc</emphasis>., then first backup your data including <filename moreinfo="none">/usr/src/linux/.config</filename>, <filename moreinfo="none">/etc/fstab</filename>, <filename moreinfo="none">/boot/vmlinux</filename>. Power off your computer. Then turn it on. At the <prompt moreinfo="none">boot:</prompt> prompt, type <command moreinfo="none">linux</command> followed by <emphasis>Append Line</emphasis>. If your system does not boot successfully, then insert your emergency rescue/boot floppy disk, boot off of that floppy disk and type at the <prompt moreinfo="none">boot:</prompt> prompt <command moreinfo="none">linux</command> followed by <emphasis>Append Line</emphasis>. If you still cannot boot, then you cannot disable RAID non-destructively, which means you have to boot off of the RedHat CDROM #1 and re-install Linux, again by typing  <command moreinfo="none">linux</command> followed by <emphasis>Append Line</emphasis> at the <prompt moreinfo="none">boot:</prompt> prompt.</para><para>If your Linux machine boots successfully, then first make sure that all data is available and clean. Make sure that files in <filename moreinfo="none">/boot</filename> are not corrupt. In some cases, the ASCII configuration files in <filename moreinfo="none">/boot</filename> and LILO binary files may be corrupt. If that happens, you have to restore them from backup or reconfigure <filename moreinfo="none">/etc/lilo.conf</filename>, run <command moreinfo="none">/sbin/lilo</command> and recompile and reinstall the kernel (recompile with unmodified .config, <emphasis>i.e.</emphasis>, without Promise RAID support).</para><para>If your Linux machine boots up and all files are safe, then add <emphasis>Append Line</emphasis> to <filename moreinfo="none">/etc/lilo.conf</filename>, run <command moreinfo="none">/sbin/lilo</command> and reboot.</para><para>If you disabled RAID on OS disks and then later changed your mind, then you have to back up data and reinstall Linux. If you change mind this way and want your RAID back on your Linux OS disks, you may have to sacrifice your current data.</para></sect2></sect1><sect1 id="tips"><title>Tips and Important Notes</title><para><itemizedlist><listitem><para>Dont bother using KDE / GNOME or any other X window system to finish RAID installation as explained above. Use simple text terminal.</para></listitem><listitem><para>You can press <keycap moreinfo="none">Cntrl-ALT-Fj</keycap> to switch to <filename moreinfo="none">ttyj</filename> where <filename moreinfo="none">j=1,2,..6</filename></para></listitem><listitem><para>If you do start KDE/GNOME or any other X window system, it will run on <filename moreinfo="none">tty7</filename>, which you can access by pressing <keycap moreinfo="none">Cntrl-ALT-F7</keycap></para></listitem><listitem><para>If you decide to use Promise supplied SCSI emulation driver for FastTrack RAID, note that you are stuck at the default kernel version 2.4.7-10. Because, no source code for FastTrack is available.</para></listitem><listitem><para>During RH 7.2 installation, choose ext3 and swap file types only.</para></listitem><listitem><para>When you remove Promise SCSI emulation and setup Native Linux RAID, linux lets you access the hard disks either by mirror name: <filename moreinfo="none">d0</filename> or individual disks themselves: <filename moreinfo="none">hde2</filename>, <filename moreinfo="none">hdg3</filename> etc. It is very important that: YOU NEVER access the hard disks directly by their name, instead access the corresponding mirror partition. Example: Use <filename moreinfo="none">/dev/ataraid/d0p3</filename> instead of <filename moreinfo="none">/dev/hde3</filename> or <filename moreinfo="none">/dev/hdg3</filename></para></listitem></itemizedlist></para></sect1><sect1 id="moreinfo"><title>For more information</title><para>For more information, please check the following resources</para><para><itemizedlist><listitem><para>Quasi-Mini-HowTo at <ulink url="http://www.geocities.com/ender7007/">http://www.geocities.com/ender7007/</ulink></para></listitem><listitem><para>LhD Product Page at <ulink url="http://lhd.datapower.com/db/dispproduct.cgi?DISP?2751">http://lhd.datapower.com/db/dispproduct.cgi?DISP?2751</ulink>. You can also go to <ulink url="http://lhd.datapower.com/">LhD Main Page</ulink> and search for »Promise FastTrack«.</para></listitem><listitem><para><ulink url="http://people.redhat.com/arjanv/pdcraid/ataraidhowto.html">ATA RAID help document</ulink> by RedHat, Inc. You can also join their <ulink url="https://listman.redhat.com/mailman/listinfo/ataraid-list">ataraid mailing list</ulink>, or atleast search <ulink url="https://listman.redhat.com/pipermail/ataraid-list/">the mailing list archive.</ulink></para></listitem><listitem><para>Promise Technology's support web site at <ulink url="http://support.promise.com/">http://support.promise.com</ulink>. Also check out <ulink url="http://www.promise.com/support/linux_eng.asp">this page.</ulink></para></listitem><listitem><para>Promise FastTrack help for Linux Mandrake is available at <ulink url="http://www.magic-lamp.org/">http://www.magic-lamp.org</ulink>.</para></listitem></itemizedlist></para></sect1><appendix id="app1"><title>How is this document generated</title><para>So you want to know how I generated this HOWTO? Or, did you download SGML version of this document, modified some portions in it and now want to know how you can create HOWTO?</para><para>I made sure there are no errors in my SGML by first typing the command <command moreinfo="none">nsgmls -s ataraid.sgml</command>. I created a script called <filename moreinfo="none">makehowto</filename> and ran the command <command moreinfo="none">./makehowto ataraid.sgml</command>.  Here is the my <filename moreinfo="none">makehowto</filename> script:</para><para><screen format="linespecific">#!/bin/bash
#
# makehowto by Murty Rompalli
# (c) All Rights Reserved
# Free for non commercial use. All other uses must be authorized explicitly
# by the creator. Contact me for more info. murty@solar.m u r t y.net
#

function maketut() {
echo;echo Creating Tutorial Files ...
jade \
    -t sgml \
    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/ldp.dsl\#html \
    $1.sgml 
}

function makehtml {
echo;echo Creating html file: $1.html ...
jade \
    -t sgml \
    -d /usr/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl \
    -V nochunks \
    $1.sgml ent $1.html 
}

function maketxt {
	if [ -f $1.html ]
	then
		echo;echo Creating text file: $1.txt ...
		lynx -dump $1.html ent $1.txt
	else
		echo;echo $1.html not found, creating ...
		makehtml $1
		maketxt $1
	fi
}

function makepdf {
	[ -f $1.ps ] entent gzip $1.ps

	if [ -f $1.ps.gz ]
	then
		echo;echo Creating pdf file: $1.pdf ...
		gzip -dc $1.ps.gz | 
		gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$1.pdf -
	else
		echo;echo $1.ps.gz not found creating ...
		makeps $1
		makepdf $1
	fi
}

function maketex {
echo;echo Creating TeX file $1.tex ... 
jade \
    -t tex \
    -d /usr/lib/sgml/stylesheets/cygnus-both.dsl\#print \
    $1.sgml
gzip $1.tex
echo $1.tex gzipped to $1.tex.gz
}

function makedvi {
echo;echo Creating DVI file $1.dvi ...
db2dvi $1.sgml  ent/dev/null 2entent1
echo See $1.log for errors
gzip $1.dvi
echo $1.dvi gzipped to $1.dvi.gz
}

function makeps {
echo;echo Creating PS file $1.ps ...
db2ps $1.sgml  ent/dev/null 2entent1
echo See $1.log for errors
gzip $1.ps
echo $1.ps gzipped to $1.ps.gz
}

#### Begin Main Program

echo "
makehowto utility for generating HOWTO from SGML file.
(c) Murty Rompalli
"

[ x$1 = x ] entent 
echo "Error. Usage: $0 abc.sgml '{tut|html|pdf|tex|dvi|ps|all}'

Option 'all' is default if sgml file is the only option supplied.

Options:
-------
tut	Make complete tutorial, i.e., generate necessary html files
html	Make a printable single HTML file
pdf	Make a PDF file
tex	Make a TeX source file, gzipped
dvi	Make a DVI file, gzipped
ps	Make a PostScript file, gzipped
all	Generate all possible formats.

" entent exit

file="`echo $1|sed 's/\.sgml$//'`"

[ x$file = x ] entent 
echo Error. Usage: $0 abc.sgml '{tut|html|tex|dvi|ps|all}' entent exit

[ -f $file.sgml ] || {
echo Error. $file.sgml does not exist
exit
}

[ -r $file.sgml ] || {
echo Error. $file.sgml not readable
exit
}


if [ x$2 = x ]
then
	action=all
else
	action=$2
fi 


case $action in
tut|tutorial) maketut $file  
		;;
html|htm) makehtml $file  
		;;
tex|latex) maketex $file 
		;;
dvi) makedvi $file 
		;;
ps) makeps $file 
		;;
text|txt) maketxt $file
		;;
pdf) makepdf $file
		;;
all) 	maketut $file  
	makehtml $file  
	maketex $file  
	makedvi $file
	makeps $file
	maketxt $file
	makepdf $file
	;;
*) echo error 
	;;
esac

\rm -f $file.aux
\rm -f $file.tex
\rm -f $file.dvi

echo;echo makehowto: Finished
echo You can review $file.log and delete it.
echo Thank you for using makehowto.
echo</screen></para><para>You can also just type <command moreinfo="none">./makehowto ataraid.sgml pdf</command>, for example, if you just want create PDF version. Just type <command moreinfo="none">./makehowto</command> to get more help on using the script. <ulink url="files/makehowto">Click here</ulink> to download this makehowto script.</para></appendix></article>

