mirror of https://github.com/hak5/openwrt.git
ipq806x: request the first free loop device dynamically for the nbg6817 sysupgrade
Instead of hardcoding /dev/loop0, it's safer to query for the first free loop device and assign that dynamically. While /dev/loop0 is a reasonable assumption immediately following "losetup --detach-all", detaching the mounted overlay is no longer strictly necessary once dual-boot support has been added for the nbg6817. Signed-off-by: Stefan Lippers-Hollmann <s.l-h@gmx.de>openwrt-18.06
parent
b36cf0be30
commit
42fe7b3bbe
|
@ -47,23 +47,24 @@ zyxel_do_flash() {
|
||||||
}
|
}
|
||||||
|
|
||||||
# Mount loop for rootfs_data
|
# 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."
|
echo "Failed to mount looped rootfs_data."
|
||||||
sleep 10
|
sleep 10
|
||||||
reboot -f
|
reboot -f
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Format new rootfs_data at position ${offset}."
|
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
|
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}."
|
echo "Saving config to rootfs_data at position ${offset}."
|
||||||
cp -v /tmp/sysupgrade.tgz /tmp/new_root/
|
cp -v /tmp/sysupgrade.tgz /tmp/new_root/
|
||||||
umount /tmp/new_root
|
umount /tmp/new_root
|
||||||
}
|
}
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
losetup -d /dev/loop0 >/dev/null 2>&1
|
losetup -d $loopdev >/dev/null 2>&1
|
||||||
sync
|
sync
|
||||||
umount -a
|
umount -a
|
||||||
reboot -f
|
reboot -f
|
||||||
|
|
Loading…
Reference in New Issue