diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2016-02-09 12:33:17 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2016-02-09 12:33:17 +0000 |
commit | 4aeeead303cda2a85895fde9d3983eae323a30e1 (patch) | |
tree | 30856f12366d0b265eb6a8b04825ad8449c52672 /package | |
parent | 6b73b7a8ec744f557200f1b7be0c3018244996d6 (diff) | |
download | upstream-4aeeead303cda2a85895fde9d3983eae323a30e1.tar.gz upstream-4aeeead303cda2a85895fde9d3983eae323a30e1.tar.bz2 upstream-4aeeead303cda2a85895fde9d3983eae323a30e1.zip |
x86: preserve partition table on sysupgrade
With this patch sysupgrade will write directly to the partitions
instead of to the main disk. The UUID is copied from the image
to the MBR as well. This prevents the mbr from being completely
overwritten and losing the partition table. The -p option has
been added to maintain the original behavior and overwite the
entire disk with the new image. Tests have been added to ensure
that the image partitions match up with the active partitions.
Signed-off-by: Rob Mosher <nyt-openwrt@countercultured.net>
SVN-Revision: 48682
Diffstat (limited to 'package')
-rw-r--r-- | package/base-files/files/lib/upgrade/common.sh | 1 | ||||
-rwxr-xr-x | package/base-files/files/sbin/sysupgrade | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index f894f3155b..0383d253a3 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -68,6 +68,7 @@ run_ramfs() { # <command> [...] install_bin /usr/sbin/ubirsvol install_bin /usr/sbin/ubirmvol install_bin /usr/sbin/ubimkvol + install_bin /usr/sbin/partx for file in $RAMFS_COPY_BIN; do install_bin ${file//:/ } done diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 93f0749108..2f441f868b 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -10,6 +10,7 @@ export INTERACTIVE=0 export VERBOSE=1 export SAVE_CONFIG=1 export SAVE_OVERLAY=0 +export SAVE_PARTITIONS=1 export DELAY= export CONF_IMAGE= export CONF_BACKUP_LIST=0 @@ -29,6 +30,7 @@ while [ -n "$1" ]; do -q) export VERBOSE="$(($VERBOSE - 1))";; -n) export SAVE_CONFIG=0;; -c) export SAVE_OVERLAY=1;; + -p) export SAVE_PARTITIONS=0;; -b|--create-backup) export CONF_BACKUP="$2" NEED_IMAGE=1; shift;; -r|--restore-backup) export CONF_RESTORE="$2" NEED_IMAGE=1; shift;; -l|--list-backup) export CONF_BACKUP_LIST=1; break;; @@ -62,6 +64,7 @@ upgrade-option: -i interactive mode -c attempt to preserve all changed files in /etc/ -n do not save configuration over reflash + -p do not attempt to restore the partition table after flash. -T | --test Verify image and config .tar.gz but do not actually flash. -F | --force |