如何从 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 所写。