使用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鏡像到當前的根文件系統,然后重新掛載文件系統,緊接着將舊的配置文件復制到剛掛載的文件系統中即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM