A device name can be thought of as a gateway to a kernel driver that controls a device rather than the device itself. Hence there can be multiple device names some of which may offer slightly different characteristics, all mapping to the same actual device.
The device names of the various SCSI devices are found within the
/dev
directory. Traditionally in Linux, SCSI
devices have been identified by their major and minor device number
rather than their SCSI bus addresses (e.g. SCSI target id and LUN).
The device pseudo file system (devfs) moves away from the major and
minor device number scheme and for the SCSI subsystem uses device names
based on the SCSI bus addresses [discussed later in
Section 3, “Device Names in devfs” and see reference: W5].
Alternatively, there is a utility called scsidev
which addresses this issue within the scope of the Linux SCSI subsystem
and thus does not have the same system wide impact as devfs. Scsidev is
discussed later in Section 4, “Device Names in scsidev” and ref:
W6.
Eight block major numbers are reserved for SCSI disks: 8, 65, 66, 67, 68, 69, 70 and 71. Each major can accommodate 256 minor numbers which, in the case of SCSI disks, are subdivided as follows:
[b,8,0] /dev/sda [b,8,1] /dev/sda1 .... [b,8,15] /dev/sda15 [b,8,16] /dev/sdb [b,8,17] /dev/sdb1 .... [b,8,255] /dev/sdp15
The disk device names without a trailing digit refer to the whole disk
(e.g. /dev/sda
)
while those with a trailing digit refer to one of the 15 allowable
partitions
[2]
within that disk.
The remaining 7 SCSI disk block major numbers follow a similar pattern:
[b,65,0] /dev/sdq [b,65,1] /dev/sdq1 .... [b,65,159] /dev/sdz15 [b,65,160] /dev/sdaa [b,65,161] /dev/sdaa1 .... [b,65,255] /dev/sdaf15 [b,66,0] /dev/sdag [b,66,1] /dev/sdag1 .... [b,66,255] /dev/sdav15 .... [b,71,255] /dev/sddx15
So there are 128 possible disks (i.e. /dev/sda
to
/dev/sddx
) each having up
to 15 partitions. By way of contrast, the IDE subsystem allows 20 disks
(10 controllers each with 1 master and 1 slave) which can have up to 63
partitions each.
SCSI CD-ROM devices are allocated the block major number of 11. Traditionally
sr
has been the device name but scd
probably is more recognizable and is
favoured by several recent distributions. 256 SCSI CD-ROM devices are
allowed:
[b,11,0] /dev/scd0 [or /dev/sr0] [b,11,255] /dev/scd255 [or /dev/sr255]
SCSI tape devices are allocated the char major number of 9. Up to 32 tape devices are supported each of which can be accessed in one of four modes (0, 1, 2 and 3), with or without rewind. The devices are allocated as follows:
[c,9,0] /dev/st0 [tape 0, mode 0, rewind] [c,9,1] /dev/st1 [tape 1, mode 0, rewind] .... [c,9,31] /dev/st31 [tape 31, mode 0, rewind] [c,9,32] /dev/st0l [tape 0, mode 1, rewind] .... [c,9,63] /dev/st31l [tape 31, mode 1, rewind] [c,9,64] /dev/st0m [tape 0, mode 2, rewind] .... [c,9,96] /dev/st0a [tape 0, mode 3, rewind] .... [c,9,127] /dev/st31a [tape 31, mode 3, rewind] [c,9,128] /dev/nst0 [tape 0, mode 0, no rewind] .... [c,9,160] /dev/nst0l [tape 0, mode 1, no rewind] .... [c,9,192] /dev/nst0m [tape 0, mode 2, no rewind] .... [c,9,224] /dev/nst0a [tape 0, mode 3, no rewind] .... [c,9,255] /dev/nst31a [tape 31, mode 3, no rewind]
The SCSI generic (sg) devices are allocated the char major number of 21. There are 256 possible SCSI generic (sg) devices:
[c,21,0] /dev/sg0 [c,21,1] /dev/sg1 .... [c,21,255] /dev/sg255
Note that the SCSI generic device name's use of a trailing letter (e.g.
/dev/sgc
) is deprecated.
Each SCSI disk (but not each partition), each SCSI CD-ROM and each SCSI tape is mapped to an sg device. SCSI devices that don't fit into these three categories (e.g. scanners) also appear as sg devices.
Pseudo devices [see Section 1, “Pseudo drivers”] can cause devices
that are usually not considered as SCSI to appear as SCSI device names.
For example an ATAPI CD-ROM may be picked up by the ide-scsi pseudo
driver and mapped to /dev/scd0
.
The linux/Documentation/devices.txt
file supplied
within the kernel source is the definitive reference for Linux device
names and their corresponding major and minor number allocations.
[2]
If 15 partitions is too limiting then the Logical Volume Manager (LVM)
might be considered. See /usr/src/linux/Documentation/LVM-HOWTO
. LVM will also allow a logical partition to span multiple
block devices.