ディスクのパーティションテーブルを消去するには `wipefs` に --force が必要ですか?

ディスクのパーティションテーブルを消去するには `wipefs` に --force が必要ですか?

マニュアルwipefsページには次のように記載されています。

-f, --force ファイルシステムがマウントされていても強制的に消去してください。 これは、ブロックデバイスのパーティションテーブル署名を消去するために必要です。

つまり、ブロックデバイスのパーティションテーブル署名を上書きしたいときはいつでも-f

マニュアルページの後半で提供される使用例の1つは次のとおりです。

wipefs --all --backup /dev/sdb すべての署名を削除/dev/sdb デバイスで~/wipefs-sdb-<offset>.bak各署名の署名バックアップファイルを作成します。

したがって、この例では、明らかにパーティションテーブル署名を含むブロックデバイスのすべての署名をカバーしています。前に述べた内容によると-f

今はそれを使うべきかどうかわかりません-f。消そうとするとみんなパーティションテーブルを含むディスクの署名には--forceこのオプションが必要ですか?

ベストアンサー1

私はマニュアルページの表現が不明であるか、誤解を招くことに同意します。オプションの前の最後のテキストは次のとおりです。

デフォルトでは、Wiefsはディスク全体ではなくデバイスからネストされたパーティションテーブルを消去しません。これを行うには、--force オプションを使用します。

-fここでは、含まれているオプションの下のテキストとは異なり、ディスク全体ではなくデバイスについて話しています。

--forceは、「すべての」パーティションデータを消去するのに必要でも十分ではありません。

まだ明確ではないので、次のスキームを使用してパーティションテーブルデータを消去するいくつかのテストを実行しました。

  1. デバイス(フラッシュドライブ)にMBRパーティションテーブルを作成する
  2. 単一パーティションの作成
  3. パーティションに vfat ファイルシステムを配置し、ファイルシステムにラベルを付けます。
  4. wipefsさまざまなパラメータを使用してパーティションテーブルデータを消去する
  5. 結果の確認:これには、wipefs作業中の出力、デバイスの出力、およびlsblkからデバイスを開いた結果が含まれますcfdisk。また、cfdiskデバイスに同じパーティションテーブルとパーティションを再作成し、再作成されたパーティションに古いラベルがあることを確認してください。

結論として:

  1. この単純なパーティションスキームを使用してパーティションをアンマウントすると、強制オプションはwipefs(パーティションではなく)デバイスで実行されたときに削除されるデータには影響しません。つまり、パーティションテーブルは、実行しているかどうかwipefs -a /dev/sdXに関係なくwipefs -af /dev/sdXデバイスから消去されます。ただし、パーティションテーブルがから再作成されると、古いラベルが見つかり、cfdisk新しいパーティションに適用されます。したがって、パーティションテーブルは消去されますが、パーティション自体のデータは消去されません。実行中の出力はwipefsこれと一致します。

  2. 実際の削除みんなデバイスのパーティションテーブルだけでなく、パーティションに関するデータ、すべてのパーティションは、デバイスがリストされる前に明示的にリストされている必要があります。マニュアルページは、テキストの3番目の段落の例でこれについてヒントを与えます(ターミナルへのコピー/貼り付け中に予期しないことが発生しないようにsdcをsdXに変更しました)。

    wipefs -a /dev/sdX1 /dev/sdX2 /dev/sdX
    

    または、シェルにワイルドカード式を使用して値を埋めるようにします。

    wipefs -a /dev/sdX? /dev/sdX
    

    これにより、デバイス上のすべてのパーティションデータとパーティションテーブル自体が正常に削除されます。

おすすめ記事