# blkdiscard

## NAME



           blkdiscard - discard sectors on a device
    


## SYNOPSIS



           **blkdiscard**[options] [**-o** _offset_] [**-l** _length_] _device_
    


## DESCRIPTION



           **blkdiscard** is used to discard device sectors. This is useful for
           solid-state drives (SSDs) and thinly-provisioned storage. Unlike
           fstrim(8), this command is used directly on the block device.
    
           By default, **blkdiscard** will discard all blocks on the device.
           Options may be used to modify this behavior based on range or
           size, as explained below.
    
           The _device_ argument is the pathname of the block device.
    
           **WARNING: All data in the discarded region on the device will be**
           **lost!**
    
           Since util-linux v2.41, **fdisk** has the ability to discard sectors
           on both partitions and unpartitioned areas using the 'T' command.
           Additionally, **sfdisk** has the option --discard-free to discard
           unpartitioned areas.
    


## OPTIONS



           The _offset_ and _length_ arguments may be followed by the
           multiplicative suffixes KiB (=1024), MiB (=1024*1024), and so on
           for GiB, TiB, PiB, EiB, ZiB and YiB (the "iB" is optional, e.g.,
           "K" has the same meaning as "KiB") or the suffixes KB (=1000), MB
           (=1000*1000), and so on for GB, TB, PB, EB, ZB and YB.
    
           **-f** , **--force**
               Disable all checking. Since v2.36 the block device is open in
               exclusive mode (**O_EXCL**) by default to avoid collision with
               mounted filesystem or another kernel subsystem. The **--force**
               option disables the exclusive access mode.
    
           **-o** , **--offset** _offset_
               Byte offset into the device from which to start discarding.
               The provided value must be aligned to the device sector size.
               The default value is zero.
    
           **-l** , **--length** _length_
               The number of bytes to discard (counting from the starting
               point). The provided value must be aligned to the device
               sector size. If the specified value extends past the end of
               the device, **blkdiscard** will stop at the device size boundary.
               The default value extends to the end of the device.
    
           **-p** , **--step** _length_
               The number of bytes to discard within one iteration. The
               default is to discard all by one ioctl call.
    
           **-q** , **--quiet**
               Suppress warning messages.
    
           **-s** , **--secure**
               Perform a secure discard. A secure discard is the same as a
               regular discard except that all copies of the discarded blocks
               that were possibly created by garbage collection must also be
               erased. This requires support from the device.
    
           **-z** , **--zeroout**
               Zero-fill rather than discard.
    
           **-v** , **--verbose**
               Display the aligned values of _offset_ and _length_. If the **--step**
               option is specified, it prints the discard progress every
               second.
    
           **-h** , **--help**
               Display help text and exit.
    
           **-V** , **--version**
               Display version and exit.
    


## EXIT STATUS



           **blkdiscard** has the following exit status values:
    
           **0**
               success
    
           **1**
               failure; incorrect invocation, permissions or any other
               generic error
    
           **2**
               failure; since v2.39, the device does not support discard
               operation
    


## AVAILABILITY



           The **blkdiscard** command is part of the util-linux package which can
           be downloaded from Linux Kernel Archive
           <https://www.kernel.org/pub/linux/utils/util-linux/>. This page is
           part of the _util-linux_ (a random collection of Linux utilities)
           project. Information about the project can be found at 
           ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
           bug report for this manual page, send it to
           util-linux@vger.kernel.org. This page was obtained from the
           project's upstream Git repository
           ⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
           2025-08-11. (At that time, the date of the most recent commit that
           was found in the repository was 2025-08-05.) If you discover any
           rendering problems in this HTML version of the page, or you
           believe there is a better or more up-to-date source for the page,
           or you have corrections or improvements to the information in this
           COLOPHON (which is _not_ part of the original manual page), send a
           mail to man-pages@man7.org
    
    util-linux 2.42-start-521-ec46  2025-08-09                  _BLKDISCARD_(8)
    


* * *