• 使用ubifs作为根文件系统的openwrt如何在进行sysupgrade时保存旧的配置


    1.openwrt的默认方案(squashfs + jffs2)

    sysupgrade脚本直接调用default_do_upgrade更新设备树、内核、根文件系统,那么它是如何保存旧配置的呢?请看default_do_upgrade(定义在package/base-files/files/lib/upgrade/common.sh中):

    1 default_do_upgrade() {
    2 sync
    3 if [ "$SAVE_CONFIG" -eq 1 ]; then
    4 get_image "$1" "$2" | mtd $MTD_CONFIG_ARGS -j "$CONF_TAR" write   
    5 else
    6 get_image "$1" "$2" | mtd write - "${PART_NAME:-image}"
    7 fi
    8 [ $? -ne 0 ] && exit 1
    9 }

    关注第4行即可,-j参数后面追加了$CONF_TAR,表示在写镜像的时候将旧的配置文件合并到jffs2 数据中 (integrate <file> into jffs2 data when writing an image)

    2.那么如果只使用ubifs作为根文件系统应该如何备份旧的配置文件呢?

    2.1 使用sysupgrade.tar这样压缩格式作为sysupgrade固件(也就是将设备树、内核和根文件系统放在一个目录下,然后将目录压缩)

    2.2 使用ubiupdatevol来更新ubi镜像到当前的根文件系统,然后重新挂载文件系统,紧接着将旧的配置文件复制到刚挂载的文件系统中即可

  • 相关阅读:
    Asp.net MVC3 Routing study
    Sharepoint 站点页面错误问题
    vc2010 学习笔记1
    UML类成员的困惑
    河道二维水流模拟高精度算法研究
    朱庆:真三维GIS技术进展
    map
    SIGGRAPH 2010: 一场视觉盛宴[转]
    新网站开张,欢迎大家
    获取其它进程内EDIT BOX内容的一种方法
  • 原文地址:https://www.cnblogs.com/dakewei/p/10058657.html
Copyright © 2020-2023  润新知