dd 命令未填充设备

dd 命令未填充设备

我有多余的 120GB SSD,我想彻底清除数据。卸下驱动器后,我跑了

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

但复制8GB后停止,报告“dd:写入'/dev/sda'时出错:设备上没有剩余空间”。

lsblk显示正确的设备名称,容量为 112GB。

我尝试了该命令的几种变体,其中;dd具有不同的值。bs有和没有status=progress;即使在安装设备之后也是如此。每次尝试在写入完全相同的数据量(7996309504 字节)后都会停止。

为什么dd只写入 8GB 后就声称 120GB 驱动器已满?

我什至用 重新格式化gnome-disks,但dd行为还是一样。

无奈之下,我挂载分区并尝试:

sudo dd if=/dev/urandom of=/dev/sda1 bs=4M status=progress

运行完成,报告:

已复制 120033123840 字节(120 GB、112 GiB)

通常需要带有 的设备名称dd,因此当分区工作时我感到很惊讶。谁能解释一下发生了什么事吗?

一些评论后编辑

也许@ljm 有所发现。ls显示我有一个名为“/dev/sda”的普通文件,大小为 8GB。file说这是一个数据文件。它从哪里来,我不知道。为什么它的大小受到限制,我不知道。删除它安全吗?

我还有一个块特殊文件/dev/sda1。

答案1

当您卸载磁盘时,该磁盘有消失的趋势。因此,当您卸载设备时,设备文件可能也消失了。补救措施通常是拔出再插入。

当设备文件/dev/sda消失后,dd假设您要创建一个普通文件/dev/sda。即使它在 下/dev,它仍然是一个普通文件,而不是一个设备。您dd将继续操作,直到分区已满,很可能有 8GB。

相关内容