
私はUSBペンドライブでいくつかの処理を実行するスクリプトを書こうとしています。遭遇したパーティションをすべて削除し、新しいパーティションを作成します(詳細はこのリンク)。
GParted を使用して手順を実行すると、すべてが正常に動作します。特に、新しいパーティションがファイル システムとともに作成されると、古いデータはすべて削除されます (この操作は、私が作業しているコンテンツではそれほど時間がかかりません)。
しかし、 で同等の手順を実行するとfdisk
、常に以前と同じ古いパーティションに古いデータが見つかります。
古いパーティションのデータを完全に消去するには(GParted の場合と同じくらい速く)どうすればよいでしょうか?
dd if=/dev/zero of=/dev/sdb bs=512 count=1
コマンドや類似のものを試してみましたshred -vzn 0 /dev/sdb
が、実際にはファイルが消去されなかったり、GParted と比較すると消去に時間がかかりすぎたりしました。
答え1
にはそのようなものはありませんfdisk
。GParted とは異なり、ファイルシステムやパーティションの内容にはまったく関係がないため、手動で行う必要があります。
また、「古いデータが消えた」とどのように判断したかを説明していません。実際のパーティション デバイスを調べたのでしょうか、それとも単にマウントして ls したのでしょうか。パーティションがジャンクでいっぱいになっている可能性がありますが、ファイルシステムが「ルート ディレクトリにファイルがない」と表示している限り、それは問題ではありません。
GPartedにパーティションを完全に空にする機能があるとは思えない。単に新しいファイルシステムを作成しただけだろう。上に以前そこにあったものをすべて復元します。(とはいえ、SSDではmkfs
ツールするTRIM を使用してパーティション全体を破棄します。これはほぼ瞬時に行われます。ただし、HDD の場合、ディスクの回転を速くする方法はありません。dd は GParted より遅くなることはあり得ません。
したがって、次の内容で十分です。
wipefs --all /dev/xxx
認識可能なファイルシステム構造を消去するために使用します。mkfs.ext4 /dev/xxx
空のファイルシステムを作成するには、 (または mkfs.whatever-else)を使用します。