我有一份用 制作的 RPi SD 卡副本dd if=/dev/mmblk0 of=backup.img
。这会创建一个 32GB 的文件。其中只有大约 6GB 被实际使用,其余的只是已删除文件的数据。我该如何删除旧的、无用的数据?它不必缩小映像文件,只需将不需要的内容清零即可
答案1
我已经成功使用 Drew Bonasera ('Drewsif') 编写的名为 pishrink 的脚本备份了无头 Raspberry Pi 4(适用于所有型号)。它很有用,因为在使用 dd 制作映像后,它可以选择使用 resize2fs 将映像缩小到略大于数据大小,还可以选择将一次运行的命令插入映像中,以使 Raspbian 在将映像闪存到卡中并首次用于启动 Pi 时扩展文件系统。我一直在用 32 GB 的卡制作 8 GB 的映像。
这意味着您可以刷新比原始卡更小的卡,只要缩小的图像尺寸小于新卡。
https://github.com/Drewsif/PiShrink
将图像压缩为 zip 存档很不错(Balena Etcher 可以使用这些存档),但是……如果让 Pi 硬件进行压缩,速度会非常慢。由于完成的图像最终位于安装在 Pi 上的 Windows 共享文件夹中,因此在 PiShrink 完成后,我的脚本使用 Pi 上的 sshpass 命令 Windows(启用 OpenSSH)运行猪(快速命令行并行 Zip 工具)并可将 zip 存档压缩到大约 5.5 到 6 GB。或者您可以使用其他方法(WinRar、Winzip、7-zip 等)。