我正在备份 Raspbian(我知道,这不是 Raspberry Pi SE,但这是一个 Linux 问题,可能不仅仅是 Raspbian 有这个问题,顺便说一句,驱动器的大小是 128GB)。第一次备份压缩后只有68GB。然后,我删除了第一个备份。下一个备份的大小超过 100GB!如果我删除第二个备份并执行另一个备份,则在进行备份时我会用完空间(因为我使用了sudo dd if=/dev/mmcblk0 bs=1M | gzip – | dd of=~/Desktop/backup-23-may-2020.gz
并且未使用的空间不全为零,所以压缩会变得更糟)
据我所知,删除文件rm
只是将文件标记为已删除,而不是将文件清零。我希望能够将所有已删除的文件完全清零,因此当我备份整个磁盘时,压缩效果更好,因为所有未使用的空间都为零。
这个命令会这样做吗? (pv
如果您想通过运行来尝试此命令,则需要安装(管道查看器) sudo apt install pv
)
dd if=/dev/zero | pv -s 100g -S | dd of=~/zeros.txt
编辑2:忘记了=
。谢谢@赫尔曼。
我不想盲目执行这个命令,因为我确实在这里编译了 OpenCV,并且我拒绝再次这样做。
编辑:据df -h
我说我有102G内存。
pi@raspberrypi:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 115G 7.9G 102G 8% /
devtmpfs 1.6G 0 1.6G 0% /dev
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 1.7G 26M 1.7G 2% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
...
答案1
这个命令会这样做吗?
=
后面缺少if
,但除此之外: 是的。我不知道这是否是实现这一目标的最有效方法,但它会完成工作。
虽然我推荐像这样的仅 dd 变体:
dd if=/dev/zero of=~/zeros.txt bs=16M status=progress
不需要pv
。
对于完整的根文件系统备份,我建议使用离线备份e2image
:关闭 pi,将卡移至 PC,然后执行不是挂载根分区。相反,请使用 缩小它resize2fs -M
,使用 来创建副本r2image -rap
,然后使用 再次展开它resize2fs
。
使用partclone
可能会更好,但我没有第一手的经验。