如何获得嵌入式Linux rootfs的备份?

时间:2015-02-18 15:41:38

标签: backup tftp rootfs ubifs

我有一个嵌入式Linux环境运行良好,想要保存rootfs部分,然后用空的nand刷新其他新板。

所以,我试过了。从裸机(在kernell启动之前),我将/dev/nand0.root.bb放到我的PC的tftp服务器上。

然后我尝试在rootfs.ubifs中重命名它,并在好地方调用" update -t​​ rootfs"来自其他(和新的)董事会的脚本。

尺寸不同:  17301504原始rootfs.ubifs 264630784 /dev/nand0.root.bb

问题是系统无法正常启动。

这里有人以这种方式工作吗?我需要帮助......

1 个答案:

答案 0 :(得分:0)

vicenet,

你应该这样做。 UBI文件系统与nand flash上​​的其他映像(MLO,裸机,内核)不同,甚至不像硬盘映像。因此,不能通过在nand0.root.bb分区上使用cp来复制它。这就是为什么你的新系统没有正确启动的原因。

不幸的是我也在寻找解决方案,但我只知道另一个方向(从ubifs图像复制到flash)也不能这样做。

我认为你应该首先在裸机中使用UBI工具(ubimkvol,ubiattach,ubiformat)。如果你没有,可能会为你的系统寻找一个裸机版本,然后闪现(当然是在备份旧版本之前)。这是我之前的一个问题。如果你知道,如何编译一个完全适合你的系统,然后进入menuconfig,你应该找到正确的ubi命令。

但是,在使用此命令时,我认为可以将/dev/nand0.root.bb作为新的字符设备附加到系统,如下所示:

ubiattach /dev/nand0.root
UBI: attaching mtd0 to ubi0
...
...

这至少是你想要将新图像闪存到nand时的方式。它创建一个/ dev / ubi0节点。不幸的是,我尝试了这个并且在下面的mount命令上失败了,只是为了测试它是否已经正确创建:

mount /dev/ubi0 /mnt/rootfs
mount: bad file number

因此,即使安装失败,我认为创建图像也不是正确的方法,但可能是正确的方向。也许其他人知道完整的解决方案?

佐利