Although Linux can run completely from a floppy disk with no hard disk, running it this way doesn’t offer a useful environment. Linux is designed primarily for hard disk use, and supports all the common hard disk controller systems including IDE (Integrated Drive Electronics), EIDE (Extended Integrated Drive Electronics), ESDI (Enhanced Small Device Interface), RLL (Run Length Limited), and SCSI (Small Computer System Interface). Linux supports the older 8-bit original PC controllers, although most controllers are 16-bit AT designs.

Linux is not choosy about the manufacturer and type of hard disk. As a rule, if DOS can handle the drive, so can Linux. This rule applies to all drives except SCSI drives, which require special handling. Linux still is restricted by most PC BIOS versions that impose limitations on the number of sectors, heads, and cylinders, however. There is an effective 1,024M size limit on drives with some older versions of Linux, and even some smaller drives can’t be handled properly by Linux or DOS because of the BIOS. More recent versions of the operating system can overcome some of these limitations. The version of Linux on the CD-ROM accompanying this book, for example, can use disk space over the 1G limit.

Linux supports most standard SCSI devices, but not all of the many different SCSI controllers and protocols on the market work well with Linux. Linux does support the most common SCSI controllers, though. Some other controllers are supported with enhanced BIOS chips on the PC motherboard. A size limitation on the SCSI drives is still imposed by the BIOS of many early versions of Linux, so a 2G drive will only have 1G available to Linux and DOS. Other UNIX systems, like SCO UNIX, can use the rest of the drive. Later versions of Linux (mostly any kernel from version 1.1 and on) can use more than 1G of disk space on SCSI drives.

The size of disk space required by Linux depends on the parts of the operating system that are installed. A minimum effective system is 20M, which gives enough room for the basic utilities but not X. To load the entire basic Linux system, including development tools and X, provide at least 150M just for the files. Then add whatever space is required for your personal files and temporary storage for Linux. A good rule of thumb is to double the space requirements. In addition to the user space, remember to leave room for the swap space. Although the swap space size depends on what the system is used for, a good number to use is 16M.

You can use more than one drive, although you should place a bootable root Linux partition on the first drive. You also must load DOS on the first drive, although you can place partitions on other drives. The number of drives supported depend on the drive controller and BIOS. IDE systems are usually limited to two drives, but EIDE systems can handle four drives (two drives off two controllers). ESDI and RLL controllers are usually limited to two drives. SCSI controllers can handle up to seven drives per controller, and a single system can contain several controllers. SCSI is the most versatile (and also the most expensive) system.

Because hard disks are now inexpensive, obtaining large-capacity drives is relatively easy. Linux can share a disk with up to three other operating systems (more with a few tricks), so if you plan to load DOS and Linux, for example, allocate enough drive space for both operating systems.