blkdiscard - discard sectors on a device
Contents
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/>.
util-linux 2.41 2025-07-02 BLKDISCARD(8)
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:Alldatainthediscardedregiononthedevicewillbelost!
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.
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
Name
blkdiscard - discard sectors on a device
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, --offsetoffset
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, --lengthlength
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, --steplength
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.
Reporting Bugs
For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.
See Also
fstrim(8)
Synopsis
blkdiscard [options] [-ooffset] [-llength] device
