WIPEFS(8) | System Administration | WIPEFS(8) |
名前¶
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 デバッグ出力を有効にする。
関連項目¶
入手方法¶
この wipfs コマンドは、util-linux パッケージの一部であり、次の URL から入手できる。https://www.kernel.org/pub/linux/utils/util-linux/
December 2014 | util-linux |