名前

wipefs - デバイスからシグナチャーを消去する

書式

wipefs [options] device...

wipefs [--backup] -o offset device...

wipefs [--backup] -a device...

説明

wipefs を使えば、 指定された device からファイルシステム、 raid、 パーティションテーブルなどのシグナチャー (signatures, マジックストリング) を消去して、 シグナチャーを libblkid から見えなくすることができる。 wipefs は、 デバイスからファイルシステムそのものを消去するわけではない。 また、 シグナチャー以外のいかなるデータも消去しない。

wipefs は、 オプションなしで使用すると、 見ることが可能なすべてのファイルシステムと、 その基本的なシグナチャーのオフセットを一覧表示する。 デフォルトで何を出力するかは、 バージョンによって違うことがよくあるので、 スクリプトで使うときは、 デフォルトの出力の使用は、 なるべく避けた方がよい。 いつでも一定の出力が必要な場合には、 --output column-list を使用して、 表示させたい項目が何と何かを、 必ず明確に指定するべきである。

wipefs は、 パーティションテーブルのシグナチャーの消去が済むと、BLKRRPART ioctl を呼んで、 変更についてカーネルに知らせる。 ioctl を呼ぶのは、 最後のステップなので、 そのときには、 指定されたすべてのデバイスの、 指定されたすべてのシグナチャーは、 すでに消去されているわけである。 この機能は、 パーティションデバイスの内容消去と、 ディスクデバイスのパーティションテーブル消去に用いることができる。 たとえば、 wipefs -a /dev/sdc1 /dev/sdc2 /dev/sdc のように実行する。

ファイルシステムやパーティションテーブルによっては、 複数のマジックストリングをデバイスに保存するものがある (たとえば、 FAT, ZFS, GPT など)。 wipefs コマンドは (v2.31 以来) マジックストリングを検出したすべてのオフセット位置を列挙する。

オプション -a を使用すると、 libblkid(3) から見えるすべてのマジックストリングが消去される。 その際、 wipefs は、 変更 (消去) を行うごとに、 デバイスを再度スキャンして、 マジックストリングがひとつも見つからなくなるまで、 それを繰り返す。

気をつけていただきたいが、 wipefs は、 デフォルトでは、 ディスク全体ではないデバイスにある、 ネストしたパーティションテーブルを消去しない。 そうするためには、 --force オプションが必要である。

オプション

-a, --all

処理可能なシグナチャーをすべて消去する。 消去するシグナチャーを何と何にするかは、 -t オプションによって絞り込むことができる。

-b, --backup

ファイル $HOME/wipefs-<devname>-<offset>.bak にシグナチャーのバックアップを作成する。 詳しくは、 「用例」をご覧いただきたい。

-f, --force

ファイルシステムがマウントされている場合でも、 消去を強行する。 このオプションは、 ブロックデバイス上のパーティションテーブルシグナチャーを消去するために必要である。

-J, --json

出力に JSON フォーマットを使用する。

--lock[=mode]

操作するデバイスやファイルに対して、 排他 BSD ロックを用いる。 mode は任意の引数であり、 yes, no (あるいは 1 か 0) または nonblock の指定が可能である。 mode 引数が省略された場合、 そのデフォルトは "yes" である。 このオプションは、 環境変数 $LOCK_BLOCK_DEVICE を上書きする。 デフォルトは、 ロックを一切利用しない。 ただし、 udevd と他のツールを用いる際の衝突は避けることが推奨される。

-i, --noheadings

ヘッダー行を表示しない。

-O, --output list

出力する項目を指定する。 --help を実行すれば、 サポートされている項目一覧を見ることができる。

-n, --no-act

write(2) 呼び出し以外のすべてを行うようにする。

-o, --offset offset

デバイスから消去すべきシグナチャーの位置を (バイト単位で) 指定する。 offset にはプレフィックス "0x" をつけてもよく、 その場合は、 数値が 16 進数と見なされることになる。 複数の -o オプションを指定することもできる。

引数 offset には、 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 も同様に使える。

-p, --parsable

人間に見やすい (printable) フォーマットではなく、 プログラムが解析しやすい (parsable) フォーマットで出力する。 文字列中の問題を起こしそうな文字はすべて、 対応する '\x' を頭に点けた 16 進数にエンコードされる。

-q, --quiet

シグナチャーの消去に成功した場合は、 いかなるメッセージも表示しない。

-t, --types list

表示または消去するシグナチャーを絞り込む。 複数のタイプを指定するには、 カンマで区切ったリストにすればよい。 リスト、 または個々のタイプの前に、 'no' というプレフィックスをつけることができ、 その場合は、 作業の対象にすべきではないタイプを指定することになる。 もっと詳しく知りたければ、 mount(8) のマニュアルをご覧になるとよい。

-h, --help

ヘルプテキストを表示して終了する。

-V, --version

バージョンを表示して、 終了する。

環境変数

LIBBLKID_DEBUG=all

libblkid(3) デバッグ出力を有効にする。

LOCK_BLOCK_DEVICE=<mode>

排他 BSD ロックを用いる。 モードには "1" または "0" がある。 詳しくは --lock を参照のこと。

wipefs /dev/sda*

sda と sda 上のすべてのパーティションの情報を表示する。

wipefs --all --backup /dev/sdb

デバイス /dev/sdb からすべてのシグナチャーを消去し、 シグナチャーそれぞれに対して、 ~/wipefs-sdb-<offset>.bak というバックアップファイルを作成する。

dd if=~/wipefs-sdb-0x00000438.bak of=/dev/sdb seek=$((0x00000438)) bs=1 conv=notrunc

バックアップファイル ~/wipefs-sdb-0x00000438.bak から ext2 のシグナチャーを復元する。

作者

関連項目

blkid(8), findfs(8)

バグ報告

バグ報告は、 以下に示す issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

wipfs コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.