Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sd(4S) — OS/MP 4.1A3

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

dkio(4S)

directory(3V)

lseek(2V)

read(2V)

write(2V)

scsi(4S)

si(4S)

sr(4S)

format(8)

SD(4S)  —  DEVICES AND NETWORK INTERFACES

NAME

sd − driver for SCSI disk devices

CONFIG — SOLBOURNE SERIES 4, 5, 5E

controller si0 at kbio ? csr ? priority 2
disk sd0 at si0 drive 0x00 flags 0x4a
disk sd1 at si0 drive 0x01 flags 0x4a
disk sd2 at si0 drive 0x02 flags 0x4a
disk sd3 at si0 drive 0x03 flags 0x4a
disk sd6 at si0 drive 0x06 flags 0x4a

CONFIG — SOLBOURNE S4000

controller si0 at obio ? csr 0x20 priority 4
disk sd0 at si0 drive 0x00 flags 0x4a
disk sd1 at si0 drive 0x01 flags 0x4a
disk sd2 at si0 drive 0x02 flags 0x4a
disk sd3 at si0 drive 0x03 flags 0x4a
disk sd6 at si0 drive 0x06 flags 0x4a

The controller lines above specify the SCSI host adapters. 

The lines following the controller specification lines define the available disk devices. 

The flags field is used to specify the SCSI device type to the host adapter.  flags must be set to 0 to identify disk devices. 

The drive value is calculated using the formula:

8∗target + lun

where target is the SCSI target, and lun is the SCSI logical unit number. 

The next configuration block, following si0 and si1 above, describes the configuration for the older sc0 host adapter.  It uses the same configuration description as the si0 host adapter. 

DESCRIPTION

Files with minor device numbers 0 through 7 refer to various portions of drive 0.  The standard device names begin with “sd” followed by the drive number and then a letter a-h for partitions 0-7 respectively.  The character ?  stands here for a drive number in the range 0-6. 

The block-files access the disk using the system’s normal buffering mechanism and are read and written without regard to physical disk records.  There is also a “raw” interface that provides for direct transmission between the disk and the user’s read or write buffer.  A single read or write call usually results in one I/O operation; raw I/O is therefore considerably more efficient when many bytes are transmitted.  The names of the raw files conventionally begin with an extra ‘r.’

I/O requests (such as lseek (2V)) to the SCSI disk must have an offset that is a multiple of 512 bytes (DEV_BSIZE), or the driver returns an EINVAL error.  If the transfer length is not a multiple of 512 bytes, the transfer count is rounded up by the driver. 

Disk Support

On Solbourne systems, this driver handles all SCSI CCS compatible disk drives.  The type of disk drive is determined using the SCSI inquiry command and reading the volume label stored on block 0 of the drive.  The volume label describes the disk geometry and partitioning; it must be present or the disk cannot be mounted by the system.  The format(8s) utility is used to both format and label disks.

The sd?a partition is normally used for the root file system on a disk, the sd?b partition as a paging area, and the sd?c partition for pack-pack copying (it normally maps the entire disk).  The rest of the disk is normally the sd?g partition.  For the primary disk, the /usr file system is located here. 

FILES

/dev/sd[0-6][a-h] block files

/dev/rsd[0-6][a-h] raw files

SEE ALSO

dkio(4S), directory(3V), lseek(2V), read(2V), write(2V) scsi(4S), si(4S), sr(4S), format(8). 

DIAGNOSTICS

sd?:  sdtimer: I/O request timeout

A tape I/O operation has taken too long to complete.  A device or host adapter failure may have occurred. 

sd?:  sdtimer: can’t abort request

The driver is unable to find the request in the disconnect queue to notify the device driver that it has failed. 

sd?:  no space for inquiry data
sd?:  no space for disk label

The driver was unable to get enough space for temporary storage.  The driver is unable to open the disk device. 

sd?:  <%s>

The driver has found a SCSI disk device and opened it for the first time.  The disk label is displayed to notify the user. 

sd?:  SCSI bus failure

A host adapter error was detected.  The system may need to be rebooted. 

sd?:  single sector I/O failed

The driver attempted to recover from a transfer by writing each sector, one at a time, and failed.  The disk needs to be reformatted to map out the new defect causing this error. 

sd?:  retry failed
sd?:  rezero failed

A disk operation failed.  The driver first tries to recover by retrying the command, if that fails, the driver rezeros the heads to cylinder 0 and repeats the retries.  A failure of either the retry or rezero operations results in these warning messages; the error recovery operation continues until the retry count is exhausted.  At that time a hard error is posted. 

sd?:  request sense failed

The driver was attempting to determine the cause of an I/O failure and was unable to get more information.  This implies that the disk device may have failed. 

sd?:  warning, abs. block %d has failed %d times

The driver is warning the user that the specified block has failed repeatedly. 

sd?:  block %d needs mapping
sd?:  reassigning defective abs. block %d

The specified block has failed repeatedly and may soon become an unrecoverable failure.  If the driver does not map out the specified block automatically, it is recommend that the user correct the problem. 

sd?:  reassign block failed

The driver attempted to map out a block having excessive soft errors and failed.  The user needs to run format and repair the disk. 

sd?%c: cmd how blk %d (rel. blk %d)
       sense key(0x%x): %s, error code(0x%x): %s

An I/O operation (cmd), encountered an error condition at absolute block (blk %d), partition (sd?%c:), or relative block (rel. block%d).  The error recovery operation (how) indicates whether it retry’ed, restored, or failed. The sense key and error code of the error are displayed for diagnostic purposes.  The absolute blk of the the error is used for mapping out the defective block.  The rel. blk is the block (sector) in error, relative to the beginning of the partition involved.  This is useful for using icheck(8) to repair a damaged file structure on the disk. 

BUGS

A logical block size of 512 bytes is assumed (and enforced on SPARCstation 1). 

Solbourne Computer, Inc.  —  26 December 1990

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026