Hard Disks

# 5. Hard Disks

Contents of this section

This section lists all the boot args associated with standard MFM/RLL, ST-506, XT, and IDE disk drive devices. Note that both the IDE and the generic ST-506 HD driver both accept the `hd=' option.

## 5.1 IDE Disk/CD-ROM Driver Parameters

The IDE driver accepts a number of parameters, which range from disk geometry specifications, to support for broken controller chips. Drive specific options are specified by using one of:

`hda=', `hdb=', `hdc=', or `hdd='.

Non-drive specific options are specified with the prefix `hd='. Note that using a drive specific prefix for a non-drive specific option will still work, and the option will just be applied as expected.

Also note that `hd=' can be used to refer to the next unspecified drive in the (a, b, c, d) sequence. For the following discussions, the `hd=' option will be cited for brevity. Please consult the file `README.ide` in the `linux/drivers/block` directory if more information is required.

### The `hd=cyls,heads,sects[,wpcom[,irq]]' options

These options are used to specify the physical geometry of the disk. Only the first three values are required. The cylinder/head/sectors values will be those used by `fdisk`. The write precompensation value is ignored for IDE disks. The IRQ value specified will be the IRQ used for the interface that the drive resides on, and is not really a drive specific parameter.

### The `hd=serialize' option

The dual IDE interface CMD-640 chip is broken as designed such that when drives on the secondary interface are used at the same time as drives on the primary interface, it will corrupt your data. Using this option tells the driver to make sure that both interfaces are never used at the same time. If you only have up to two drives, both on the primary interface, then you don't need to use this option.

### The `hd=dtc2278' option

This option tells the driver that you have a DTC-2278D IDE interface. The driver then tries to do DTC specific operations to enable the second interface and to enable faster transfer modes.

### The `hd=noprobe' option

If a particular drive (e.g. old IDE drive) has problems that are a result of being probed, this option can be used to disable the probe. An example usage could be:

            hdb=noprobe hdb=1166,7,17

which would disable the probe, but still specify the drive geometry so that it would be registered as a valid block device, and hence useable.

### The `hd=nowerr' option

Some drives apparently have the WRERR_STAT bit stuck on permanently. This enables a work-around for these broken devices.

### The `hd=cdrom' option

This tells the IDE driver that there is an ATAPI compatible CD-ROM attached in place of a normal IDE hard disk. In most cases the CD-ROM is identified automatically, but if it isn't then this may help.

## 5.2 Standard ST-506 Disk Driver Options (`hd=')

The standard disk driver can accept geometry arguments for the disks similar to the IDE driver. Note however that it only expects three values (C/H/S) -- any more or any less and it will silently ignore you. Also, it only accepts `hd=' as an argument, i.e. `hda=', `hdb=' and so on are not valid here. The format is as follows:

            hd=cyls,heads,sects

If there are two disks installed, the above is repeated with the geometry parameters of the second disk.

## 5.3 XT Disk Driver Options (`xd=')

If you are unfortunate enough to be using one of these old 8 bit cards that move data at a whopping 125kB/s then here is the scoop. The probe code for these cards looks for an installed BIOS, and if none is present, the probe will not find your card. Or, if the signature string of your BIOS is not recognised then it will also not be found. In either case, you will then have to use a boot arg of the form:

            xd=type,irq,iobase,dma_chan

The `type` value specifies the particular manufacturer of the card, and are as follows: 0=generic; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI. The only difference between multiple types from the same manufacturer is the BIOS string used for detection, which is not used if the type is specified.

The `xd_setup()` function does no checking on the values, and assumes that you entered all four values. Don't disappoint it. Here is an example usage for a WD1002 controller with the BIOS disabled/removed, using the `default' XT controller parameters:

            xd=2,5,0x320,3

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter