274 lines
7.2 KiB
Groff
274 lines
7.2 KiB
Groff
.\" $NetBSD: sd.4,v 1.18 2010/03/22 18:58:31 joerg Exp $
|
|
.\"
|
|
.\" Copyright (c) 1996
|
|
.\" Julian Elischer <julian@freebsd.org>. All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\"
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
.\" SUCH DAMAGE.
|
|
.\"
|
|
.Dd January 18, 1996
|
|
.Dt SD 4
|
|
.Os
|
|
.Sh NAME
|
|
.Nm sd
|
|
.Nd SCSI and ATAPI disk driver
|
|
.Sh SYNOPSIS
|
|
.Cd "sd* at scsibus? target ? lun ?"
|
|
.Cd "sd3 at scsibus0 target 3 lun 0"
|
|
.Cd "sd* at atapibus? drive ? flags 0x0000"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
driver provides support for
|
|
.Tn SCSI
|
|
bus and Advanced Technology Attachment Packet Interface
|
|
.Pq Tn ATAPI
|
|
disks.
|
|
It allows the disk to be divided up into a set of pseudo devices called
|
|
.Em partitions .
|
|
In general the interfaces are similar to those described by
|
|
.Xr wd 4 .
|
|
.Pp
|
|
Where the
|
|
.Xr wd 4
|
|
device has a fairly low level interface to the system,
|
|
.Tn SCSI
|
|
devices have a much higher level interface and talk to the system via a
|
|
.Tn SCSI
|
|
host adapter
|
|
(e.g.,
|
|
.Xr ahc 4 ) .
|
|
A
|
|
.Tn SCSI
|
|
adapter must also be separately configured into the system
|
|
before a
|
|
.Tn SCSI
|
|
disk can be configured.
|
|
.Pp
|
|
When the
|
|
.Tn SCSI
|
|
adapter is probed during boot, the
|
|
.Tn SCSI
|
|
bus is scanned for devices.
|
|
Any devices found which answer as
|
|
.Sq Em Direct
|
|
type devices will be attached to the
|
|
.Nm
|
|
driver.
|
|
.Pp
|
|
For the use of flags with ATAPI devices, see
|
|
.Xr wd 4 .
|
|
.\"In
|
|
.\".Tn FreeBSD
|
|
.\"releases prior to 2.1, the first found was attached as
|
|
.\".Li sd0 ,
|
|
.\"the second
|
|
.\".Li sd1 ,
|
|
.\"and so on.
|
|
.\"Beginning in 2.1 it became possible to lock down the assignment of
|
|
.\"devices on the
|
|
.\".Tn SCSI
|
|
.\"bus to particular units of the
|
|
.\".Nm
|
|
.\"device; refer to
|
|
.\".Xr scsi 4
|
|
.\"for details on kernel configuration.
|
|
.Sh PARTITIONING
|
|
.\"The
|
|
.\".Nm
|
|
.\"driver allows the disk to have two levels of partitioning.
|
|
.\"One layer, called the
|
|
.\".Dq slice layer ,
|
|
.\"is used to separate the
|
|
.\".Tn FreeBSD
|
|
.\"areas of the disk from areas used by other operating systems.
|
|
.\"The second layer is the native
|
|
.\".Bx 4.4
|
|
.\"partitioning scheme,
|
|
.\".Xr disklabel 5 ,
|
|
.\"which is used to subdivide the
|
|
.\".Tn FreeBSD
|
|
.\"slices into areas for individual filesystems and swap spaces.
|
|
.\"For more information, see
|
|
.\".Xr fdisk 8
|
|
.\"and
|
|
.\".Xr disklabel 8 ,
|
|
.\"respectively.)
|
|
On many systems
|
|
.Xr disklabel 8
|
|
is used to partition the drive into filesystems.
|
|
On some systems the
|
|
.Nx
|
|
portion of the disk resides within a native partition, and another
|
|
program is used to create the
|
|
.Nx
|
|
portion.
|
|
.Pp
|
|
For example, the i386 port uses
|
|
.Xr fdisk 8
|
|
to partition the disk into a
|
|
.Tn BIOS
|
|
level partition.
|
|
This allows sharing the disk with other operating systems.
|
|
.Pp
|
|
.\"If an uninitialized disk is opened, the slice table will be
|
|
.\"initialized with a fictitious
|
|
.\".Tn FreeBSD
|
|
.\"slice spanning the entire disk. Similarly, if an uninitialized
|
|
.\"(or
|
|
.\".No non- Ns Tn FreeBSD )
|
|
.\"slice is opened, its disklabel will be initialized with parameters returned
|
|
.\"by the drive and a single
|
|
.\".Sq Li c
|
|
.\"partition encompassing the entire slice.
|
|
.\".Sh KERNEL CONFIGURATION
|
|
.\"It is only necessary to explicitly configure one
|
|
.\".Nm
|
|
.\"device; data structures are dynamically allocated as disks are found
|
|
.\"on the
|
|
.\".Tn SCSI
|
|
.\"bus.
|
|
.Sh CONFIGURATION OPTIONS
|
|
The following
|
|
.Xr config 1
|
|
options may be applied to
|
|
.Tn SCSI
|
|
disks as well as to other disks.
|
|
.Pp
|
|
.Bl -tag -width SD_IO_TIMEOUT
|
|
.It Dv SDRETRIES
|
|
Set the number of retries that will be performed for operations it
|
|
makes sense to retry (e.g., normal reads and writes). The default
|
|
is four (4).
|
|
.It Dv SD_IO_TIMEOUT
|
|
Set amount of time, in milliseconds, a normal read or write is expected
|
|
to take. The defaults is sixty seconds (60000 milliseconds). This is used
|
|
to set watchdog timers in the
|
|
.Tn SCSI
|
|
HBA driver to catch commands that might have died on the device.
|
|
.El
|
|
.Sh IOCTLS
|
|
The following
|
|
.Xr ioctl 2
|
|
calls apply to
|
|
.Tn SCSI
|
|
disks as well as to other disks.
|
|
They are defined in the header file
|
|
.In disklabel.h .
|
|
.Pp
|
|
.Bl -tag -width DIOCSDINFO
|
|
.\".It Dv DIOCSBAD
|
|
.\"Usually used to set up a bad-block mapping system on the disk.
|
|
.\".Tn SCSI
|
|
.\"drive incorporate their own bad-block mapping so this command is not
|
|
.\"implemented.
|
|
.It Dv DIOCGDINFO
|
|
Read, from the kernel, the in-core copy of the disklabel for the drive.
|
|
This may be a fictitious disklabel if the drive has never
|
|
been initialized, in which case it will contain information read
|
|
from the
|
|
.Tn SCSI
|
|
inquiry commands.
|
|
.It Dv DIOCSDINFO
|
|
Give the driver a new disklabel to use.
|
|
The driver
|
|
.Em will not
|
|
write the new
|
|
disklabel to the disk.
|
|
.It Dv DIOCKLABEL
|
|
Keep or drop the in-core disklabel on the last close.
|
|
.It Dv DIOCWLABEL
|
|
Enable or disable the driver's software
|
|
write protect of the disklabel on the disk.
|
|
.It Dv DIOCWDINFO
|
|
Give the driver a new disklabel to use.
|
|
The driver
|
|
.Em will
|
|
write the new disklabel to the disk.
|
|
.It Dv DIOCLOCK
|
|
Lock the media cartridge into the device, or unlock a cartridge previously
|
|
locked.
|
|
Used to prevent user and software eject while the media is in use.
|
|
.It Dv DIOCEJECT
|
|
Eject the media cartridge from a removable device.
|
|
.El
|
|
.Pp
|
|
In addition, the
|
|
.Xr scsi 4
|
|
general
|
|
.Fn ioctl
|
|
commands may be used with the
|
|
.Nm
|
|
driver, but only against the
|
|
.Sq Li c
|
|
(whole disk) partition.
|
|
.Sh NOTES
|
|
If a removable device is attached to the
|
|
.Nm
|
|
driver, then the act of changing the media will invalidate the
|
|
disklabel and information held within the kernel.
|
|
To avoid corruption, all accesses to the device will be discarded
|
|
until there are no more open file descriptors referencing the
|
|
device.
|
|
During this period, all new open attempts will be rejected.
|
|
When no more open file descriptors reference the device, the first
|
|
next open will load a new set of parameters (including disklabel)
|
|
for the drive.
|
|
.Sh FILES
|
|
.Bl -tag -width /dev/rsdXXXXX -compact
|
|
.It Pa /dev/sd Ns Ar u Ns Ar p
|
|
block mode
|
|
.Tn SCSI
|
|
disk unit
|
|
.Ar u ,
|
|
partition
|
|
.Ar p
|
|
.It Pa /dev/rsd Ns Ar u Ns Ar p
|
|
raw mode
|
|
.Tn SCSI
|
|
disk unit
|
|
.Ar u ,
|
|
partition
|
|
.Ar p
|
|
.El
|
|
.Sh DIAGNOSTICS
|
|
None.
|
|
.Sh SEE ALSO
|
|
.Xr ioctl 2 ,
|
|
.Xr intro 4 ,
|
|
.Xr scsi 4 ,
|
|
.Xr wd 4 ,
|
|
.Xr disklabel 5 ,
|
|
.Xr disklabel 8 ,
|
|
.Xr fdisk 8 ,
|
|
.Xr scsictl 8
|
|
.Sh HISTORY
|
|
The
|
|
.Nm
|
|
driver was originally written for
|
|
.Tn Mach
|
|
2.5, and was ported to
|
|
.Fx
|
|
by Julian Elischer.
|
|
It was later ported to
|
|
.Nx .
|