| ide.txt -- Information regarding the Enhanced IDE drive in Linux 2.2/2.3/2.4 |
| =============================================================================== |
| |
| +-----------------------------------------------------------------+ |
| | The hdparm utility for controlling various IDE features is | |
| | packaged separately. Look for it on popular linux FTP sites. | |
| +-----------------------------------------------------------------+ |
| |
| See description later on below for handling BIG IDE drives with >1024 cyls. |
| |
| Major features of the 2.1/2.2 IDE driver ("NEW!" marks changes since 2.0.xx): |
| |
| NEW! - support for IDE ATAPI *floppy* drives |
| - support for IDE ATAPI *tape* drives, courtesy of Gadi Oxman |
| (re-run MAKEDEV.ide to create the tape device entries in /dev/) |
| - support for up to *four* IDE interfaces on one or more IRQs |
| - support for any mix of up to *eight* IDE drives |
| - support for reading IDE ATAPI cdrom drives (NEC,MITSUMI,VERTOS,SONY) |
| - support for audio functions |
| - auto-detection of interfaces, drives, IRQs, and disk geometries |
| - "single" drives should be jumpered as "master", not "slave" |
| (both are now probed for) |
| - support for BIOSs which report "more than 16 heads" on disk drives |
| - uses LBA (slightly faster) on disk drives which support it |
| - support for lots of fancy (E)IDE drive functions with hdparm utility |
| - optional (compile time) support for 32-bit VLB data transfers |
| - support for IDE multiple (block) mode (same as hd.c) |
| - support for interrupt unmasking during I/O (better than hd.c) |
| - improved handshaking and error detection/recovery |
| - can co-exist with hd.c controlling the first interface |
| - run-time selectable 32bit interface support (using hdparm-2.3) |
| - support for reliable operation of buggy RZ1000 interfaces |
| - PCI support is automatic when rz1000 support is configured |
| - support for reliable operation of buggy CMD-640 interfaces |
| - PCI support is automatic when cmd640 support is configured |
| - for VLB, use kernel command line option: ide0=cmd640_vlb |
| - this support also enables the secondary i/f when needed |
| - interface PIO timing & prefetch parameter support |
| - experimental support for UMC 8672 interfaces |
| - support for secondary interface on the FGI/Holtek HT-6560B VLB i/f |
| - use kernel command line option: ide0=ht6560b |
| - experimental support for various IDE chipsets |
| - use appropriate kernel command line option from list below |
| - support for drives with a stuck WRERR_STAT bit |
| - support for removable devices, including door lock/unlock |
| - transparent support for DiskManager 6.0x and "Dynamic Disk Overlay" |
| - works with Linux fdisk, LILO, loadlin, bootln, etc.. |
| - mostly transparent support for EZ-Drive disk translation software |
| - to use LILO with EZ, install LILO on the linux partition |
| rather than on the master boot record, and then mark the |
| linux partition as "bootable" or "active" using fdisk. |
| (courtesy of Juha Laiho <jlaiho@ichaos.nullnet.fi>). |
| - auto-detect of disk translations by examining partition table |
| - ide-cd.c now compiles separate from ide.c |
| - ide-cd.c now supports door locking and auto-loading. |
| - Also preliminary support for multisession |
| and direct reads of audio data. |
| - experimental support for Promise DC4030VL caching interface card |
| - email thanks/problems to: peterd@pnd-pc.demon.co.uk |
| - the hdparm-3.1 package can be used to set PIO modes for some chipsets. |
| NEW! - support for setting PIO modes with the OPTi 82C621, courtesy of Jaromir Koutek. |
| NEW! - support for loadable modules |
| NEW! - optional SCSI host adapter emulation for ATAPI devices |
| NEW! - generic PCI Bus-Master DMA support |
| NEW! - works with most Pentium PCI systems, chipsets, add-on cards |
| NEW! - works with regular DMA as well as Ultra DMA |
| NEW! - automatically probes for all PCI IDE interfaces |
| NEW! - generic support for using BIOS-configured Ultra-DMA (UDMA) transfers |
| |
| |
| *** IMPORTANT NOTICES: BUGGY IDE CHIPSETS CAN CORRUPT DATA!! |
| *** ================= |
| *** PCI versions of the CMD640 and RZ1000 interfaces are now detected |
| *** automatically at startup when PCI BIOS support is configured. |
| *** |
| *** Linux disables the "prefetch" ("readahead") mode of the RZ1000 |
| *** to prevent data corruption possible due to hardware design flaws. |
| *** |
| *** For the CMD640, linux disables "IRQ unmasking" (hdparm -u1) on any |
| *** drive for which the "prefetch" mode of the CMD640 is turned on. |
| *** If "prefetch" is disabled (hdparm -p8), then "IRQ unmasking" can be |
| *** used again. |
| *** |
| *** For the CMD640, linux disables "32bit I/O" (hdparm -c1) on any drive |
| *** for which the "prefetch" mode of the CMD640 is turned off. |
| *** If "prefetch" is enabled (hdparm -p9), then "32bit I/O" can be |
| *** used again. |
| *** |
| *** The CMD640 is also used on some Vesa Local Bus (VLB) cards, and is *NOT* |
| *** automatically detected by Linux. For safe, reliable operation with such |
| *** interfaces, one *MUST* use the "ide0=cmd640_vlb" kernel option. |
| *** |
| *** Use of the "serialize" option is no longer necessary. |
| |
| This is the multiple IDE interface driver, as evolved from hd.c. |
| It supports up to six IDE interfaces, on one or more IRQs (usually 14 & 15). |
| There can be up to two drives per interface, as per the ATA-2 spec. |
| |
| Primary: ide0, port 0x1f0; major=3; hda is minor=0; hdb is minor=64 |
| Secondary: ide1, port 0x170; major=22; hdc is minor=0; hdd is minor=64 |
| Tertiary: ide2, port 0x1e8; major=33; hde is minor=0; hdf is minor=64 |
| Quaternary: ide3, port 0x168; major=34; hdg is minor=0; hdh is minor=64 |
| fifth.. ide4, usually PCI, probed |
| sixth.. ide5, usually PCI, probed |
| |
| To access devices on interfaces > ide0, device entries must first be |
| created in /dev for them. To create such entries, simply run the included |
| shell script: /usr/src/linux/scripts/MAKEDEV.ide |
| |
| Apparently many older releases of Slackware had incorrect entries |
| in /dev for hdc* and hdd* -- this can also be corrected by running MAKEDEV.ide |
| |
| ide.c automatically probes for most IDE interfaces (including all PCI ones), |
| for the drives/geometries attached to those interfaces, and for the |
| IRQ numbers being used by the interfaces (normally 14, 15 for ide0/ide1). |
| |
| For special cases, interfaces may be specified using kernel "command line" |
| options. For example, |
| |
| ide3=0x168,0x36e,10 /* ioports 0x168-0x16f,0x36e, irq 10 */ |
| |
| Normally the irq number need not be specified, as ide.c will probe for it: |
| |
| ide3=0x168,0x36e /* ioports 0x168-0x16f,0x36e */ |
| |
| The standard port, and irq values are these: |
| |
| ide0=0x1f0,0x3f6,14 |
| ide1=0x170,0x376,15 |
| ide2=0x1e8,0x3ee,11 |
| ide3=0x168,0x36e,10 |
| |
| Note that the first parameter reserves 8 contiguous ioports, whereas the |
| second value denotes a single ioport. If in doubt, do a 'cat /proc/ioports'. |
| |
| In all probability the device uses these ports and IRQs if it is attached |
| to the appropriate ide channel. Pass the parameter for the correct ide |
| channel to the kernel, as explained above. |
| |
| Any number of interfaces may share a single IRQ if necessary, at a slight |
| performance penalty, whether on separate cards or a single VLB card. |
| The IDE driver automatically detects and handles this. However, this may |
| or may not be harmful to your hardware.. two or more cards driving the same IRQ |
| can potentially burn each other's bus driver, though in practice this |
| seldom occurs. Be careful, and if in doubt, don't do it! |
| |
| Drives are normally found by auto-probing and/or examining the CMOS/BIOS data. |
| For really weird situations, the apparent (fdisk) geometry can also be specified |
| on the kernel "command line" using LILO. The format of such lines is: |
| |
| hdx=cyls,heads,sects,wpcom,irq |
| or hdx=cdrom |
| |
| where hdx can be any of hda through hdh, Three values are required |
| (cyls,heads,sects). For example: |
| |
| hdc=1050,32,64 hdd=cdrom |
| |
| either {hda,hdb} or {hdc,hdd}. The results of successful auto-probing may |
| override the physical geometry/irq specified, though the "original" geometry |
| may be retained as the "logical" geometry for partitioning purposes (fdisk). |
| |
| If the auto-probing during boot time confuses a drive (ie. the drive works |
| with hd.c but not with ide.c), then an command line option may be specified |
| for each drive for which you'd like the drive to skip the hardware |
| probe/identification sequence. For example: |
| |
| hdb=noprobe |
| or |
| hdc=768,16,32 |
| hdc=noprobe |
| |
| Note that when only one IDE device is attached to an interface, |
| it should be jumpered as "single" or "master", *not* "slave". |
| Many folks have had "trouble" with cdroms because of this requirement, |
| so ide.c now probes for both units, though success is more likely |
| when the drive is jumpered correctly. |
| |
| Courtesy of Scott Snyder and others, the driver supports ATAPI cdrom drives |
| such as the NEC-260 and the new MITSUMI triple/quad speed drives. |
| Such drives will be identified at boot time, just like a hard disk. |
| |
| If for some reason your cdrom drive is *not* found at boot time, you can force |
| the probe to look harder by supplying a kernel command line parameter |
| via LILO, such as: |
| |
| hdc=cdrom /* hdc = "master" on second interface */ |
| or |
| hdd=cdrom /* hdd = "slave" on second interface */ |
| |
| For example, a GW2000 system might have a hard drive on the primary |
| interface (/dev/hda) and an IDE cdrom drive on the secondary interface |
| (/dev/hdc). To mount a CD in the cdrom drive, one would use something like: |
| |
| ln -sf /dev/hdc /dev/cdrom |
| mkdir /cd |
| mount /dev/cdrom /cd -t iso9660 -o ro |
| |
| If, after doing all of the above, mount doesn't work and you see |
| errors from the driver (with dmesg) complaining about `status=0xff', |
| this means that the hardware is not responding to the driver's attempts |
| to read it. One of the following is probably the problem: |
| |
| - Your hardware is broken. |
| |
| - You are using the wrong address for the device, or you have the |
| drive jumpered wrong. Review the configuration instructions above. |
| |
| - Your IDE controller requires some nonstandard initialization sequence |
| before it will work properly. If this is the case, there will often |
| be a separate MS-DOS driver just for the controller. IDE interfaces |
| on sound cards usually fall into this category. Such configurations |
| can often be made to work by first booting MS-DOS, loading the |
| appropriate drivers, and then warm-booting linux (without powering |
| off). This can be automated using loadlin in the MS-DOS autoexec. |
| |
| If you always get timeout errors, interrupts from the drive are probably |
| not making it to the host. Check how you have the hardware jumpered |
| and make sure it matches what the driver expects (see the configuration |
| instructions above). If you have a PCI system, also check the BIOS |
| setup; I've had one report of a system which was shipped with IRQ 15 |
| disabled by the BIOS. |
| |
| The kernel is able to execute binaries directly off of the cdrom, |
| provided it is mounted with the default block size of 1024 (as above). |
| |
| Please pass on any feedback on any of this stuff to the maintainer, |
| whose address can be found in linux/MAINTAINERS. |
| |
| Note that if BOTH hd.c and ide.c are configured into the kernel, |
| hd.c will normally be allowed to control the primary IDE interface. |
| This is useful for older hardware that may be incompatible with ide.c, |
| and still allows newer hardware to run on the 2nd/3rd/4th IDE ports |
| under control of ide.c. To have ide.c also "take over" the primary |
| IDE port in this situation, use the "command line" parameter: ide0=0x1f0 |
| |
| The IDE driver is partly modularized. The high level disk/cdrom/tape/floppy |
| drivers can always be compiled as loadable modules, the chipset drivers |
| can only be compiled into the kernel, and the core code (ide.c) can be |
| compiled as a loadable module provided no chipset support and no special |
| partition table translations are needed. |
| |
| When using ide.c/ide-tape.c as modules in combination with kerneld, add: |
| |
| alias block-major-3 ide-probe |
| alias char-major-37 ide-tape |
| |
| respectively to /etc/modules.conf. |
| |
| When ide.c is used as a module, you can pass command line parameters to the |
| driver using the "options=" keyword to insmod, while replacing any ',' with |
| ';'. For example: |
| |
| insmod ide.o options="ide0=serialize ide2=0x1e8;0x3ee;11" |
| |
| |
| ================================================================================ |
| |
| Summary of ide driver parameters for kernel "command line": |
| ---------------------------------------------------------- |
| "hdx=" is recognized for all "x" from "a" to "h", such as "hdc". |
| "idex=" is recognized for all "x" from "0" to "3", such as "ide1". |
| |
| "hdx=noprobe" : drive may be present, but do not probe for it |
| "hdx=none" : drive is NOT present, ignore cmos and do not probe |
| "hdx=nowerr" : ignore the WRERR_STAT bit on this drive |
| "hdx=cdrom" : drive is present, and is a cdrom drive |
| "hdx=cyl,head,sect" : disk drive is present, with specified geometry |
| "hdx=autotune" : driver will attempt to tune interface speed |
| to the fastest PIO mode supported, |
| if possible for this drive only. |
| Not fully supported by all chipset types, |
| and quite likely to cause trouble with |
| older/odd IDE drives. |
| "hdx=slow" : insert a huge pause after each access to the data |
| port. Should be used only as a last resort. |
| "hdx=swapdata" : when the drive is a disk, byte swap all data |
| |
| "hdxlun=xx" : set the drive last logical unit |
| |
| "idebus=xx" : inform IDE driver of VESA/PCI bus speed in MHz, |
| where "xx" is between 20 and 66 inclusive, |
| used when tuning chipset PIO modes. |
| For PCI bus, 25 is correct for a P75 system, |
| 30 is correct for P90,P120,P180 systems, |
| and 33 is used for P100,P133,P166 systems. |
| If in doubt, use idebus=33 for PCI. |
| As for VLB, it is safest to not specify it. |
| Bigger values are safer than smaller ones. |
| |
| "idex=noprobe" : do not attempt to access/use this interface |
| "idex=base" : probe for an interface at the addr specified, |
| where "base" is usually 0x1f0 or 0x170 |
| and "ctl" is assumed to be "base"+0x206 |
| "idex=base,ctl" : specify both base and ctl |
| "idex=base,ctl,irq" : specify base, ctl, and irq number |
| "idex=autotune" : driver will attempt to tune interface speed |
| to the fastest PIO mode supported, |
| for all drives on this interface. |
| Not fully supported by all chipset types, |
| and quite likely to cause trouble with |
| older/odd IDE drives. |
| "idex=noautotune" : driver will NOT attempt to tune interface speed |
| This is the default for most chipsets, |
| except the cmd640. |
| "idex=serialize" : do not overlap operations on idex and ide(x^1) |
| "idex=reset" : reset interface after probe |
| "idex=dma" : automatically configure/use DMA if possible. |
| "idex=nohighio" : don't use i/o to high memory addresses on this |
| interface. i/o to memory locations higher |
| than ~860MiB will be bounced. |
| |
| The following are valid ONLY on ide0, |
| and the defaults for the base,ctl ports must not be altered. |
| |
| "ide0=dtc2278" : probe/support DTC2278 interface |
| "ide0=ht6560b" : probe/support HT6560B interface |
| "ide0=cmd640_vlb" : *REQUIRED* for VLB cards with the CMD640 chip |
| (not for PCI -- automatically detected) |
| "ide0=qd65xx" : probe/support qd65xx interface |
| "ide0=ali14xx" : probe/support ali14xx chipsets (ALI M1439/M1445) |
| "ide0=umc8672" : probe/support umc8672 chipsets |
| |
| There may be more options than shown -- use the source, Luke! |
| |
| Everything else is rejected with a "BAD OPTION" message. |
| |
| ================================================================================ |
| |
| Some Terminology |
| ---------------- |
| IDE = Integrated Drive Electronics, meaning that each drive has a built-in |
| controller, which is why an "IDE interface card" is not a "controller card". |
| |
| IDE drives are designed to attach almost directly to the ISA bus of an AT-style |
| computer. The typical IDE interface card merely provides I/O port address |
| decoding and tri-state buffers, although several newer localbus cards go much |
| beyond the basics. When purchasing a localbus IDE interface, avoid cards with |
| an onboard BIOS and those which require special drivers. Instead, look for a |
| card which uses hardware switches/jumpers to select the interface timing speed, |
| to allow much faster data transfers than the original 8MHz ISA bus allows. |
| |
| ATA = AT (the old IBM 286 computer) Attachment Interface, a draft American |
| National Standard for connecting hard drives to PCs. This is the official |
| name for "IDE". |
| |
| The latest standards define some enhancements, known as the ATA-2 spec, |
| which grew out of vendor-specific "Enhanced IDE" (EIDE) implementations. |
| |
| ATAPI = ATA Packet Interface, a new protocol for controlling the drives, |
| similar to SCSI protocols, created at the same time as the ATA2 standard. |
| ATAPI is currently used for controlling CDROM and TAPE devices, and will |
| likely also soon be used for Floppy drives, removable R/W cartridges, |
| and for high capacity hard disk drives. |
| |
| How To Use *Big* ATA/IDE drives with Linux |
| ------------------------------------------ |
| The ATA Interface spec for IDE disk drives allows a total of 28 bits |
| (8 bits for sector, 16 bits for cylinder, and 4 bits for head) for addressing |
| individual disk sectors of 512 bytes each (in "Linear Block Address" (LBA) |
| mode, there is still only a total of 28 bits available in the hardware). |
| This "limits" the capacity of an IDE drive to no more than 128GB (Giga-bytes). |
| All current day IDE drives are somewhat smaller than this upper limit, and |
| within a few years, ATAPI disk drives will raise the limit considerably. |
| |
| All IDE disk drives "suffer" from a "16-heads" limitation: the hardware has |
| only a four bit field for head selection, restricting the number of "physical" |
| heads to 16 or less. Since the BIOS usually has a 63 sectors/track limit, |
| this means that all IDE drivers larger than 504MB (528Meg) must use a "physical" |
| geometry with more than 1024 cylinders. |
| |
| (1024cyls * 16heads * 63sects * 512bytes/sector) / (1024 * 1024) == 504MB |
| |
| (Some BIOSs (and controllers with onboard BIOS) pretend to allow "32" or "64" |
| heads per drive (discussed below), but can only do so by playing games with |
| the real (hidden) geometry, which is always limited to 16 or fewer heads). |
| |
| This presents two problems to most systems: |
| |
| 1. The INT13 interface to the BIOS only allows 10-bits for cylinder |
| addresses, giving a limit of 1024cyls for programs which use it. |
| |
| 2. The physical geometry fields of the disk partition table only |
| allow 10-bits for cylinder addresses, giving a similar limit of 1024 |
| cyls for operating systems that do not use the "sector count" fields |
| instead of the physical Cyl/Head/Sect (CHS) geometry fields. |
| |
| Neither of these limitations affects Linux itself, as it (1) does not use the |
| BIOS for disk access, and it (2) is clever enough to use the "sector count" |
| fields of the partition table instead of the physical CHS geometry fields. |
| |
| a) Most folks use LILO to load linux. LILO uses the INT13 interface |
| to the BIOS to load the kernel at boot time. Therefore, LILO can only |
| load linux if the files it needs (usually just the kernel images) are |
| located below the magic 1024 cylinder "boundary" (more on this later). |
| |
| b) Many folks also like to have bootable DOS partitions on their |
| drive(s). DOS also uses the INT13 interface to the BIOS, not only |
| for booting, but also for operation after booting. Therefore, DOS |
| can normally only access partitions which are contained entirely below |
| the magic 1024 cylinder "boundary". |
| |
| There are at least seven commonly used schemes for kludging DOS to work |
| around this "limitation". In the long term, the problem is being solved |
| by introduction of an alternative BIOS interface that does not have the |
| same limitations as the INT13 interface. New versions of DOS are expected |
| to detect and use this interface in systems whose BIOS provides it. |
| |
| But in the present day, alternative solutions are necessary. |
| |
| The most popular solution in newer systems is to have the BIOS shift bits |
| between the cylinder and head number fields. This is activated by entering |
| a translated logical geometry into the BIOS/CMOS setup for the drive. |
| Thus, if the drive has a geometry of 2100/16/63 (CHS), then the BIOS could |
| present a "logical" geometry of 525/64/63 by "shifting" two bits from the |
| cylinder number into the head number field for purposes of the partition table, |
| CMOS setup, and INT13 interfaces. Linux kernels 1.1.39 and higher detect and |
| "handle" this translation automatically, making this a rather painless solution |
| for the 1024 cyls problem. If for some reason Linux gets confused (unlikely), |
| then use the kernel command line parameters to pass the *logical* geometry, |
| as in: hda=525,64,63 |
| |
| If the BIOS does not support this form of drive translation, then several |
| options remain, listed below in order of popularity: |
| |
| - use a partition below the 1024 cyl boundary to hold the linux |
| boot files (kernel images and /boot directory), and place the rest |
| of linux anywhere else on the drive. These files can reside in a DOS |
| partition, or in a tailor-made linux boot partition. |
| - use DiskManager software from OnTrack, supplied free with |
| many new hard drive purchases. |
| - use EZ-Drive software (similar to DiskManager). Note though, |
| that LILO must *not* use the MBR when EZ-Drive is present. |
| Instead, install LILO on the first sector of your linux partition, |
| and mark it as "active" or "bootable" with fdisk. |
| - boot from a floppy disk instead of the hard drive (takes 10 seconds). |
| |
| If you cannot use drive translation, *and* your BIOS also restricts you to |
| entering no more than 1024 cylinders in the geometry field in the CMOS setup, |
| then just set it to 1024. As of v3.5 of this driver, Linux automatically |
| determines the *real* number of cylinders for fdisk to use, allowing easy |
| access to the full disk capacity without having to fiddle around. |
| |
| Regardless of what you do, all DOS partitions *must* be contained entirely |
| within the first 1024 logical cylinders. For a 1Gig WD disk drive, here's |
| a good "half and half" partitioning scheme to start with: |
| |
| geometry = 2100/16/63 |
| /dev/hda1 from cyl 1 to 992 dos |
| /dev/hda2 from cyl 993 to 1023 swap |
| /dev/hda3 from cyl 1024 to 2100 linux |
| |
| To ensure that LILO can boot linux, the boot files (kernel and /boot/*) |
| must reside within the first 1024 cylinders of the drive. If your linux |
| root partition is *not* completely within the first 1024 cyls (quite common), |
| then you can use LILO to boot linux from files on your DOS partition |
| by doing the following after installing Slackware (or whatever): |
| |
| 0. Boot from the "boot floppy" created during the installation |
| 1. Mount your DOS partition as /dos (and stick it in /etc/fstab) |
| 2. Move /boot to /dos/boot with: cp -a /boot /dos ; rm -r /boot |
| 3. Create a symlink for LILO to use with: ln -s /dos/boot /boot |
| 4. Move your kernel (/vmlinuz) to /boot/vmlinuz: mv /vmlinuz /boot |
| 5. Edit /etc/lilo.conf to change /vmlinuz to /boot/vmlinuz |
| 6. Re-run LILO with: lilo |
| |
| A danger with this approach is that whenever an MS-DOS "defragmentation" |
| program is run (like Norton "speeddisk"), it may move the Linux boot |
| files around, confusing LILO and making the (Linux) system unbootable. |
| Be sure to keep a kernel "boot floppy" at hand for such circumstances. |
| A possible workaround is to mark the Linux files as S+H+R (System, |
| Hidden, Readonly), to prevent most defragmentation programs from |
| moving the files around. |
| |
| If you "don't do DOS", then partition as you please, but remember to create |
| a small partition to hold the /boot directory (and vmlinuz) as described above |
| such that they stay within the first 1024 cylinders. |
| |
| Note that when creating partitions that span beyond cylinder 1024, |
| Linux fdisk will complain about "Partition X has different physical/logical |
| endings" and emit messages such as "This is larger than 1024, and may cause |
| problems with some software". Ignore this for linux partitions. The "some |
| software" refers to DOS, the BIOS, and LILO, as described previously. |
| |
| Western Digital ships a "DiskManager 6.03" diskette with all of their big |
| hard drives. Use BIOS translation instead of this if possible, as it is a |
| more generally compatible method of achieving the same results (DOS access |
| to the entire disk). However, if you must use DiskManager, it now works |
| with Linux 1.3.x in most cases. Let me know if you still have trouble. |
| |
| My recommendations to anyone who asks about NEW systems are: |
| |
| - buy a motherboard that uses the Intel Triton chipset -- very common. |
| - use IDE for the first two drives, placing them on separate interfaces. |
| - very fast 7200rpm drives are now available |
| (though many problems have been reported with Seagate ones). |
| - place the IDE cdrom drive as slave on either interface. |
| - if additional disks are to be connected, consider your needs: |
| - fileserver? Buy a SC200 SCSI adaptor for the next few drives. |
| - personal system? Use IDE for the next two drives. |
| - still not enough? Keep adding SC200 SCSI cards as needed. |
| |
| Most manufacturers make both IDE and SCSI versions of each of their drives. |
| The IDE ones are usually as fast and cheaper, due to lower command overhead |
| and the higher data transfer speed of UDMA2. But fast/ultrawide/superlative |
| SCSI is still king of the heap, especially for servers, if you've got the bucks. |
| |
| mlord@pobox.com |
| -- |
| For current maintainers of this stuff, see the linux/MAINTAINERS file. |