sg_readcap man page on RedHat
[printable version]
SG_READCAP(8) SG3_UTILS SG_READCAP(8)
NAME
sg_readcap - send SCSI READ CAPACITY command
SYNOPSIS
sg_readcap [--16] [--brief] [--help] [--hex] [--lba=LBA] [--long]
[--pmi] [--raw] [--verbose] [--version] DEVICE
sg_readcap [-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 num‐
ber 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.
The READ CAPACITY(16) response provides additional information not
found in the READ CAPACITY(10) response. This includes protection and
logical block provisioning information, plus 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). Sadly there are horrible SCSI command
set implementations in the wild that crash when the READ CAPACITY(16)
command is sent to them.
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).
If sg_readcap 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.
This utility supports two command line syntaxes, the preferred one is
shown first in the synopsis and explained in this section. A later sec‐
tion on the old command line syntax outlines the second group of
options.
OPTIONS
Arguments to long options are mandatory for short options as well.
--16 Use the 16 byte cdb variant of the READ CAPACITY command.
See the '--long' option. -b, --brief outputs two hex
numbers (prefixed with '0x' and space separated) to std‐
out. The first number is the maximum number of blocks on
the device (which is one plus the lba of the last acces‐
sible block). The second number is the size in bytes 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 ASCII hexadecimal on
stdout.
-L, --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. 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. This option was made obsolete in SBC-3
revision 26.
-l, --long
Use the 16 byte cdb variant of the READ CAPACITY command.
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 or later).
-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 con‐
junction with the --lba=LBA option. This option was made
obsolete in SBC-3 revision 26.
-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
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 example
"sg_readcap /dev/sda" and "sg_readcap /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 sg_readcap is 0 when it is successful. Other‐
wise see the sg3_utils(8) man page.
OLDER COMMAND LINE OPTIONS
The options in this section were the only ones available prior
to sg3_utils version 1.23 . In sg3_utils version 1.23 and later
these older options can be selected by either setting the
SG3_UTILS_OLD_OPTS environment variable or using '--old' (or
'-O) as the first option.
-16 Use the 16 byte cdb variant of the READ CAPACITY command.
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 maxi‐
mum 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 ASCII hexadecimal 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).
-v verbose: print out cdb of issued commands prior to execu‐
tion. '-vv' and '-vvv' are also accepted yielding greater
verbosity.
-V outputs version string then exits.
AUTHORS
Written by Douglas Gilbert
COPYRIGHT
Copyright © 1999-2013 Douglas Gilbert
This software is distributed under the GPL version 2. There is
NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PAR‐
TICULAR PURPOSE.
SEE ALSO
sg_inq(sg3_utils)
sg3_utils-1.36 May 2012 SG_READCAP(8)
[top]
List of man pages available for RedHat
Copyright (c) for man pages and the logo by the respective OS vendor.
For those who want to learn more, the polarhome community provides shell access and support.
[legal]
[privacy]
[GNU]
[policy]
[cookies]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
|
Vote for polarhome
|