从命令行删除所有分区

从命令行删除所有分区

如何从 Linux(特别是 Ubuntu)上的命令行删除设备上的所有分区?我尝试查看 fdisk,但它会显示一个交互式提示。我正在寻找一个命令,我可以为其提供设备路径(例如 /dev/sda),它会删除 ext4、linux-swap 以及它找到的任何其他分区。本质上,这与我打开 GParted 并手动选择和删除所有分区是一样的。这似乎相当简单,但不幸的是,我无法通过 Google 找到任何东西。

答案1

这样就够了吗?

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

答案2

wipefs程序可以让您轻松删除分区表签名:

wipefs -a /dev/sda

man wipefs

wipefs 可以从指定设备中删除文件系统、raid 或分区表签名(魔术字符串),以使 libblkid 看不到这些签名。

wipefs 不会删除文件系统本身或设备上的任何其他数据。当不带任何选项使用时,wipefs 会列出所有可见文件系统及其基本签名的偏移量。

当 wipefs 删除分区表签名时,它会调用 BLKRRPART ioctl 来通知内核有关更改。

答案3

快速而粗略:用于gparted删除分区,或者如果你很着急:

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

这将破坏驱动器的 MBR(数据仍然完好无损)。

或者:

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

擦除整个驱动器(将所有内容全部写入零。虽然不“安全”,但通常足够好),或者使用“磁盘粉碎机”工具进行安全擦除。

答案4

请参阅man sfdisk,这是 fdisk 的非交互式变体。除此之外,您还可以使用 dd 删除整个分区表,如 pk 所写。

相关内容