blkdiscard - デバイス上のセクターを破棄する
blkdiscard [options] [-o offset] [-l length] device
blkdiscard はデバイスセクターの破棄を行う。 これはソリッドステートドライブ (SSD) やシンプロビジョニングストレージに対して用いることができる。 fstrim(8) とは異なり、 このコマンドはブロックデバイス上において直接用いられる。
デフォルトで blkdiscard は、 デバイス上のブロックすべてを破棄する。 オプションを用いれば、 その動作を変更して、 範囲指定やサイズ指定を行うことができる。 これについては後述する。
device 引数はブロックデバイスのパス名である。
警告: デバイス上において破棄した範囲のデータはすべて失われる。
引数 offset と length には、 KiB (=1024), MiB (=1024*1024) のような乗数を表すサフィックスをつけることができる。 GiB, TiB, PiB, EiB, ZiB, YiB も同様に使うことができる。 ("iB" を続けるのは任意であり、 たとえば、 "K" は "KiB" と同じ意味である)。 あるいは、 KB (=1000), MB (=1000*1000) といったサフィックスをつけてもよい。 GB, TB, PB, EB, ZB, YB も同様に使うことができる。
-f, --force
チェックをすべて無効にする。 v2.36 以降ブロックデバイスは、 デフォルトで排他的モード (O_EXCL) により開かれる。 こうしてマウントされたファイルシステムと別のカーネルサブシステムの間での競合が避けられる。 --force オプションは、 その排他的なアクセスモードを無効にする。
-o, --offset offset
デバイス上の破棄開始位置を表すバイトオフセット。 指定する値は、 デバイスセクターサイズに合わせる必要がある。 デフォルト値はゼロである。
-l, --length length
破棄するバイト数 (開始位置からのカウント)。 指定する値は、 デバイスセクターサイズに合わせる必要がある。 指定した値がデバイス終端を超えて拡張された場合、 blkdiscard はデバイスサイズ境界において処理終了する。 デフォルトは、 デバイス最終位置までの拡張である。
-p, --step length
1 回の処理において破棄するバイト数。 デフォルトは 1 つの ioctl 呼び出しにつき、 すべてを破棄する。
-s, --secure
安全に破棄を行う。 安全な破棄とは通常の破棄と同様であるが、 ガーベージコレクションが生成する可能性のある廃棄ブロックのコピーも、 必ず廃棄します。 この機能はデバイスにおけるサポートが必要です。
-z, --zeroout
破棄ではなくゼロ埋めを行う。
-v, --verbose
指定された offset と length の値を表示する。 --step オプションが指定された場合、 1 秒ごとに破棄処理の進捗を表示する。
-h, --help
ヘルプテキストを表示して終了する。
-V, --version
バージョンを表示して、 終了する。
fstrim(8)
バグ報告は、 以下に示す issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.
blkdiscard コマンドは、 util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.