这些删除所有分区的命令有什么区别?哪个更可取?

这些删除所有分区的命令有什么区别?哪个更可取?

这个想法是使用终端命令擦除所有分区。我发现了这些:

 dd if=/dev/zero of=/dev/sda bs=1M count=8 && sync

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

来源如下:这里这里

评论后编辑:

那这个呢:

dd if=/dev/zero of=/dev/sdXXX bs=512 count=1

这里


我有问题。我认为 mbr 已经丢失。我只想要一个原始硬盘,用来创建新分区并安装新系统。

答案1

块大小选项的值以 10 为基数。输入和输出块大小的默认值均为 512 字节。块大小越大,dd 使用的内存就越多,而且通常速度越快。

count=BLOCKS
      Copy BLOCKS `ibs'-byte blocks from the input file, instead of
      everything until the end of the file.
notrunc'  Do not truncate the output file.
sync'     Pad every input block to size of `ibs' with trailing zero bytes.

dd 手册页

答案2

第一个和第二个命令将覆盖设备的 MBR,但它们对于 GPT 有所不同。

第一个命令写入 8MB 的零并刷新文件系统缓冲区。如果有 GPT,则主 GPT 的部分将被覆盖。

第二条命令写入 512B 的零。如果存在 GPT,主表仍将完好无损。(该conv=notrunc选项没有任何区别,因为磁盘上的所有数据都会丢失。)

这些命令不会影响光盘末尾的任何次要 GPT。

第三条命令开始在分区XX处写入,并且不会删除分区表。

这应该会擦除您的 MBR 或 GPT。

sgdisk -Z /dev/sdX

此后您应该能够创建一个新的 MBR 或 GTP。

答案3

在实时 USB 会话中启动并执行

sudo dd if=/dev/urandom of=/dev/sda bs=1M

但这似乎并没有像我想要的那样工作,因为处理器工作灯大部分都熄灭了(或者是硬盘灯?),而冷却器很响

然后我读到 urandom 命令非常慢,因为它实际上试图生成真正的随机数。出于安全考虑,我并不想擦除所有数据,只是想清除所有分区(它们有问题),所以我停止了该过程并执行以下操作:

sudo dd if=/dev/zero of=/dev/sda bs=1M

这样,冷却器就会平静下来,同时“工作灯”会一直亮着。

为了查看进度,我打开了单独的终端窗口 并且做到了

watch -n5 'sudo kill -USR1 `pgrep ^dd`'

每 5 秒在初始终端窗口中报告一次进度(来源

245423407104 bytes (245 GB) copied, 3430.82 s, 71.5 MB/s
234354+0 records in
234354+0 records out
245737979904 bytes (246 GB) copied, 3435.84 s, 71.5 MB/s
234655+0 records in
234655+0 records out
246053601280 bytes (246 GB) copied, 3440.88 s, 71.5 MB/s
234956+0 records in
234956+0 records out
246369222656 bytes (246 GB) copied, 3445.91 s, 71.5 MB/s

... 在一台使用 4 年、配备 4GB 内存的普通笔记本电脑上,读取 500GB 硬盘需要 2 小时 30 分钟。

相关内容