マニュアルページセク ション 1M: システム管理コマンド

印刷ビューの終了

更新: 2014 年 7 月
 
 

sg_reassign (1m)

名前

sg_reassign - sends a SCSI REASSIGN BLOCKS command

形式

sg_reassign   [--address=A,A...]   [--dummy]   [--eight=0|1]
[--grown] [--help] [--longlist=0|1] [--primary]  [--verbose]
[--version] DEVICE

説明




SG3_UTILS                                          SG_REASSIGN(8)



NAME
     sg_reassign - sends a SCSI REASSIGN BLOCKS command

SYNOPSIS
     sg_reassign   [--address=A,A...]   [--dummy]   [--eight=0|1]
     [--grown] [--help] [--longlist=0|1] [--primary]  [--verbose]
     [--version] DEVICE

DESCRIPTION
     Send a SCSI REASSIGN BLOCKS command to DEVICE. Alternatively
     this utility can find the number of element in a "grown"  or
     "primary" defect list with a SCSI READ DEFECT DATA (10) com-
     mand. These SCSI commands are defined in  SBC-2  for  direct
     access devices (e.g. a disk). Reassign blocks is designed to
     change the physical location of  a  logical  block  that  is
     known  or  suspected  to be defective to another area on the
     media. Disks are typically formatted  with  blocks  held  in
     reserve for this situation.

     If neither the --grown nor --primary option is supplied then
     one or more addresses need to be given. If the  address  (or
     all  of  the  addresses) fit into 4 bytes and '--eight=1' is
     not given then the parameter block passed to DEVICE is  made
     up  of  4  byte  logical  block  addresses.  If  any  of the
     addresses need more than  4  bytes  to  represent  (i.e.  >=
     2**32)  or  '--eight=1'  is  given  then the parameter block
     passed to  DEVICE  is  made  up  of  8  byte  logical  block
     addresses.

OPTIONS
     Arguments to long options are mandatory for short options as
     well.

     -a, --address=A,A...
          where A,A... is a string of  comma  separated  numbers.
          Each  number  is interpreted as decimal unless prefixed
          by '0x' or '0X' (or it has a trailing 'h' or  'H').  If
          multiple logical block addresses are given they must be
          separated by a comma or a (single) space. A string that
          contains  any  space  separators needs to be quoted. At
          least one address must be given.

     -a, --address=-
          reads one or more logical block addresses  from  stdin.
          These  may  be  comma, space, tab or linefeed (newline)
          separated. If a line contains "#"  then  the  remaining
          characters on that line are ignored. Otherwise each non
          separator sequence of characters should  resolve  to  a
          decimal  number unless prefixed by '0x' or '0X' (or has
          a trailing 'h'). At least one address must be given.

     -d, --dummy



sg3_utils-1.27       Last change: April 2009                    1






SG3_UTILS                                          SG_REASSIGN(8)



          prepare for but do not execute the SCSI REASSIGN BLOCKS
          command.  Since  the  REASSIGN BLOCKS command is essen-
          tially irreversible, paranoid users may wish  to  check
          the  invocation  of  this  utility  before  reassigning
          defective blocks on a disk. Useful with '-vv' for those
          who  wish  to view the parameter block that will accom-
          pany the command.

     -e, --eight=0 | 1
          when value is 1 then it sets the 'LONGLBA' flag in  the
          command indicating that the addresses in the associated
          parameter block are 8 byte quantities.  When value is 0
          then  it clears the 'LONGLBA' flag in the command indi-
          cating that the addresses in the  associated  parameter
          block  are  4  byte  quantities.  If this option is not
          given then 4 byte quantities are assumed unless one  of
          the address is too large.

     -g, --grown
          use the SCSI READ DEFECT DATA (10) command to determine
          the number of elements in the "grown defect list". When
          this option is given there is no reassignment of blocks
          (i.e. this utility is passive).  When  this  option  is
          given  then the --address= option is not permitted. See
          the  discussion  below  concerning   the   relationship
          between  reassigned  blocks  and the grown defect list.
          This list is sometimes referred to as the GLIST.

     -h, --help
          output the usage message then exit.

     -l, --longlist=0 | 1
          sets the REASSIGN BLOCKS cdb field of the same name  to
          the  given value.  Only 1000 addresses are permitted so
          there should be no need to specify a value  of  1.  The
          short list variant restricts the parameter block length
          to 2 ** 16 bytes (i.e. about 16000 4 byte addresses  or
          8000 8 byte addresses). Added for completeness.

     -p, --primary
          use the SCSI READ DEFECT DATA (10) command to determine
          the number of elements in  the  "primary  defect  list"
          which  is established during the manufacturing process.
          When this option is given there is no  reassignment  of
          blocks (i.e. this utility is passive). When this option
          is given then the --address= option is  not  permitted.
          This list is sometimes referred to as the PLIST.

     -v, --verbose
          increase the level of verbosity, (i.e. debug output).

     -V, --version



sg3_utils-1.27       Last change: April 2009                    2






SG3_UTILS                                          SG_REASSIGN(8)



          print the version string and then exit.


ATTRIBUTES
     See   attributes(5)   for   descriptions  of  the  following
     attributes:

     +---------------+--------------------------+
     |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
     +---------------+--------------------------+
     |Availability   | system/storage/sg3_utils |
     +---------------+--------------------------+
     |Stability      | Uncommitted              |
     +---------------+--------------------------+
NOTES
     Note that if the ARRE field  (for  reads)  and/or  the  AWRE
     field  (for  writes) are set in the "Read Write Error Recov-
     ery" mode page then recoverable  read  and/or  write  errors
     cause automatic reassignment of the defective block. The PER
     bit in the same mode page controls whether a RECOVERED ERROR
     sense  key  is  reported  on  not (PER=1 implies do report).
     Irrespective of the ARRE, AWRE or PER  field  settings,  the
     error  counter  log  pages  reflect any errors (recovered or
     otherwise). Whenever a block is reassigned, a new  entry  is
     added in the "grown" defect list. Apart from doing selftests
     (see sg_senddiag or smartmontools) regularly, monitoring the
     grown  defect  list  of a disk is a reasonable metric of its
     health. If the grown list starts growing quickly that is  an
     ominous  sign.  The  best grown defect lists are empty ones.
     The number of elements in  the  grown  defect  list  can  be
     viewed  with  the  --grown option. The contents of the grown
     defect list can be viewed with the 'sginfo -G' utility.

     If an unrecoverable error is detected  at  a  logical  block
     address  then  REASSIGN  BLOCKS  is  needed  to reassign the
     block. Also if the ARRE and/or AWRE fields are clear  and  a
     recoverable  error  is  detected  then  the logical block in
     question may be reassigned with this utility (otherwise  the
     error  counter log pages will continually be incremented for
     each recovered access).

     The number of blocks held in reserve  for  the  purposes  of
     REASSIGN  BLOCKS  is vendor specific and may well be limited
     to the zone within the media where the original  (defective)
     block  lay. When this number is exhausted subsequent invoca-
     tions of this utility may result in a sense key of  hardware
     error  and  an additional sense of 'No defect spare location
     available'. The next step would be to reformat the disk  (or
     get a replacement).

     The  SBC-2 draft standard (revision 16) notes that when mul-
     tiple addresses  are  given  to  the  SCSI  REASSIGN  BLOCKS



sg3_utils-1.27       Last change: April 2009                    3






SG3_UTILS                                          SG_REASSIGN(8)



     command  and  there  is  some  failure  at  one of the later
     addresses then all addresses prior to that have  already  be
     reassigned.  Care should be taken in such a case. Re-execut-
     ing the command with the same addresses will cause the  ear-
     lier  addresses  to  be  reassigned again. At some stage the
     disk will run out of reserved locations.  So unless a  large
     number of addresses are involved it may be safer to reassign
     them one address at a time.

EXIT STATUS
     The exit status of sg_reassign 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) 2005-2009 Douglas Gilbert
     This  software is distributed under a FreeBSD license. There
     is NO warranty; not even for MERCHANTABILITY or FITNESS  FOR
     A PARTICULAR PURPOSE.

SEE ALSO
     sg_format,sginfo,sg_senddiag(all        in       sg3_utils),
     sdparm(sdparm), smartmontools(internet, sourceforge)


     This  software  was   built   from   source   available   at
     https://java.net/projects/solaris-userland.    The  original
     community       source       was       downloaded       from
     http://sg.danny.cz/sg/p/sg3_utils-1.33.tgz

     Further  information about this software can be found on the
     open        source        community        website        at
     http://sg.danny.cz/sg/sg3_utils.html.

















sg3_utils-1.27       Last change: April 2009                    4