}
supivot() { # <new_root> <old_root>
- mount | grep "on $1 type" 2>&- 1>&- || mount -o bind $1 $1
+ /bin/mount | grep "on $1 type" 2>&- 1>&- || /bin/mount -o bind $1 $1
mkdir -p $1$2 $1/proc $1/sys $1/dev $1/tmp $1/overlay && \
- mount -o noatime,move /proc $1/proc && \
+ /bin/mount -o noatime,move /proc $1/proc && \
pivot_root $1 $1$2 || {
- umount -l $1 $1
+ /bin/umount -l $1 $1
return 1
}
- mount -o noatime,move $2/sys /sys
- mount -o noatime,move $2/dev /dev
- mount -o noatime,move $2/tmp /tmp
- mount -o noatime,move $2/overlay /overlay 2>&-
+ /bin/mount -o noatime,move $2/sys /sys
+ /bin/mount -o noatime,move $2/dev /dev
+ /bin/mount -o noatime,move $2/tmp /tmp
+ /bin/mount -o noatime,move $2/overlay /overlay 2>&-
return 0
}
run_ramfs() { # <command> [...]
- install_bin /bin/busybox /bin/ash /bin/sh /bin/mount /bin/umount \
- /sbin/pivot_root /usr/bin/wget /sbin/reboot /bin/sync /bin/dd \
- /bin/grep /bin/cp /bin/mv /bin/tar /usr/bin/md5sum "/usr/bin/[" \
- /bin/vi /bin/ls /bin/cat /usr/bin/awk /usr/bin/hexdump \
+ install_bin /bin/busybox /bin/ash /bin/sh /bin/mount /bin/umount \
+ /sbin/pivot_root /usr/bin/wget /sbin/reboot /bin/sync /bin/dd \
+ /bin/grep /bin/cp /bin/mv /bin/tar /usr/bin/md5sum "/usr/bin/[" \
+ /bin/vi /bin/ls /bin/cat /usr/bin/awk /usr/bin/hexdump \
/bin/sleep /bin/zcat /usr/bin/bzcat /usr/bin/printf /usr/bin/wc
install_bin /sbin/mtd
exit 1
}
- mount -o remount,ro /mnt
- umount -l /mnt
+ /bin/mount -o remount,ro /mnt
+ /bin/umount -l /mnt
grep /overlay /proc/mounts > /dev/null && {
- mount -o noatime,remount,ro /overlay
- umount -l /overlay
+ /bin/mount -o noatime,remount,ro /overlay
+ /bin/umount -l /overlay
}
# spawn a new shell from ramdisk to reduce the probability of cache issues
local cmdline
read cmdline < /proc/$pid/cmdline
- # Skip kernel threads
+ # Skip kernel threads
[ -n "$cmdline" ] || continue
case "$name" in
# Skip essential services
- *procd*|*ash*|*init*|*watchdog*|*ssh*|*dropbear*|*telnet*|*login*|*hostapd*|*wpa_supplicant*) : ;;
+ *procd*|*ash*|*init*|*watchdog*|*ssh*|*dropbear*|*telnet*|*login*|*hostapd*|*wpa_supplicant*|*nas*) : ;;
# Killable process
*)
}
rootfs_type() {
- mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }'
+ /bin/mount | awk '($3 ~ /^\/$/) && ($5 !~ /rootfs/) { print $5 }'
}
get_image() { # <source> [ <command> ]
*) cmd="cat";;
esac
if [ -z "$conc" ]; then
- local magic="$(eval $cmd $from | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')"
+ local magic="$(eval $cmd $from 2>/dev/null | dd bs=2 count=1 2>/dev/null | hexdump -n 2 -e '1/1 "%02x"')"
case "$magic" in
1f8b) conc="zcat";;
425a) conc="bzcat";;
esac
fi
- eval "$cmd $from ${conc:+| $conc}"
+ eval "$cmd $from 2>/dev/null ${conc:+| $conc}"
}
get_magic_word() {
get_image "$@" | dd bs=4 count=1 2>/dev/null | hexdump -v -n 4 -e '1/1 "%02x"'
}
-refresh_mtd_partitions() {
- mtd refresh rootfs
-}
-
jffs2_copy_config() {
if grep rootfs_data /proc/mtd >/dev/null; then
# squashfs+jffs2
default_do_upgrade() {
sync
- if [ "$SAVE_CONFIG" -eq 1 -a -z "$USE_REFRESH" ]; then
- get_image "$1" | mtd -j "$CONF_TAR" write - "${PART_NAME:-image}"
+ if [ "$SAVE_CONFIG" -eq 1 ]; then
+ get_image "$1" | mtd $MTD_CONFIG_ARGS -j "$CONF_TAR" write - "${PART_NAME:-image}"
else
get_image "$1" | mtd write - "${PART_NAME:-image}"
fi
default_do_upgrade "$ARGV"
fi
- [ "$SAVE_CONFIG" -eq 1 -a -n "$USE_REFRESH" ] && {
- v "Refreshing partitions"
- if type 'platform_refresh_partitions' >/dev/null 2>/dev/null; then
- platform_refresh_partitions
- else
- refresh_mtd_partitions
- fi
- if type 'platform_copy_config' >/dev/null 2>/dev/null; then
- platform_copy_config
- else
- jffs2_copy_config
- fi
- }
+ if [ "$SAVE_CONFIG" -eq 1 ] && type 'platform_copy_config' >/dev/null 2>/dev/null; then
+ platform_copy_config
+ fi
+
v "Upgrade completed"
[ -n "$DELAY" ] && sleep "$DELAY"
ask_bool 1 "Reboot" && {