Provided by: manpages-ja_0.5.0.0.20210215+dfsg-1_all
名前
wipefs - デバイスからシグナチャーを消去する
書式
wipefs [options] device... wipefs [--backup] -o offset device... wipefs [--backup] -a device...
説明
wipefs を使えば、指定された device からファイルシステム、raid、 パーティションテーブルなど のシグナチャー (signatures, マジックストリング) を消去して、シグナチャーを libblkid から見 えなくすることができる。 wipefs は、デバイスからファイルシステムそのものを消去するわけでは ない。 また、シグナチャー以外のいかなるデータも消去しない。 wipefs は、オプションなしで使用すると (訳注: たとえば、wipefs /dev/sda* と実行すると)、 見 ることが可能なすべてのファイルシステムと、その基本的なシグナチャーのオフセットを一覧表示す る。 デフォルトで何を出力するかは、バージョンによって違うことがよくあるので、スクリプトで 使うときは、 デフォルトの出力の使用は、なるべく避けた方がよい。 いつでも一定の出力が必要な 場合には、--output column-list を使用して、表示させたい項目が何と何かを、必ず明確に指定す るべきである。 wipefs は、パーティションテーブルのシグナチャーの消去が済むと、BLKRRPART ioctl を呼ん で、変更についてカーネルに知らせる。ioctl を呼ぶのは、最後のステップなので、 そのときに は、指定されたすべてのデバイスの、指定されたすべてのシグナチャーは、 すでに消去されている わけである。 ファイルシステムやパーティションテーブルによっては、 複数のマジックストリングをデバイスに 保存するものがある (たとえば、FAT, ZFS, GPT など)。wipefs コマンドは (v2.31 以来) マジック ストリングを検出したすべてのオフセット位置を列挙する。 オプション -a を使用すると、libblkid から見えるすべてのマジックストリングが消去される。そ の際、wipefs は、変更 (消去) を行うごとに、デバイスを再度スキャンして、マジックストリング がひとつも見つからなくなるまで、 それを繰り返す。 気を付けていただきたいが、wipefs は、デフォルトでは、 ディスク全体ではないデバイスにあ る、ネストしたパーティションテーブルを消去しない。 そうするためには、--force オプションが 必要である。
オプション
-a, --all 処理可能なシグナチャーをすべて消去する。消去するシグナチャーを何と何にするかは、-t オプションによって絞り込むことができる。 [訳注] オプションの名前が --all のせいで紛らわしいが、-t オプションを使って、シグ ナチャーのタイプを限定している場合でも、消去操作には -a (--all) が必要であ る。-t だけだと、動作が消去ではなく、表示になる。 -b, --backup ファイル $HOME/wipefs-<devname>-<offset>.bak にシグナチャーのバックアップを作成す る。詳しくは、「用例」をご覧いただきたい。 -f, --force ファイルシステムがマウントされている場合でも、消去を強行する。 このオプションは、ブ ロックデバイス上のパーティションテーブル・シグナチャーを消去するために必要である。 [訳注] 2 番目の文は、訳者には意味不明である。 確かに、ファイルシステムがマウントさ れている場合に、 ファイルシステムのシグナチャーを消すには、-f が必要だろ う。 また、おそらく、ネストしたパーティションテーブルのシグナチャーを消去す るためにも、 -f が必要なのだろう。しかし、そういうことでないならば、ルート 権限さえ持っていれば、 ブロックデバイス上のパーティションテーブルのシグナ チャーを消すのに、 普通 -f は要らないはずである。 それとも、あるデバイスの パーティションに自分が目下実行しているシステムが含まれているとき、 そのディ スクのパーティションテーブルのシグナチャーを消去するということだろうか。 そ れは、やらない方がよい乱暴なことだと思うのだが。 -h, --help ヘルプテキストを表示して終了する。 -J, --json 出力に JSON フォーマットを使用する。 -i, --noheadings ヘッダ行を表示しない。 -O, --output list 出力にどの項目 (column) を表示するかを指定する。 サポートされている全項目のリストを 得るには、--help を使用すればよい。 -n, --no-act write() 呼び出し以外のすべてを行うようにする。 -o, --offset offset デバイスから消去すべきシグナチャーの位置を (バイト単位で) 指定する。offset には接頭 辞 "0x" を付けてもよく、その場合は、数値が 16 進数と見なされることになる。複数の -o オプションを指定することもできる。 (訳注: -t と違って、こちらは -a オプションと 一緒に使う必要はない。 と言うより、両方指定すると、エラーになる。) 引き数 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) のマニュアルをご覧になるとよい。 [訳注] list に使えるのは、基本的には mount(8) の -t に指定するファイルシステムのタ イプと同じものだが、gpt や swap を指定することもできる。すなわち、wipefs /dev/sda* の出力の TYPE の項目に表示されるものが使えるわけである。 -V, --version バージョン情報を表示して終了する。
用例
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 のシグナチャーを復元す る。 [訳注] 3 番目の例は、ちょっと変わったことをしていると言えるかもしれない。 ここで は、/dev/sdb にファイルシステムのシグナチャーを復元している。 とすると、/dev/sdb1 のようなパーティションにではなく、/dev/sdb というディスクに直接 ext2 のファイルシ ステムを作成していたことになりそうだ。/dev/sdb が、たとえば USB メモリなら、そうい うこともあるだろうけれど。
作者
Karel Zak <kzak@redhat.com>
環境変数
LIBBLKID_DEBUG=all libblkid デバッグ出力を有効にする。
関連項目
blkid(8), findfs(8)
入手方法
この wipfs コマンドは、util-linux パッケージの一部であり、次の URL から入手でき る。https://www.kernel.org/pub/linux/utils/util-linux/