sysupgrade: unmount filesystems before reboot
[openwrt/openwrt.git] / package / base-files / files / lib / upgrade / common.sh
index f894f3155b51454da361068be574aa871dd88ddf..bed9c188f2358017c8b60d46137663c576e25333 100644 (file)
@@ -53,7 +53,7 @@ run_ramfs() { # <command> [...]
                /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 \
                /bin/cut /usr/bin/printf /bin/sync /bin/mkdir /bin/rmdir        \
-               /bin/rm /usr/bin/basename /bin/kill /bin/chmod
+               /bin/rm /usr/bin/basename /bin/kill /bin/chmod /usr/bin/find
 
        install_bin /bin/uclient-fetch /bin/wget
        install_bin /sbin/mtd
@@ -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
@@ -126,7 +127,7 @@ kill_remaining() { # [ <signal> ]
                else 
                        case "$name" in
                                # Skip essential services
-                               *procd*|*ash*|*init*|*watchdog*|*ssh*|*dropbear*|*telnet*|*login*|*hostapd*|*wpa_supplicant*|*nas*) : ;;
+                               *procd*|*ash*|*init*|*watchdog*|*ssh*|*dropbear*|*telnet*|*login*|*hostapd*|*wpa_supplicant*|*nas*|*relayd*) : ;;
 
                                # Killable process
                                *)
@@ -242,6 +243,7 @@ do_upgrade() {
        [ -n "$DELAY" ] && sleep "$DELAY"
        ask_bool 1 "Reboot" && {
                v "Rebooting system..."
+               umount -a
                reboot -f
                sleep 5
                echo b 2>/dev/null >/proc/sysrq-trigger