SG3UTILS SGREADCAP(1M)
NAME
sgreadcap - sends a SCSI READ CAPACITY command
SYNOPSIS
sgreadcap [--brief] [--help] [--hex] [--lba=LBA] [--long]
[--pmi] [--raw] [--verbose] [--version] DEVICE
sgreadcap [-16] [-b] [-h] [-H] [-lba=LBA] [-pmi] [-r] [-v]
[-V] DEVICE
DESCRIPTION
The normal action of the SCSI READ CAPACITY command is to
fetch the number of blocks (and block size) from the DEVICE.
The SCSI READ CAPACITY command (both 10 and 16 byte cdbs)
actually yield the block address of the last block and the
block size. The number of blocks is thus one plus the block
address of the last block (as blocks are counted origin zero
(i.e. starting at block zero)). This is the source of many
"off by one" errors.
Device capacity is the product of the number of blocks by
the block size. This utility outputs this figure in bytes,
MiB (1048576 bytes per MiB) and GB (1000000000 bytes per
GB).
This utility supports two command line syntaxes, the pre-
ferred one is shown first in the synopsis and explained in
this section. A later section on the old command line syntax
outlines the second group of options.
OPTIONS
Arguments to long options are mandatory for short options as
well.
-b, --brief
outputs two hex numbers (prefixed with '0x' and space
separated) to stdout. The first number is the maximum
number of blocks on the device (which is one plus the
lba of the last accessible block). The second number is
the size of each block. If the operation fails then
"0x0 0x0" is written to stdout.
-h, --help
print out the usage message then exit.
-H, --hex
output the response to the READ CAPACITY command
(either the 10 or 16 byte cdb variant) in ASCI hexade-
cimal on stdout.
-L, --lba=LBA
sg3utils-1.23 Last change: January 2007 1
SG3UTILS SGREADCAP(1M)
used in conjunction with --pmi option. This variant of
READ CAPACITY will yield the last block address after
LBA prior to a delay. For a disk, given a LBA it yields
the highest numbered block on the same cylinder (i.e.
before the heads need to move). LBA is assumed to be
decimal unless prefixed by "0x" or it has a trailing
"h". Defaults to 0.
-l, --long
Use the 16 byte cdb variant of the READ CAPACITY com-
mand. The default action is to use the 10 byte cdb
variant which limits the maximum block address to
(2**32 - 2). When a 10 byte cdb READ CAPACITY command
is used on a device whose size is too large then a last
block address of 0xffffffff is returned (if the device
complies with SBC-2).
-O, --old
switch to older style options.
-p, --pmi
partial medium indicator: for finding the next block
address prior to some delay (e.g. head movement). In
the absence of this option, the total number of blocks
and the block size of the device are output. Used in
conjunction with the --lba=LBA option.
-r, --raw
output response in binary to stdout.
-v, --verbose
increase level of verbosity. Can be used multiple
times.
-V, --version
outputs version string then exits.
NOTES
If sgreadcap is called without the --long option then the
10 byte cdb version (i.e. READ CAPACITY (10)) is sent to the
DEVICE. If the number of blocks in the response is reported
as 0xffffffff (i.e. (2**32 - 1) ) and the --hex option has
not been given, then READ CAPACITY (16) is called and its
response is output.
The read capacity(16) response shows additional information
not found in the read capacity(10) response. This includes
protection information and the number of logical blocks per
physical block. So even though the media size may not exceed
what READ CAPACITY(10) can show, it may still be useful to
examine the response to READ CAPACITY(16).
sg3utils-1.23 Last change: January 2007 2
SG3UTILS SGREADCAP(1M)
In the 2.4 series of Linux kernels the DEVICE must be a SCSI
generic (sg) device. In the 2.6 series block devices (e.g.
SCSI disks and DVD drives) can also be specified. For exam-
ple "sgreadcap /dev/sda" and "sgreadcap /dev/hdd" (if
/dev/hdd is a ATAPI CD/DVD device) will work in the 2.6
series kernels.
EXIT STATUS
The exit status of sgreadcap is 0 when it is successful.
Otherwise see the sg3utils(1M) man page.
OLDER COMAND LINE OPTIONS
The options in this section were the only ones available
prior to sg3utils version 1.23 . In sg3utils version 1.23
and later these older options can be selected by either set-
ting the SG3UTILSOLDOPTS environment variable or using
'--old' (or '-O) as the first option.
-16 Use the 16 byte cdb variant of the READ CAPACITY com-
mand. Equivalent to --long in the main description.
-b utility outputs two hex numbers (prefixed with '0x' and
space separated) to stdout. The first number is the
maximum number of blocks on the device (which is one
plus the lba of the last accessible block). The second
number is the size of each block. If the operation
fails then "0x0 0x0" is written to stdout. Equivalent
to --brief in the main description.
-h output the usage message then exit. Giving the -?
option also outputs the usage message then exits.
-H output the response to the READ CAPACITY command
(either the 10 or 16 byte cdb variant) in ASCI hexade-
cimal on stdout.
-lba=LBA
used in conjunction with -pmi option. This variant of
READ CAPACITY will yield the last block address after
LBA prior to a delay. Equivalent to --lba=LBA in the
main description.
-N switch to the newer style options.
-pmi partial medium indicator: for finding the next block
address prior to some delay (e.g. head movement). In
the absence of this switch, the total number of blocks
and the block size of the device are output.
Equivalent to --pmi in the main description.
-r output response in binary (to stdout).
sg3utils-1.23 Last change: January 2007 3
SG3UTILS SGREADCAP(1M)
-v verbose: print out cdb of issued commands prior to exe-
cution. '-vv' and '-vvv' are also accepted yielding
greater verbosity.
-V outputs version string then exits.
AUTHORS
Written by Douglas Gilbert
COPYRIGHT
Copyright O 1999-2007 Douglas Gilbert
This software is distributed under the GPL version 2. There
is NO warranty; not even for MERCHANTABILITY or FITNES FOR
A PARTICULAR PURPOSE.
SEE ALSO
sginq(sg3utils)
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Availability SUNWsg3utilsu
Interface Stability Committed
NOTES
Source for sg3utils is available on http:/opensolaris.org.
sg3utils-1.23 Last change: January 2007 4
|