运行系统上的 dd 命令使用旧版本的文件创建备份映像

运行系统上的 dd 命令使用旧版本的文件创建备份映像

我在脚本中使用这些命令来创建 SD 卡的映像备份,同时 Linux 操作系统(OpenWrt)在其上运行。

rootfs 是 1000MiB,所以我只添加前 300 个块。这样我可以使用 Win32 Disk Imager 将备份中的启动和根文件系统恢复到我喜欢的任何其他 SD 卡(选择“只读分配的分区”)

imagesPath="/mnt/usb/openwrt/BackupOfImages/"
image_file=${imagesPath}OpenWrt-Image-$(date "+%Y-%m-%d-%H-%M-%S").img.gz

sync
dd if=/dev/mmcblk0 bs=4M count=300 | pv | gzip > $image_file

但是,当我使用gunzip并安装创建的.img文件时,我看到我正在处理的某些文件...它们的最新版本没有备份,而是备份包含这些文件的旧版本。我在运行备份脚本之前所做的最近编辑不包含在备份中。我认为在脚本中的 dd 命令之前使用sync 命令会刷新缓存,以便备份所有文件的最新版本?

我知道最佳实践是在运行 dd 命令之前卸载 sd 卡上的文件系统,但我的用例不允许我这样做。我还做错了什么?

干杯。

答案1

也许同步命令不在正确的位置。我不是专家,但我会写:

dd if=/dev/mmcblk0 bs=4M count=300 && sync | gzip > $image_file

相关内容