From: Ernest Borowski Date: Thu, 19 Aug 2021 22:03:29 +0000 (+0000) Subject: change restore mechanism on btrfs filesystem. X-Git-Tag: submit/tizen/20210826.114923^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c6490c7f1fe7029b6619d16196d12aa8d02fce92;p=platform%2Fcore%2Fsystem%2Fsystem-rw-update.git change restore mechanism on btrfs filesystem. Use subvolumes instead of cp to restore files, this will speedup restore and reduce local memory requirements. After update system will have ROOTFS subvolume located at root volume. / -- root volume /ROOTFS -- subvolume with actual data. ROOTFS subvolume is set as default one, so it will be transparent to system after update because mount will mount it at /. Change-Id: I36d40cf771b8d3cce662aa58fc669fc4c1f1df18 Signed-off-by: Ernest Borowski --- diff --git a/upgrade/update-checkpoint-create.sh b/upgrade/update-checkpoint-create.sh index cb614ec..452e463 100755 --- a/upgrade/update-checkpoint-create.sh +++ b/upgrade/update-checkpoint-create.sh @@ -50,9 +50,11 @@ mount_btrfs_partition() { LABEL=${1} PARTITION=${2} DIRECTORY=${3} - "${MOUNT}" -o rw ${PARTITION} ${DIRECTORY} + "${MOUNT}" -o subvolid=5,rw "${PARTITION}" "${DIRECTORY}" mkdir -p "${DIRECTORY}/fota" - "$BTRFS" subvolume snapshot "$DIRECTORY" "$DIRECTORY/fota/RO_update" + "$BTRFS" subvolume snapshot "$DIRECTORY/ROOTFS" "$DIRECTORY/fota/RO_update" + "$UMOUNT" "${DIRECTORY}" + "$MOUNT" -o rw "${PARTITION}" "${DIRECTORY}" echo "[Debug] Mounted ${PARTITION} as btrfs" } diff --git a/upgrade/update.sh.in b/upgrade/update.sh.in index e2988f9..4fc63a6 100755 --- a/upgrade/update.sh.in +++ b/upgrade/update.sh.in @@ -95,9 +95,12 @@ DELETE_BTRFS_PARTITION() { return fi NOTIFY "Deleting btrfs snapshot" - mount -o remount,rw "${MNT_POINT}" + umount "${MNT_POINT}" + mount -o subvolid=5,rw "${PART}" "${MNT_POINT}" btrfs subvolume delete "$MNT_POINT"/fota/RO_update rm -rf "$MNT_POINT/fota/RO_update" + umount "${MOUNT_POINT}" + mount -o rw "${PART}" "${MNT_POINT}" }