aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh9
1 files changed, 5 insertions, 4 deletions
diff --git a/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh b/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh
index dcd66ea2ca..cf2acfcc17 100644
--- a/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh
+++ b/target/linux/ipq806x/base-files/lib/upgrade/zyxel.sh
@@ -47,23 +47,24 @@ zyxel_do_flash() {
}
# Mount loop for rootfs_data
- losetup -o $offset /dev/loop0 "${rootfs}" || {
+ local loopdev="$(losetup -f)"
+ losetup -o $offset $loopdev $rootfs || {
echo "Failed to mount looped rootfs_data."
sleep 10
reboot -f
}
echo "Format new rootfs_data at position ${offset}."
- mkfs.ext4 -F -L rootfs_data /dev/loop0
+ mkfs.ext4 -F -L rootfs_data $loopdev
mkdir /tmp/new_root
- mount -t ext4 /dev/loop0 /tmp/new_root && {
+ mount -t ext4 $loopdev /tmp/new_root && {
echo "Saving config to rootfs_data at position ${offset}."
cp -v /tmp/sysupgrade.tgz /tmp/new_root/
umount /tmp/new_root
}
# Cleanup
- losetup -d /dev/loop0 >/dev/null 2>&1
+ losetup -d $loopdev >/dev/null 2>&1
sync
umount -a
reboot -f