我目前有一个使用嵌入式 Linux、C 和 C++ 开发的嵌入式视频服务器。我目前让装配线工人通过 USB 闪存驱动器刷新 IDE 驱动器,如下所示:
dd if=/dev/sdb1 of=/dev/sda1。
昨天,当我反转 IF 和 OF 时,我意外删除了我的操作系统和软件的新版本之一。无论如何,我决定开始将固件副本存储到我们的文件服务器中,因此,1. 他们不再需要使用 USB 闪存驱动器(非常慢),然后他们就可以使用闪存中的文件服务器文件;2. 我不会再意外删除我的一个开发映像。
我的问题很简单。首先,有没有更好的方法可以做到这一点?第二,正如我目前正在做的那样,我应该使用文件扩展名吗?它应该是什么?
编辑
另外,我可以通过这种方式复制 mbr 吗?我厌倦了在每个 ide 上安装 grub。
答案1
过去我见过固件映像带有.image
或.img
或.bin
- 任您挑选。我非常喜欢 mailq 的建议,.dd-image-of-my-system
因为它至少很详细,文件扩展名与dd
图像等内容无关,并且使用制表符补全功能,他们不应该在输入时遇到任何问题。
至于将其存储在文件服务器上,这听起来是个非常明智的想法。我假设您的文件服务器已备份并且也备份在 RAID 上?如果是这样,您可能从一开始就应该这样做。
下一步 - 通过 FTP 自行更新固件,这样您的用户根本无需手动交互;)
答案2
Common.img
用于某种磁盘映像。如果映像小于 20GiB,您也可以像这样动态压缩它;
dd if=/dev/SOURCE | gzip > /BACKUP_PATH/image.gz
优点:dd 映像较小,缺点:恢复时间较长
像这样恢复图像;
gzip -dc /BACKUP_PATH/image.gz | dd of=/dev/SOURCE