Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sg_get_lba_status(8) [debian man page]

SG_GET_LBA_STATUS(8)						     SG3_UTILS						      SG_GET_LBA_STATUS(8)

NAME
sg_get_lba_status - send the SCSI GET LBA STATUS command SYNOPSIS
sg_get_lba_status [--brief] [--help] [--hex] [--lba=LBA] [--maxlen=LEN] [--raw] [--verbose] [--version] DEVICE DESCRIPTION
Send the SCSI GET LBA STATUS command to the DEVICE and outputs the response. This command was introduced in (draft) SBC-3 revision 20 and devices that support logical block provisioning should support this command. The default action is to decode the response into one LBA status descriptor per line output to stdout. The descriptor LBA is output in hex (prefixed by '0x') and the number of blocks is output in decimal followed by the provisioning status in decimal. The provisioning status can be in the range 0 to 15 of which only 0 (mapped), 1 (unmapped) and 2 (anchored) are used currently. The amount of output can be reduced by the --brief option. OPTIONS
Arguments to long options are mandatory for short options as well. -b, --brief when use once then one LBA status descriptor per line is output to stdout. Each line has this format: "0x<descriptor_LBA> 0x<blocks> <provisioning_status>". So the descriptor LBA and blocks are output in hex and the provisioning status in decimal. When used twice (e.g. '-bb' or '--brief --brief') the the provisioning status of the given LBA (or LBA 0 if the --lba option is not given) is output to stdout. A check is made that the given LBA lies on the range of the first returned LBA status descriptor (as it should according to SBC-3 revision 20) and warnings are sent to stderr if it doesn't. -h, --help output the usage message then exit. -H, --hex output response to this command in ASCII hex. -l, --lba=LBA where LBA is the starting Logical Block Address (LBA) to check the provisioning status for. Note that the DEVICE chooses how many following blocks that it will return provisioning status for. -m, --maxlen=LEN where LEN is the (maximum) response length in bytes. It is placed in the cdb's "allocation length" field. If not given then 24 is used. 24 is enough space for the response header and one LBA status descriptor. LEN should be 8 plus a multiple of 16 (e.g. 24, 40, and 56 are suitable). -r, --raw output response in binary (to stdout). -v, --verbose increase the level of verbosity, (i.e. debug output). Additional output caused by this option is sent to stderr. -V, --version print the version string and then exit. NOTES
In SBC-3 revision 25 the calculation associated with the Parameter Data Length field in the response was modified. Prior to that the byte offset was 8 and in revision 25 it was changed to 4. For a discussion of logical block provisioning see section 4.7 of sbc3r29.pdf at http://www.t10.org (or the corresponding section of a later draft). EXIT STATUS
The exit status of sg_get_lba_status is 0 when it is successful. Otherwise see the sg3_utils(8) man page. AUTHORS
Written by Douglas Gilbert. REPORTING BUGS
Report bugs to <dgilbert at interlog dot com>. COPYRIGHT
Copyright (C) 2009-2012 Douglas Gilbert This software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR- POSE. SEE ALSO
sg_write_same(8), sg_unmap(8) sg3_utils-1.33 January 2012 SG_GET_LBA_STATUS(8)

Check Out this Related Man Page

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 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. 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 num- ber 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 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. --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 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 in bytes of each block. If the operation fails then "0x0 0x0" is writ- ten 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 revi- sion 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 max- imum 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 conjunction 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. Otherwise 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 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 opera- tion 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 execution. '-vv' and '-vvv' are also accepted yielding greater verbosity. -V outputs version string then exits. AUTHORS
Written by Douglas Gilbert COPYRIGHT
Copyright (C) 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 PARTICULAR PUR- POSE. SEE ALSO
sg_inq(sg3_utils) sg3_utils-1.36 May 2012 SG_READCAP(8)
Man Page