SG_FORMAT(8) - phpMan

Command: man perldoc info search(apropos)  


SG_FORMAT(8)                                SG3_UTILS                                SG_FORMAT(8)

NAME
       sg_format - format, format with preset, resize SCSI disk; format tape

SYNOPSIS
       sg_format  [--cmplst={0|1}]  [--count=COUNT]  [--dcrt] [--dry-run] [--early] [--ffmt=FFMT]
       [--fmtmaxlba-fmtpinfo=FPI] [--format] [--help] [--ip-def] [--long] [--mode=MP] [--pfu=PFU]
       [--pie=PIE]  [--pinfo] [--poll=PT] [--preset=ID] [--quick] [--resize] [--rto_req] [--secu-
       rity] [--six] [--size=LB_SZ] [--tape=FM] [--timeout=SECS] [--verbose]  [--verify]  [--ver-
       sion] [--wait] DEVICE

DESCRIPTION
       Not all SCSI direct access devices need to be formatted and some have vendor specific for-
       matting procedures. SCSI disks with rotating media are probably the largest group that  do
       support  a  'standard'  format  operation. They are typically factory formatted to a block
       size of 512 bytes with the largest number of blocks that the manufacturer recommends.  The
       manufacturer's  recommendation  typically  leaves aside a certain number of tracks, spread
       across the media, for reassignment of blocks to logical block addresses during the life of
       the disk.

       This  utility issues one of three SCSI format commands: FORMAT UNIT, FORMAT MEDIUM or FOR-
       MAT WITH PRESET. In the following description, unqualified sections will usually be refer-
       ring  to  the  SCSI  FORMAT UNIT command. Both FORMAT UNIT and FORMAT WITH PRESET apply to
       disks (or disk-like devices).  The FORMAT MEDIUM command is for tapes.

       This utility can format modern SCSI disks and potentially change their block size (if per-
       mitted)  and  the block count (i.e. number of accessible blocks on the media also known as
       "resizing"). Resizing a disk to less than the manufacturer's recommended  block  count  is
       sometimes  called "short stroking" (see NOTES section). Resizing the block count while not
       changing the block size may not require  a  format  operation.  The  SBC-2  standard  (see
       www.t10.org)  has  obsoleted  the "format device" mode page. Many of the low level details
       found in that mode page are now left up to the discretion of the manufacturer. There is  a
       Format Status log page which reports on the previous successful format operation(s).

       When  this  utility  is  used without options (i.e. it is only given a DEVICE argument) it
       prints out the existing block size and block count derived from  two  sources.  These  two
       sources are a block descriptor in the response to a MODE SENSE command and the response to
       a READ CAPACITY command.  The reason for this double check is to detect a "format corrupt"
       state (see the NOTES section). This usage will not modify the disk.

       When  this utility is used with either --format, --preset=ID or --tape=FM, it will attempt
       to format the given DEVICE. In the absence of the --quick option  there  is  a  15  second
       pause  during  which time the user is invited thrice (5 seconds apart) to abort sg_format.
       This occurs just prior the SCSI FORMAT UNIT, FORMAT WITH PRESET or FORMAT  MEDIUM  command
       being issued. See the NOTES section for more information.

       Protection  information  (PI)  is optional and is made up of one or more protection inter-
       vals, each made up of 8 bytes associated with a logical block. When PI is active each log-
       ical  block  will  have 1, 2, 4, 8, etc protection intervals (i.e. a power of two), inter-
       leaved with (and following) the user data to which they refer. Four protection  types  are
       defined  with protection type 0 being no protection intervals. See the PROTECTION INFORMA-
       TION section below for more information.

       When the --tape=FM option is given then the SCSI FORMAT MEDIUM command is sent to the  DE-
       VICE.  FORMAT MEDIUM is defined in the SSC documents at T10 and prepares a volume for use.
       That may include partitioning the medium. See the section below on TAPE for more  informa-
       tion.

       The FORMAT WITH PRESET was added in draft SBC-4 revision 18. A preset pattern, selected by
       the PRESET IDENTIFIER field (--id=FWPID), is written to the disk. See the  FORMAT  PRESETS
       VPD  page  (0xb8)  for  a list of available Format preset identifiers and their associated
       data.

OPTIONS
       Arguments to long options are mandatory for short options as well.  The  options  are  ar-
       ranged in alphabetical order based on the long option name.

       -C, --cmplst={0|1}
              sets  the  CMPLST  ("complete  list") bit in the FORMAT UNIT cdb to 0 or 1.  If the
              value is 0 then the existing GLIST (grown list) is  taken  into  account.   If  the
              value is 1 then the existing GLIST is ignored. CMPLST defaults to 1 apart from when
              the --ffmt=FFMT option's value is non-zero in which case CMPLST defaults to 0.  See
              the  LISTS  section  below.  In  most  cases this bit should be left at its default
              value.

       -c, --count=COUNT
              where COUNT is the number of blocks to be formatted or media to be resized to.  Can
              be  used  with  either --format or --resize.  With --format this option need not be
              given in which case it is assumed to be zero.
              With --format the interpretation of COUNT is:
                (COUNT > 0) : only format the first COUNT blocks and READ  CAPACITY  will  report
              COUNT blocks after format
                (COUNT = 0) and block size unchanged : use existing block count
                (COUNT  =  0)  and  block  size changed : recommended maximum block count for new
              block size
                (COUNT = -1) : use recommended maximum block count
                (COUNT < -1) : illegal
              With --resize this option must be given and COUNT has this interpretation:
                (COUNT > 0) : after resize READ CAPACITY will report COUNT blocks
                (COUNT = 0) : after resize READ CAPACITY will report 0 blocks
                (COUNT = -1) : after resize READ CAPACITY  will  report  its  maximum  number  of
              blocks
                (COUNT < -1) : illegal
              In  both  cases  if  the  given COUNT exceeds the maximum number of blocks (for the
              block size) then the disk reports an error.  See NOTES section below.

       -D, --dcrt
              this option sets the DCRT bit in the FORMAT UNIT command's parameter  list  header.
              It will "disable certification". Certification verifies that blocks are usable dur-
              ing the format process. Using this option may speed the format but --ffmt=FFMT,  if
              available,  would probably be better. The default action of this utility (i.e. when
              this option is not given) is to clear the DCRT bit thereby requesting "media certi-
              fication"  (also unless another option needs it, the FOV bit will be cleared). When
              the DCRT bit is set, the FOV bit must also be set hence sg_format does that.
              If this option is given twice then certification is enabled by  clearing  the  DCRT
              bit  and setting the FOV bit. Both these bits are found in the parameter list asso-
              ciated with the FORMAT UNIT cdb.

       -d, --dry-run
              this option will parse the command line, do all the preparation but bypass the  ac-
              tual  FORMAT UNIT, FORMAT WITH PRESET or FORMAT MEDIUM command. Also if the options
              would otherwise cause the logical block size to change, then the MODE  SELECT  com-
              mand that would do that is also bypassed when the dry run option is given.

       -e, --early
              during  a  format operation, The default action of this utility is to poll the disk
              every 60 seconds (or every 10  seconds  if  FFMT  is  non-zero)  to  determine  the
              progress  of  the  format operation until it is finished. When this option is given
              this utility will exit "early", that is as soon as the format  operation  has  com-
              menced. Then the user can monitor the progress of the ongoing format operation with
              other utilities (e.g. sg_turs(8) or sg_requests(8)).  This option  and  --wait  are
              mutually exclusive.

       -t, --ffmt=FFMT
              FFMT  (fast  format)  is placed in a field of the same name in the FORMAT UNIT cdb.
              The field was introduced in SBC-4 revision 10. The default value is 0 which implies
              the  former  action  which is typically to overwrite all blocks on the DEVICE. That
              can take a long time (e.g. with hard disks over 10 TB in size that  can  be  days).
              With FFMT set that time may be reduced to minutes or less. So it is worth trying if
              it is available.
              FFMT has values 1 and 2 for fast format with 3 being reserved currently. These  two
              values  include  this  description:  "The  device server initializes the medium ...
              without overwriting the medium (i.e. resources for managing medium access are  ini-
              tialized  and the medium is not written)".  The difference between 1 and 2 concerns
              read operations on LBAs to which no data has been written to, after the  fast  for-
              mat.  When  FFMT  is  1 the read operation should return "unspecified logical block
              data" and complete without error. When FFMT is 2 the read operation may yield check
              condition  status  with  a sense key set to hardware error, medium error or command
              aborted. See draft SBC-4 revision 16 section 4.34 for more details.

       -b, --fmtmaxlba
              This option is only active if it is given together with the --preset=ID option.  If
              so it sets the FMTMAXLBA field in the FORMAT WITH PRESET command.

       -f, --fmtpinfo=FPI
              sets the FMTPINFO field in the FORMAT UNIT cdb to a value between 0 and 3.  The de-
              fault value is 0. The FMTPINFO field from SBC-3 revision 16 is a 2 bit field  (bits
              7  and  6  of  byte 1 in the cdb). Prior to that revision it was a single bit field
              (bit 7 of byte 1 in the cdb) and there was an accompanying bit called RTO_REQ  (bit
              6 of byte 1 in the cdb). The deprecated options "--pinfo" and "--rto-req" represent
              the older usage. This option should be used in their place. See the PROTECTION  IN-
              FORMATION section below for more information.

       -F, --format
              issue  one  of  the three SCSI "format" commands. In the absence of the --preset=ID
              and --tape=FM options, the SCSI FORMAT UNIT command is issued.  These commands will
              destroy  all  the  data  held  on the media.  This option is required to change the
              block size of a disk. In the absence of the --quick option, the user is given a  15
              second  count  down to ponder the wisdom of doing this, during which time control-C
              (amongst other Unix commands) can be used to kill this process before it  does  any
              damage.
              When  used three times (or more) the preliminary MODE SENSE and SELECT commands are
              bypassed, leaving only the initial INQUIRY and FORMAT UNIT commands.  This  is  for
              emergency use (e.g. when the MODE SENSE/SELECT commands are not working) and cannot
              change the logical block size.
              See NOTES section for implementation details and EXAMPLES section for typical use.

       -h, --help
              print out the usage information then exit.

       -I, --ip-def
              sets the default Initialization Pattern. Some disks (SSDs) use this to flag that  a
              format  should  fully provision (i.e. associate a physical block with every logical
              block). The same disks (SSDs) might thin provision if this option is not given.  If
              this  option  is  given  then  the  --security option cannot be given. Also accepts
              --ip_def for this option.

       -l, --long
              the default action of this utility is to assume 32  bit  logical  block  addresses.
              With  512 byte block size this permits more than 2 terabytes (almost 2 ** 41 bytes)
              on a single disk. This option selects commands and parameters that allow for 64 bit
              logical  block  addresses.  Specifically this option sets the "longlba" flag in the
              MODE SENSE (10) command and uses READ CAPACITY (16) rather than READ CAPACITY (10).
              If  this  option  is not given and READ CAPACITY (10) or MODE SELECT detects a disk
              the needs more than 32 bits to represent its logical blocks then it is  set  inter-
              nally.  This  option  does not set the LONGLIST bit in the FORMAT UNIT command. The
              LONGLIST bit is set as required depending other parameters (e.g.  when  '--pie=PIE'
              is greater than zero).

       -M, --mode=MP
              MP is a mode page number (0 to 62 inclusive) that will be used for reading and per-
              haps changing the device logical  block  size.  The  default  is  1  which  is  the
              Read-Write Error Recovery mode page.
              Preferably  the  chosen (or default) mode page should be saveable (i.e.  accept the
              SP bit set in the MODE SELECT command used when the logical  block  size  is  being
              changed). Recent version of this utility will retry a MODE SELECT if the SP=1 vari-
              ant fails with a sense key of ILLEGAL REQUEST.  That retry will use the  same  MODE
              SELECT command but with SP=0 .

       -P, --pfu=PFU
              sets  the  "Protection  Field Usage" field in the parameter block associated with a
              FORMAT UNIT command to PFU. The default value is 0, the only  other  defined  value
              currently is 1. See the PROTECTION INFORMATION section below for more information.

       -q, --pie=PIE
              sets  the  "Protection  Interval  Exponent" field in the parameter block associated
              with a FORMAT UNIT command to PIE. The  default  value  is  0.   PIE  can  only  be
              non-zero  with  protection  types  2 and 3.  The value of 0 is typical for 512 byte
              blocks; with 4096 byte blocks a value of 3 may be appropriate  (i.e.  8  protection
              intervals  interleaved  with 4096 bytes of user data). A device may not support any
              non-zero values. This field first appeared in SBC-3 revision 18.

       -p, --pinfo
              this option is deprecated, use the --fmtpinfo=FPI option instead.  If used, then it
              sets  bit  7  of  byte  1  in the FORMAT UNIT cdb and that is equivalent to setting
              --fmtpinfo=2. [So if --pinfo is used (plus --fmtpinfo=FPI  and  --pfu=PFU  are  not
              given or their arguments are 0) then protection type 1 is selected.]

       -x, --poll=PT
              where  PT  is  the  type of poll used. If PT is 0 then a TEST UNIT READY command is
              used, otherwise a REQUEST SENSE command is used. The default  is  currently  0  but
              this will change to 1 in the near future. See the NOTES sections below.

       -E, --preset=ID
              this  option instructs this utility to issue a SCSI FORMAT WITH PRESET command. The
              PRESET IDENTIFIER field in that cdb is set to ID. The IMMED field in  that  cdb  is
              also set unless the --wait option is also given, in which case it is cleared.

       -Q, --quick
              the  default action (i.e. when the option is not given) is to give the user 15 sec-
              onds to reconsider doing a format operation on the DEVICE.   When  this  option  is
              given that step (i.e. the 15 second warning period) is skipped.

       -r, --resize
              rather  than  format the disk, it can be resized. This means changing the number of
              blocks on the device reported by the READ CAPACITY command.  This option should  be
              used  with the --count=COUNT option.  The contents of all logical blocks on the me-
              dia remain unchanged when this option is used. This means that any resize operation
              can  be  reversed.  This  option  cannot be used together with either --format or a
              --size=LB_SZ whose argument is different to the existing block size.

       -R, --rto_req
              The option is deprecated, use the --fmtpinfo=FPI option instead.  If used, then  it
              sets bit 6 of byte 1 in the FORMAT UNIT cdb.

       -S, --security
              sets  the  "Security Initialization" (SI) bit in the FORMAT UNIT command's initial-
              ization pattern descriptor within the parameter list. According to  SBC-3  the  de-
              fault initialization pattern "shall be written using a security erasure write tech-
              nique". See the NOTES section on the SCSI SANITIZE command. If this option is given
              then the --ip_def option cannot be given.

       -6, --six
              Use 6 byte variants of MODE SENSE and MODE SELECT. The default action is to use the
              10 byte variants. Some MO drives need this option set when doing a format.

       -s, --size=LB_SZ
              where LB_SZ is the logical block size (i.e. number of user bytes in each block)  to
              format  the  device  to. The default value is whatever is currently reported by the
              block descriptor in a MODE SENSE command. If the block size given by this option is
              different  from  the  current value then a MODE SELECT command is used to change it
              prior to the FORMAT UNIT command being started (as recommended  in  the  SBC  stan-
              dards). Some SCSI disks have 512 byte logical blocks by default and allow an alter-
              nate logical block size of 4096 bytes. If the given size  in  unacceptable  to  the
              disk, most likely an "Invalid field in parameter list" message will appear in sense
              data (requires the use of '-v' to decode sense data).
              Note that formatting a disk to add or remove protection information is not regarded
              as a change to its logical block size so this option should not be used.

       -T, --tape=FM
              will  send  a  FORMAT MEDIUM command to the DEVICE with its FORMAT field set to FM.
              This option is used to prepare a tape (i.e. the "medium") in a tape drive for  use.
              Values  for  FM include 0 to do the "default" format; 1 to partition a volume and 2
              to do a default format then partition.

       -m, --timeout=SECS
              where SECS is the FORMAT UNIT, FORMAT WITH PRESET or FORMAT MEDIUM command  timeout
              in  seconds.  SECS will only be used if it exceeds the internal timeout which is 20
              seconds if the IMMED bit is set and 72000 seconds (20 hours) or higher if the IMMED
              bit  is  not set. If the disk size exceeds 4 TB then the timeout value is increased
              to 144000 seconds (40 hours).  And if it is greater than  8  TB  then  the  timeout
              value  is  increased  to 288000 seconds (80 hours). If the timeout is exceeded then
              the operating system will typically abort the command. Aborting a command may esca-
              late  to  a  LUN reset (or worse). A timeout may also leave the disk or tape format
              operation incomplete. And that may result in the disk or tape being  in  a  "format
              corrupt"  state  requiring  another format to remedy the situation.  So for various
              reasons command timeouts are best avoided.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output). "-vvv" gives a lot more debug
              output.

       -y, --verify
              set  the VERIFY bit in the FORMAT MEDIUM cdb. The default is that the VERIFY bit is
              clear. This option is only appropriate for tapes.

       -V, --version
              print the version string and then exit.

       -w, --wait
              the default format action is to set the "IMMED" bit in the  FORMAT  UNIT  command's
              (short)  parameter  header.  If this option (i.e. --wait) is given then the "IMMED"
              bit is not set. If --wait is given then the FORMAT UNIT, FORMAT WITH PRESET or FOR-
              MAT  MEDIUM command waits until the format operation completes before returning its
              response. This can be many hours on large disks. See the --timeout=SECS option.
              Alternatively this option may be useful when used together  with  --ffmt=FFMT  (and
              FFMT greater than 0) since the fast format may only be a matter of seconds.

LISTS
       The  SBC-3  draft  (revision  20) defines PLIST, CLIST, DLIST and GLIST in section 4.10 on
       "Medium defects". Briefly, the PLIST is the "primary" list of  manufacturer  detected  de-
       fects,  the  CLIST ("certification" list) contains those detected during the format opera-
       tion, the DLIST is a list of defects that can be given to the format operation. The  GLIST
       is  the  grown list which starts in the format process as CLIST+DLIST and can "grow" later
       due to automatic reallocation (see the ARRE and AWRE bits in the Read-Write Error Recovery
       mode  page  (see  sdparm(8)))  and  use  of the SCSI REASSIGN BLOCKS command (see sg_reas-
       sign(8)).

       By the SBC-3 standard (following draft revision 36) the CLIST and DLIST had been  removed,
       leaving PLIST and GLIST. Only PLIST and GLIST are found in the SBC-4 drafts.

       The  CMPLST  bit  (controlled  by the --cmplst=0|1 option) determines whether the existing
       GLIST, when the format operation is invoked, is taken into account. The sg_format  utility
       sets  the  FOV  bit  to  zero which causes DPRY=0, so the PLIST is taken into account, and
       DCRT=0, so the CLIST is generated and used during the format process.

       The sg_format utility does not permit a user to provide a defect list (i.e. DLIST).

PROTECTION INFORMATION
       Protection Information (PI) is additional information held with logical blocks so that  an
       application  and/or host bus adapter can check the correctness of those logical blocks. PI
       is placed in one or more protection intervals interleaved in each logical block. Each pro-
       tection  interval follows the user data to which it refers. A protection interval contains
       8 bytes made up of a 2 byte "logical block guard" (CRC), a 2 byte "logical block  applica-
       tion  guard",  and  a  4 byte "logical block reference tag". Devices with 512 byte logical
       block size typically have one protection interval appended, making its logical block  data
       520  bytes  long. Devices with 4096 byte logical block size often have 8 protection inter-
       vals spread across its logical block data for a total size of 4160 bytes.  Note  that  for
       all  other  purposes the logical block size is considered to be 512 and 4096 bytes respec-
       tively.

       The SBC-3 standard have added several "protection types" to the PI introduced in the SBC-2
       standard.  SBC-3  defines 4 protection types (types 0 to 3) with protection type 0 meaning
       no PI is maintained. While a device may support one or more protection types, it can  only
       be  formatted with 1 of the 4. To change a device's protection type, it must be re-format-
       ted.  For more information see the Protection Information in section 4.21 of  draft  SBC-4
       revision 16.

       A device that supports PI information (i.e. supports one or more protection types 1, 2 and
       3) sets the "PROTECT" bit in its standard INQUIRY response. It also sets the SPT field  in
       the  EXTENDED  INQUIRY  VPD  page response to indicate which protection types it supports.
       Given PROTECT=1 then SPT=0 implies the device supports PI type 1 only, SPT=1  implies  the
       device supports PI types 1 and 2, and various other non-obvious mappings up to SPT=7 which
       implies protection types 1, 2 and 3 are supported. The current protection type of  a  disk
       can  be found in the "P_TYPE" and "PROT_EN" fields in the response of a READ CAPACITY (16)
       command (e.g. with the 'sg_readcap --long' utility).

       Given that a device supports a particular protection type, a user can then choose to  for-
       mat  that  disk  with that protection type by setting the "FMTPINFO" and "Protection Field
       Usage" fields in the FORMAT UNIT command. Those fields correspond  to  the  --fmtpinfo=FPI
       and  the --pfu=PFU options in this utility. The list below shows the four protection types
       followed by the options of this utility needed to select them:
         0 : --fmtpinfo=0 --pfu=0
         1 : --fmtpinfo=2 --pfu=0
         2 : --fmtpinfo=3 --pfu=0
         3 : --fmtpinfo=3 --pfu=1
       The default value of FPI (in --fmtpinfo=FPI) is  0  and  the  default  value  of  PFU  (in
       --pfu=PFU) is 0. So if neither --fmtpinfo=FPI nor --pfu=PFU are given then protection type
       0 (i.e. no protection information) is chosen.

NOTES
       After a format that changes the logical block size or the number of logical  blocks  on  a
       disk, the operating system may need to be told to re-initialize its setting for that disk.
       In Linux that can be done with:
           echo 1 > /sys/block/sd{letter(s)}/device/rescan
       where "letter(s)" will be between 'a' and 'zzz'. The lsscsi utility in Linux can  be  used
       to check the various namings of a disk.

       The  SBC-2  standard  states  that  the REQUEST SENSE command should be used for obtaining
       progress indication when the format command is underway.  However, tests on a selection of
       disks  shows  that  TEST  UNIT  READY commands yield progress indications (but not REQUEST
       SENSE commands). So the current version of this utility defaults to using TEST UNIT  READY
       commands to poll the disk to find out the progress of the format. The --poll=PT option has
       been added to control this.

       When the --format, --preset=ID or --tape=FM option is given without the --wait option then
       the corresponding SCSI command is issued with the IMMED bit set which causes the SCSI com-
       mand to return after it has started the format operation. The --early  option  will  cause
       sg_format  to exit at that point. Otherwise the DEVICE is polled every 60 seconds or every
       10 seconds if FFMT is non-zero. The poll is with TEST UNIT READY or REQUEST SENSE commands
       until one reports an "all clear" (i.e. the format operation has completed). Normally these
       polling commands will result in a progress indicator (expressed  as  a  percentage)  being
       output  to  the screen. If the user gets bored watching the progress report then sg_format
       process can be terminated (e.g. with control-C) without  affecting  the  format  operation
       which  continues.  However a target or device reset (or a power cycle) will probably cause
       the format to cease and the DEVICE to become "format corrupt".

       When the --format (--preset=ID or --tape) and --wait options  are  both  given  then  this
       utility  may take a long time to return. In this case care should be taken not to send any
       other SCSI commands to the disk as it may not respond leaving those commands queued behind
       the active format command. This may cause a timeout in the OS driver (in a lot shorter pe-
       riod than 20 hours applicable to some format operations). This may result in the OS reset-
       ting  the disk leaving the format operation incomplete. This may leave the disk in a "for-
       mat corrupt" state requiring another format to remedy the situation. Modern  SCSI  devices
       should  yield  a  "not ready" sense key with an additional sense indicating a format is in
       progress. With older devices the user should take precautions that nothing attempts to ac-
       cess  a device while it is being formatted. Unmounting in mounted file systems on a DEVICE
       prior to calling this utility is strongly advised.

       When the block size (i.e. the number of bytes in each block) is changed on a disk two SCSI
       commands  must  be  sent: a MODE SELECT to change the block size followed by a FORMAT com-
       mand. If the MODE SELECT command succeeds and the FORMAT fails then the disk may be  in  a
       state  that  the  standard calls "format corrupt". A block descriptor in a subsequent MODE
       SENSE will report the requested new block size while a READ CAPACITY command  will  report
       the existing (i.e. previous) block size. Alternatively the READ CAPACITY command may fail,
       reporting the device is not ready, potentially requiring a format. The  solution  to  this
       situation  is  to  do a format again (and this time the new block size does not have to be
       given) or change the block size back to the original size.

       The SBC-2 standard states that the block count can be set back to the manufacturer's maxi-
       mum recommended value in a format or resize operation.  This can be done by placing an ad-
       dress of 0xffffffff (or the 64 bit equivalent) in the appropriate block  descriptor  field
       to  a  MODE SELECT command. In signed (two's complement) arithmetic that value corresponds
       to '-1'. So a --count=-1 causes the block count to be set back to the manufacturer's maxi-
       mum  recommended  value. To see exactly which SCSI commands are being executed and parame-
       ters passed add the "-vvv" option to the sg_format command line.

       The FMTDATA field shown in the FORMAT UNIT cdb does not have  a  corresponding  option  in
       this  utility.  When set in the cdb it indicates an additional parameter list will be sent
       to the DEVICE along with the cdb. It is set as required, basically when any field  in  the
       parameter list header is set.

       Short  stroking is a technique to trade off capacity for performance on hard disks. "Hard"
       disk is often used to mean a storage device with spinning platters which contain the  user
       data.  Solid  State Disk (SSD) is the newer form of storage device that contains no moving
       parts. Hard disk performance is usually highest on the outer  tracks  (usually  the  lower
       logical  block addresses) so by resizing or reformatting a disk to a smaller capacity, av-
       erage performance will usually be increased.

       Other utilities may be useful in finding information associated with formatting. These in-
       clude  sg_inq(8) to fetch standard INQUIRY information (e.g. the PROTECT bit) and to fetch
       the EXTENDED INQUIRY VPD page (e.g. RTO and GRD_CHK bits). The sdparm(8)  utility  can  be
       used to access and potentially change the now obsolete format mode page.

       scsiformat  is  another  utility  available for formatting SCSI disks with Linux. It dates
       from 1997 (most recent update) and may be useful for disks whose firmware is of that  vin-
       tage.

       The COUNT numeric argument may include a multiplicative suffix or be given in hexadecimal.
       See the "NUMERIC ARGUMENTS" section in the sg3_utils(8) man page.

       The SCSI SANITIZE command was introduced in SBC-3 revision 27. It is  closely  related  to
       the ATA sanitize disk feature set and can be used to remove all existing data from a disk.
       Sanitize is more likely to be implemented on modern disks  (including  SSDs)  than  FORMAT
       UNIT's  security initialization feature (see the --security option) and in some cases much
       faster.

       SSDs that support thin provisioning will typically unmap all logical blocks during a  for-
       mat. The reason is to improve the SSD's endurance. Also thin provisioned formats typically
       complete faster than fully provisioned ones on the same disk (see the --ip_def option). In
       either  case format operations on SSDs tend to be a lot faster than they are on hard disks
       with spinning media.

TAPE
       Tape system use a variant of the FORMAT UNIT command used on disks. Tape systems  use  the
       FORMAT  MEDIUM  command which is simpler with only three fields in the cdb typically used.
       Apart from sharing the same opcode the cdbs of FORMAT UNIT and  FORMAT  MEDIUM  are  quite
       different.  FORMAT  MEDIUM's fields are VERIFY, IMMED and FORMAT (with TRANSFER LENGTH al-
       ways set to 0).  The VERIFY bit field is set with the --verify option. The  IMMED  bit  is
       manipulated  by  the --wait option in the same way it is for disks; one difference is that
       if the --poll=PT option is not given then it defaults to PT of 1 which means the  poll  is
       done with REQUEST SENSE commands.

       The  argument  given  to the --tape=FM option is used to set the FORMAT field. FM can take
       values from "-1" to "15" where "-1" (the default) means don't do a tape format; value  "8"
       to  "15"  are  for vendor specific formats. The --early option may also be used to set the
       IMMED bit and then exit this utility (rather than poll periodically until it is finished).
       In this case the tape drive will still be busy doing the format for some time but, accord-
       ing to T10, should still respond in full to the INQUIRY and REPORT  LUNS  commands.  Other
       commands (including REQUEST SENSE) should yield a "not ready" sense key with an additional
       sense code of "Logical unit not ready, format in  progress".  Additionally  REQUEST  SENSE
       should contain a progress indication in its sense data.

       When  FM  is 1 or 2 then the settings in the Medium partition mode page control the parti-
       tioning. That mode page can be viewed and modified with the sdparm utility.

       Prior to invoking this utility the tape may need to be positioned to the beginning of par-
       tition  0.  In  Linux that can typically be done with the mt utility (e.g. 'mt -f /dev/st0
       rewind').

EXAMPLES
       These examples use Linux device names. For suitable device names in other supported  Oper-
       ating Systems see the sg3_utils(8) man page.

       In  the first example below simply find out the existing block count and size derived from
       two sources: a block descriptor in a MODE SELECT command response and from the response of
       a READ CAPACITY commands. No changes are made:

          # sg_format /dev/sdm

       Now a simple format, leaving the block count and size as they were previously.  The FORMAT
       UNIT command is executed in IMMED mode and the device is polled every 60 seconds to  print
       out a progress indication:

          # sg_format --format /dev/sdm

       Now the same format, but waiting (passively) until the format operation is complete:

          # sg_format --format --wait /dev/sdm

       Next  is  a  format in which the block size is changed to 520 bytes and the block count is
       set to the manufacturer's maximum value (for that block size). Note, not all disks support
       changing the block size:

          # sg_format --format --size=520 /dev/sdm

       Now  a resize operation so that only the first 0x10000 (65536) blocks on a disk are acces-
       sible. The remaining blocks remain unaltered.

          # sg_format --resize --count=0x10000 /dev/sdm

       Now resize the disk back to its normal (maximum) block count:

          # sg_format --resize --count=-1 /dev/sdm

       One reason to format a SCSI disk is to add protection information. First check which  pro-
       tection  types  are supported by a disk (by checking the SPT field in the Extended inquiry
       VPD page together with the Protect bit in the standard inquiry response):

          # sg_vpd -p ei -l /dev/sdb
          extended INQUIRY data VPD page:
            ACTIVATE_MICROCODE=0
            SPT=1 [protection types 1 and 2 supported]
            ....

       Format with type 1 protection:

          # sg_format --format --fmtpinfo=2 /dev/sdm

       After a successful format with type 1 protection, READ CAPACITY(16) should show  something
       like this:

          # sg_readcap -l /dev/sdm
          Read Capacity results:
             Protection: prot_en=1, p_type=0, p_i_exponent=0 [type 1 protection]
             Logical block provisioning: lbpme=0, lbprz=0
             ....

       To format with type 3 protection:

          # sg_format --format --fmtpinfo=3 --pfu=1 /dev/sdm

       For  the  disk  shown  above this will probably fail because the Extended inquiry VPD page
       showed only types 1 and 2 protection are supported.

       Here are examples of using fast format (FFMT field in FORMAT UNIT cdb) to  quickly  switch
       between  512  and  4096 byte logical block size. Assume disk starts with 4096 byte logical
       block size and all important data has been backed up.

          # sg_format --format --ffmt=1 --size=512 /dev/sdd

       Now /dev/sdd should have 512 byte logical block size. And to switch it back:

          # sg_format --format --ffmt=1 --size=4096 /dev/sdd

       Since fast formats can be very quick (a matter of seconds) using the --wait option may  be
       appropriate.

       And to use the Format with preset command this invocation could be used:

          # sg_format --preset=1 --fmtmaxlba /dev/sdd

       The FORMAT PRESETS VPD page (0xb8) should be consulted to check that Preset identifier 0x1
       is there and has the expected format (i.e. "default host aware zoned  block  device  model
       with 512 bytes of user data in each logical block").  That VPD page can be viewed with the
       sg_vpd utility.

EXIT STATUS
       The exit status of sg_format is 0 when it is successful. Otherwise  see  the  sg3_utils(8)
       man  page.  Unless the --wait option is given, the exit status may not reflect the success
       of otherwise of the format.  Using sg_turs(8) and sg_readcap(8) after the format operation
       may be wise.

       The  Unix  convention is that "no news is good news" but that can be a bit unnerving after
       an operation like format, especially  if  it  finishes  quickly  (i.e.  before  the  first
       progress  poll  is sent). Giving the --verbose option once should supply enough additional
       output to settle those nerves.

AUTHORS
       Written by Grant Grundler, James Bottomley and Douglas Gilbert.

REPORTING BUGS
       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
       Copyright (C) 2005-2020 Grant Grundler, James Bottomley and Douglas Gilbert
       This software is distributed under the GPL version 2. There is NO warranty; not  even  for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO
       sg_turs(8),  sg_requests(8),  sg_inq(8),  sg_modes(8), sg_vpd(8), sg_reassign(8), sg_read-
       cap(8), sg3_utils(8), sg_sanitize(8) [all in sg3_utils], lsscsi(8), mt(mt-st),  sdparm(8),
       scsiformat (old), hdparm(8)

sg3_utils-1.45                             January 2020                              SG_FORMAT(8)

Generated by $Id: phpMan.php,v 4.55 2007/09/05 04:42:51 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2024-12-12 19:48 @3.144.19.165 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0!Valid CSS!