将 uSD 卡备份到最小的 img/zip 文件中

将 uSD 卡备份到最小的 img/zip 文件中

我想备份我自制的基于 RPI 的 mp3 播放器。里面有一张 16GB 的 uSD 卡,只使用了 4GB 的数据。当我使用 dd 复制整个 uSD 卡作为备份时,我得到了一个 16GB 的 img 文件。压缩后大约有 8GB。

您是否知道如何将 uSD 上未使用的所有数据“清零”,从而使 zip 变得更高效?

或者,我可以使用 gparted 来减小分区的大小,但这听起来对我来说有点复杂(我不知道 tmp 文件需要多少空间等)

答案1

如果文件系统是 ext2、ext3 或 ext4,那么您可以考虑使用零自由用零填充未分配的块。

例如卸载分区 /dev/sdf1 上的 ext2/3/4 文件系统将是:

sudo zerofree /dev/sdf1

答案2

我对 vfat 使用“zerofill”如下:
挂载 uSD 卡,然后转到根文件夹:

cd 安装点

用零填充空白处:

sudo dd if=/dev/zero of=tmp-file
rm tmp-file

备份到 img 文件中

sudo dd if=/dev/sde of=mybackup.img bs=32M
tar -cvzf mybackup.tgz mybackup.img

在我的示例中,剥离 SD 卡之前的文件大小为:8860766726 之后为:2552202816
注意:此方法会写入微型 SD 的整个未使用内存,从而缩短其使用寿命!

相关内容