Sysupgrade技术参考
与opkg
, mtd
等相比, sysupgrade
仅仅是个shell脚本: /sbin/sysupgrade
诣在更容易的实现系统更新.
如何使用
您可以通过阅读 Sysupgrade – Usage 了解如何更新.
参数
You can populate your /etc/sysupgrade.conf
and issue additional options (r34975):
Usage: /sbin/sysupgrade [<upgrade-option>...] <image file or URL> /sbin/sysupgrade [-q] [-i] <backup-command> <file> upgrade-option: -d <delay> add a delay before rebooting -f <config> restore configuration from .tar.gz (file or url) -i interactive mode -c attempt to preserve all changed files in /etc/ -n do not save configuration over reflash -F | --force Flash image even if image checks fail, this is dangerous! -q less verbose -v more verbose -h | --help display this help backup-command: -b | --create-backup <file> create .tar.gz of files specified in sysupgrade.conf then exit. Does not flash an image. If file is '-', i.e. stdout, verbosity is set to 0 (i.e. quiet). -r | --restore-backup <file> restore a .tar.gz created with sysupgrade -b then exit. Does not flash an image. If file is '-', the archive is read from stdin.
The list of files preserved is by default in /lib/upgrade/keep.d
. Additionally files returned by opkg list-changed-conffiles
are also preserved.
SAVE_OVERLAY saves the complete /overlay
directory. There's no rule what needs to be saved... sometimes I install additional packages but then include them in the later firmware builds, so I don't have to preserve those. Sometimes files are modified and the new firmware already contains the modifications so those are also not needed. But config files are needed or router will boot with default settings. But those are preserved by default (unless using -n).
-- Does this mean, I make an archive.tar.gz of /etc and /root for example and sysupgrade -f archive.tar.gz will flash the router and afterwards restores the configs from this archive?
That's what is says: 'restore configuration from .tar.gz (file or url)'. Anything archived in the tgz will be written to /overlay after the flash. This way you can hand-pick the files that will be the system after new firmware boot.