web-dev-qa-db-ja.com

コマンドラインからすべてのパーティションを削除する

Linux(特にUbuntu)のコマンドラインからデバイスのすべてのパーティションを削除するにはどうすればよいですか? fdiskを調べてみましたが、インタラクティブなプロンプトが表示されます。私はデバイスパス(例:/ dev/sda)を指定できる単一のコマンドを探しています。これにより、ext4、linux-swap、およびその他のパーティションが削除されます。基本的に、これはGPartedを開き、すべてのパーティションを手動で選択して削除する場合と同じです。これはかなり単純に思えますが、残念ながら、Googleで何も見つけることができませんでした。

41
Cerin

これで十分でしょうか?

dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
45
pk.

wipefsプログラムを使用すると、パーティションテーブルの署名を簡単に削除できます。

wipefs -a /dev/sda

man wipefs

wipefsは、指定されたデバイスからファイルシステム、raid、またはパーティションテーブルの署名(マジックストリング)を消去して、libblkidから署名を見えなくすることができます。

wipefsは、ファイルシステム自体やその他のデータをデバイスから消去しません。オプションなしで使用した場合、wipefsはすべての可視ファイルシステムとその基本的な署名のオフセットをリストします。

wipefsは、パーティションテーブルシグネチャを消去したときにBLKRRPART ioctlを呼び出して、変更についてカーネルに通知します。

34
user144437

迅速かつ汚い:gpartedを使用してパーティションを削除するか、急いでいる場合:

dd if=/dev/zero of=/dev/[disk device] bs=512 count=1

これにより、ドライブのMBRが消去されます(データはそのままです)。

または:

dd if=/dev/zero of=/dev/[disk device]

ドライブ全体をワイプする(すべてに対してゼロのシングルパスを書き込みます。「安全」ではありませんが、通常は十分です)、または「ディスクシュレッダー」ツールを使用して安全にワイプします。

12
voretaq7

見る man sfdisk、これはfdiskの非インタラクティブな変形です。それ以外には、pkが書いたように、ddを使用してパーティションテーブル全体を削除できます。

7
Sven

この場合もpartedを使用できるはずですが、パーティションをループするスクリプトが必要になる場合があります。

6
Decado

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

ddblocksの観点から考えています。デフォルトのブロックサイズは、システムに応じて512バイト、1024バイト、または4096バイトです。ただし、それよりも正確に対処する必要があるため、ddに1バイトのブロックサイズを使用するように指示します。

count = 64

ここでは、プライマリパーティションテーブルが4つの16バイトパーティションエントリで構成され、合計64バイトであるため、ddに64ブロック(またはbs=1パラメータによりバイト)を書き込むように指示します。

seek = 446

MBR内のプライマリパーティションテーブル(ここではGPTについては触れていません)は446バイトにあるため、書き込む前にddに446バイトをシークするように指示します。

拡張パーティションは通常、プライマリパーティションスロットを使用して拡張パーティションテーブルをポイントすることによって作成されるため、4つのプライマリパーティションを消去すると、拡張パーティションテーブルも効果的に消去されます。 OSはそれを見つけることができないため、それを読み取って解釈することはできません。 (拡張パーティションテーブルをワイプする場合は、オペレーティングシステムの詳細を知る必要があります。オペレーティングシステムによって、拡張パーティションの方法は異なります。)

4
Michael Mol

私は同じことをしたかったのですが(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....
2
John

sfdisk であるfdiskの改良された非インタラクティブバージョンを使用します。

パーティションテーブルを消去するには、次のコマンドを使用します。

sfdisk --delete /dev/sda
0
Suncatcher