|
| sd - SCSI disk and ATAPI/SCSI CD-ROM
device driver |
SYNOPSIS
|
SPARC
|
The sd SCSI and SCSI/ATAPI driver supports embedded SCSI-2 and CCS-compatible SCSI disk and CD-ROM drives, ATAPI 2.6 (SFF-8020i)-compliant CD-ROM drives, SFF-8090-compliant SCSI/ATAPI DVD-ROM drives, IOMEGA SCSI/ATAPI
ZIP drives, SCSI JAZ drives, and USB mass storage devices
(refer to scsa2usb(7D)).
To determine the disk drive type, use the SCSI/ATAPI
inquiry command and read the volume label stored on block 0 of the drive.
(The volume label describes the disk geometry and partitioning and must be
present for the disk to be mounted by the system.) A volume label is not required
for removable, rewritable or read-only media.
|
IA Only
|
The sd driver supports embedded SCSI-2
and CCS-compatible SCSI disk and CD-ROM
drives, ATAPI 2.6 (SFF-8020i)-compliant CD-ROM drives,
SFF-8090-compliant SCSI/ATAPI DVD-ROM drives, IOMEGA SCSI/ATAPI ZIP drives, and SCSI JAZ drives.
The IA BIOS legacy requires a master boot record (MBR) and fdisk table in the first physical sector of the bootable media.
If the IA hard disk contains a Solaris disk label, it is located in
the second 512-byte sector of the FDISK partition.
|
|
|
Block-files access the disk using normal buffering mechanism and are
read-from and written-to without regard to physical disk records. A "raw"
interface enables direct transmission between the disk and the user's read
or write buffer. A single read or write call
usually results in a single I/O operation; raw I/O is therefore more efficient
when many bytes are transmitted. Block files names are found in /dev/dsk; raw file names are found in /dev/rdsk.
I/O requests to the raw device must be aligned on a 512-byte (DEV_BSIZE) boundary and all I/O request lengths must be in multiples
of 512 bytes. Requests that do not meet these requirements will trigger an EINVAL error. There are no alignment or length restrictions on
I/O requests to the block device.
|
|
A CD-ROM disk is single-sided and contains approximately 640 megabytes
of data or 74 minutes of audio. When the CD-ROM is opened, the eject button
is disabled to prevent manual removal of the disk until the last close() is called. No volume label is required for a CD-ROM.
The disk geometry and partitioning information are constant and never change.
If the CD-ROM contains data recorded in a Solaris-aware file system format,
it can be mounted using the appropriate Solaris file system support.
|
|
DVD-ROM media can be single or double-sided and can be recorded upon
using a single or double layer structure. Double-layer media provides parallel
or opposite track paths. A DVD-ROM can hold from between 4.5 Gbytes and 17
Gbytes of data, depending on the layer structure used for recording and if
the DVD-ROM is single or double-sided.
When the DVD-ROM is opened, the eject button is disabled to prevent
the manual removal of a disk until the last close() is
called. No volume label is required for a DVD-ROM. If the DVD-ROM contains
data recorded in a Solaris-aware file system format, it can be mounted using
the appropriate Solaris file system support.
|
|
ZIP/JAZ media provide varied data capacity points;
a single JAZ drive can store up to 2 GBytes of data, while
a ZIP-250 can store up to 250MBytes of data. ZIP/JAZ drives
can be read-from or written-to using the appropriate drive.
When a ZIP/JAZ drive is opened, the eject button
is disabled to prevent the manual removal of a disk until the last close() is called. No volume label is required for a ZIP/JAZ drive. If the ZIP/JAZ drive contains data recorded
in a Solaris-aware file system format, it can be mounted using the appropriate
Solaris file system support.
|
|
Each device maintains I/O statistics for the device and for partitions
allocated for that device. For each device/partition, the driver accumulates
reads, writes, bytes read, and bytes written. The driver also initiates hi-resolution
time stamps at queue entry and exit points to enable monitoring of residence
time and cumulative residence-length product for each queue.
Not all device drivers make per-partition IO statistics available for
reporting. sd and ssd(7D)
per-partition statistics are enabled by default but may disabled in their
configuration files.
|
|
Refer to dkio(7I),
and cdio(7I)
ERRORS
|
-
EACCES
- Permission
denied
-
EBUSY
- The
partition was opened exclusively by another thread
-
EFAULT
- The
argument features a bad address
-
EINVAL
- Invalid
argument
-
ENOTTY
- The
device does not support the requested ioctl function
-
ENXIO
- During
opening, the device did not exist. During close, the drive unlock failed
-
EROFS
- The
device is read-only
-
EAGAIN
- Resource
temporarily unavailable
-
EINTR
- A signal
was caught during the execution of the ioctl() function
-
ENOMEM
- Insufficient
memory
-
EPERM
- Insufficent
access permission
-
EIO
- An I/O
error occurred. Refer to notes for details on copy-protected DVD-ROM media.
|
|
|
The sd driver can be configured by defining properties
in the sd.conf file. The sd driver
supports the following properties:
-
enable-partition-kstats
- The default value is 1, which causes partition IO statistics to be maintained.
Set this value to zero to prevent the driver from recording partition statistics.
This slightly reduces the CPU overhead for IO, mimimizes the amount of sar(1) data collected
and makes these statistics unavailable for reporting by iostat(1M) even though the -p/-P option is specified. Regardless of this setting,
disk IO statistics are always maintained.
-
qfull-retries
- The supplied value is passed as the qfull-retries capability
value of the HBA driver. See scsi_ifsetcap(9F)
for details.
-
qfull-retry-interval
- The supplied value is passed as the qfull-retry interval
capability value of the HBA driver. See scsi_ifsetcap(9F)
for details.
-
allow-bus-device-reset
- The default value is 1, which allows resetting to occur. Set this value
to 0 (zero) to prevent the sd driver
from calling scsi_reset(9F)
with a second argument of RESET_TARGET when in error-recovery
mode. This scsi_reset(9F)
call may prompt the HBA driver to send a SCSI Bus Device Reset message. The scsi_reset(9F)
call with a second argument of RESET_TARGET may result
from an explicit request via the USCSICMD ioctl. Some high-availability multi-initiator systems may wish to prohibit
the Bus Device Reset message; to do this, set the allow-bus-device-reset property to 0.
|
|
-
/kernel/drv/sd.conf
- driver configuration file
-
/dev/dsk/cntndnsn
- block files
-
/dev/rdsk/cntndnsn
- raw files
Where:
- cn
- controller n
- tn
- SCSI target id n (0-6)
- dn
- SCSI LUN n (0-7 normally;
some HBAs support LUNs to 15 or 32. See the specific manpage for details)
- sn
- partition n (0-7)
IA Only
|
-
/dev/rdsk/cntndnpn
- raw files
Where:
- pn
- Where n=0 the node corresponds to the entire disk.
|
|
|
sar(1), cfgadm_scsi(1M), fdisk(1M), format(1M), iostat(1M), close(2), ioctl(2), lseek(2), read(2), write(2), driver.conf(4), scsi(4), filesystem(5), scsa2usb(7D), ssd(7D), hsfs(7FS), pcfs(7FS), udfs(7FS), cdio(7I), dkio(7I), scsi_ifsetcap(9F), scsi_reset(9F)
ANSI Small Computer System Interface-2 (SCSI-2)
ATA Packet Interface for CD-ROMs, SFF-8020i
Mt.Fuji Commands for CD and DVD, SFF8090v3
http://www.sun.com/io
|
|
|
Error for Command:'<command name>'
Error Level: Fatal
Requested Block: <n>
Error Block: <m>
Vendor:'<vendorname>'
Serial Number:'<serial number>'
Sense Key:<sense key name>
|
- ASC: 0x<a> (<ASC name>), ASCQ: 0x<b>, FRU: 0x<c>
- The command indicated by <command name> failed.
The Requested Block is the block where the transfer started and the Error
Block is the block that caused the error. Sense Key, ASC,
and ASCQ information is returned by the target in response
to a request sense command.
- Caddy not inserted in drive
- The
drive is not ready because no caddy has been inserted.
- Check Condition on REQUEST SENSE
- A REQUEST SENSE command completed with a check condition. The original command
will be retried a number of times.
- Label says <m> blocks Drive says <n> blocks
- There is a discrepancy between the label and what the drive
returned on the READ CAPACITY command.
- Not enough sense information
- The
request sense data was less than expected.
- Request Sense couldn't get sense data
- The REQUEST SENSE command did not transfer any data.
- Reservation Conflict
- The drive was
reserved by another initiator.
- SCSI transport failed: reason 'xxxx': {retrying|giving
up}
- The host adapter has failed to transport a command
to the target for the reason stated. The driver will either retry the command
or, ultimately, give up.
- Unhandled Sense Key<n>
- The REQUEST SENSE data included an invalid sense.
- Unit not ready. Additional sense code 0x
-
<n> The drive is not ready.
- Can't do switch back to mode 1
- A failure to switch back to read mode 1.
- Corrupt label - bad geometry
- The
disk label is corrupted.
- Corrupt label - label checksum failed
- The disk label is corrupted.
- Corrupt label - wrong magic number
- The disk label is corrupted.
- Device busy too long
- The drive returned
busy during a number of retries.
- Disk not responding to selection
- The drive is powered down or died
- Failed to handle UA
- A retry on a
Unit Attention condition failed.
- I/O to invalid geometry
- The geometry
of the drive could not be established.
- Incomplete read/write - retrying/giving up
- There was a residue after the command completed normally.
- No bp for direct access device format geometry
- A bp with consistent memory could not be allocated.
- No bp for disk label
- A bp with consistent
memory could not be allocated.
- No bp for fdisk
- A bp with consistent
memory could not be allocated.
- No bp for rigid disk geometry
- A
bp with consistent memory could not be allocated.
- No mem for property
- Free memory
pool exhausted.
- No memory for direct access device format geometry
- Free memory pool exhausted.
- No memory for disk label
- Free memory
pool exhausted.
- No memory for rigid disk geometry
- The disk label is corrupted.
- No resources for dumping
- A packet
could not be allocated during dumping.
- Offline
- Drive went offline; probably
powered down.
- Requeue of command fails
- Driver
attempted to retry a command and experienced a transport error.
- sdrestart transport failed()
- Driver
attempted to retry a command and experienced a transport error.
- Transfer length not modulo
- Illegal
request size.
- Transport of request sense fails()
- Driver attempted to submit a request sense command and failed.
- Transport rejected()
- Host adapter
driver was unable to accept a command.
- Unable to read label
- Failure to
read disk label.
- Unit does not respond to selection
- Drive went offline; probably powered down.
|
|
DVD-ROM media containing DVD-Video data may follow/adhere to the requirements
of content scrambling system or copy protection scheme. Reading of copy-protected
sector will cause I/O error. Users are advised to use the appropriate playback
software to view video contents on DVD-ROM media containing DVD-Video data.
|
| |