因此,我想使用我的 Ubuntu 笔记本电脑备份我对 Raspian 所做的事情,并遵循以下链接中的建议。所以使用这个命令... sudo dd if=/dev/mmcblk0 of=~/sd-card-copy.img bs=1M status=progress 这一切都很好,但是,我的笔记本电脑只有 24Gb 备用和存储卡是128Gb!这个命令似乎想要写入整个存储卡大小,即使它只有 10Gb 的数据。
我有一个可以共享的服务器地址,该地址有空间,但是如何将“dd”命令定向到另一个区域?起初我以为我可以更改到该目录并运行命令,但它开始将它放入我的“主”文件夹。提前感谢您的帮助。
首先,我认为了解您正在使用的命令很重要。
dd
就其本质而言,它是(输入文件)的逐位副本,if
当您给它一个of
(输出文件)时,它会产生文件的完美副本。这包括任何零。您还必须记住,文件表实际上并不代表设备上的内容,而只是您通常可以看到的内容。这就是为什么当您尝试使用恢复软件恢复文件时,您通常可以恢复尚未被覆盖的文件。文件从表中删除,允许它们消耗的空间被列为“空闲”,而其他文件可以覆盖这些“已删除”文件。为了节省删除时间,它们在大多数文件系统中通常不会被清除。您的
of=
选项采用文件路径,因此如果您尝试在当前工作的目录中获取输出,pwd
那么of=sdcard-copy.img
就足够了。话虽如此,您还有一个保存输出的替代选项:
您可以使用 gzip 压缩输出以保存它:
dd bs=1M if=/dev/mmcblk0 | gzip -c > sdcard-copy.img.gz
并在恢复阶段解压缩它:
gunzip -c sdcard-copy.img.gz | dd of=/dev/sdb bs=1M
或者你想要的目标设备是什么(我怀疑sda
)这样做的缺点是压缩/解压缩与普通复制相比需要一些时间。对于您的情况,如果源大部分为零(听起来像这样),实际上可能会非常快。