如果 U 盘不为空,则使用 `dd` 命令

如果 U 盘不为空,则使用 `dd` 命令

dd如果我要复制的文件大小小于 USB 容量,我是否应该在使用 USB 设备之前清洁它?

例如:
我的 USB 驱动器有 32 GB,里面存有数据,
我的.iso文件有 4 GB。

写入驱动器后dd,所有数据都会被删除并覆盖吗?还是只有 4 GB 的数据会被文件覆盖.iso

答案1

在您的示例中,dd将写入 4 GB,其余的 USB 存储棒不会改变。但这并不意味着那里的数据将很容易访问。

您写了有关.iso文件的内容,但我会使用通用术语“磁盘映像”。

旧分区表将被新内容覆盖。如果映像是健全的,它不包含指向映像本身以外的结构(如分区表或文件系统标头)。将其放在 USB 记忆棒上后,您的操作系统没有理由也没有线索去窥探现在显示为驱动器未使用的部分。

另一方面,如果图像包含一个分区表,该分区表表明在图像之外很远的地方有一个分区(例如,图像曾经更大,但被裁剪了),并且偶然在同一位置有一个分区,则这个旧分区在dding 之后将可访问。

有一些程序专门用来窥探:取证和恢复工具。如果使用得当,它们可以在你读取后在剩余空间中找到旧文件甚至整个文件系统dd

我应该清理我的 USB 设备吗?

视情况而定。如果您担心未覆盖的数据会干扰新写入的内容,那么答案是:不会,因为它不会干扰,除非图像有些无效。

但是如果你担心有人会获取你的部分旧文件,那么是的,你应该明确覆盖 USB 驱动器的整个容量;dd使用较小的图像是不够的。

最简单的方法是写入零。在dd写入图像之前覆盖整个设备会浪费时间和写入周期。我会这样做:

cat my_image /dev/zero | sudo dd of=/dev/my_usb

这样,您将写入图像,后面跟着零。最终您将得到类似“设备上没有剩余空间”的信息,没关系。

相关内容