Linux(特にUbuntu)のコマンドラインからデバイスのすべてのパーティションを削除するにはどうすればよいですか? fdiskを調べてみましたが、インタラクティブなプロンプトが表示されます。私はデバイスパス(例:/ dev/sda)を指定できる単一のコマンドを探しています。これにより、ext4、linux-swap、およびその他のパーティションが削除されます。基本的に、これはGPartedを開き、すべてのパーティションを手動で選択して削除する場合と同じです。これはかなり単純に思えますが、残念ながら、Googleで何も見つけることができませんでした。
これで十分でしょうか?
dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
wipefs
プログラムを使用すると、パーティションテーブルの署名を簡単に削除できます。
wipefs -a /dev/sda
man wipefs
wipefsは、指定されたデバイスからファイルシステム、raid、またはパーティションテーブルの署名(マジックストリング)を消去して、libblkidから署名を見えなくすることができます。
wipefsは、ファイルシステム自体やその他のデータをデバイスから消去しません。オプションなしで使用した場合、wipefsはすべての可視ファイルシステムとその基本的な署名のオフセットをリストします。
wipefsは、パーティションテーブルシグネチャを消去したときにBLKRRPART ioctlを呼び出して、変更についてカーネルに通知します。
迅速かつ汚い:gparted
を使用してパーティションを削除するか、急いでいる場合:
dd if=/dev/zero of=/dev/[disk device] bs=512 count=1
これにより、ドライブのMBRが消去されます(データはそのままです)。
または:
dd if=/dev/zero of=/dev/[disk device]
ドライブ全体をワイプする(すべてに対してゼロのシングルパスを書き込みます。「安全」ではありませんが、通常は十分です)、または「ディスクシュレッダー」ツールを使用して安全にワイプします。
見る man sfdisk
、これはfdiskの非インタラクティブな変形です。それ以外には、pkが書いたように、ddを使用してパーティションテーブル全体を削除できます。
この場合もpartedを使用できるはずですが、パーティションをループするスクリプトが必要になる場合があります。
MBRスタイルのパーティションについて話している場合...
dd if=/dev/zero of=/dev/[disk device] bs=1 count=64 seek=446 conv=notrunc
説明:
dd
この標準コマンドは、ソースからバイトをコピーして、宛先に書き込みます。これは、この仕事のための最も単純な柔軟なツールです。
if=/dev/zero
ここでは、NUL
バイト(ゼロ)を放出する特別なデバイスである/dev/zero
から読み取るように指定しています。
of=/dev/[disk device]
ここでは、書き込み先のデバイスを指定します。
bs=1
dd
はblocksの観点から考えています。デフォルトのブロックサイズは、システムに応じて512バイト、1024バイト、または4096バイトです。ただし、それよりも正確に対処する必要があるため、dd
に1バイトのブロックサイズを使用するように指示します。
count = 64
ここでは、プライマリパーティションテーブルが4つの16バイトパーティションエントリで構成され、合計64バイトであるため、dd
に64ブロック(またはbs=1
パラメータによりバイト)を書き込むように指示します。
seek = 446
MBR内のプライマリパーティションテーブル(ここではGPTについては触れていません)は446バイトにあるため、書き込む前にdd
に446バイトをシークするように指示します。
拡張パーティションは通常、プライマリパーティションスロットを使用して拡張パーティションテーブルをポイントすることによって作成されるため、4つのプライマリパーティションを消去すると、拡張パーティションテーブルも効果的に消去されます。 OSはそれを見つけることができないため、それを読み取って解釈することはできません。 (拡張パーティションテーブルをワイプする場合は、オペレーティングシステムの詳細を知る必要があります。オペレーティングシステムによって、拡張パーティションの方法は異なります。)
私は同じことをしたかったのですが(Slackware 14.2を除いて)、ここで提案されたソリューションのほとんどに影響を与えることができなかったことがわかりました。これでパーティションが削除されましたが、一部のパーティション分割ソフトウェアはパーティションのバックアップを自動的に検出したようです。
私はf3probe( http://oss.digirati.com.br/f )がすべてのパーティションを削除する問題を迅速かつ簡単に解決し、大容量ドライブで動作することを発見し、正確に1つのパーティションスパンを作成しました簡単に削除できるドライブ全体。
また、そこから新しいパーティションを簡単に作成することも簡単でした。
つまり.
f3probe --destructive --time-ops /dev/sdb
# Now we know only 1 partition exists on /dev/sdb
# which is /dev/sdb1
#
# Unmount that partition
umount /dev/sdb1
#
# Delete that single partition
parted /dev/sdb rm 1
#
# Now you can create new partitions
# i.e. parted /dev/sdb mkpart primary fat32 1049K 15.8G
#
# Update /etc/fstab before rebooting....