x86: keep /boot mounted for kexec
[openwrt/openwrt.git] / target / linux / x86 / base-files / lib / preinit / 79_move_config
index 1d4873d78b480cb3f11e04e6246559417b431a8a..7b34d9e5dac7f73800aa76a1470abbe570350c79 100644 (file)
@@ -2,12 +2,20 @@
 # Copyright (C) 2012-2015 OpenWrt.org
 
 move_config() {
-       . /lib/upgrade/platform.sh
+       local partdev
 
-       if platform_export_bootpart; then
-               mount -t ext4 -o rw,noatime "$BOOTPART" /mnt
-               mv -f /mnt/sysupgrade.tgz /
-               umount /mnt
+       . /lib/upgrade/common.sh
+
+       if export_bootdevice && export_partdevice partdev 1; then
+               mkdir -p /boot
+               if mount -t ext4 -o ro,noatime "/dev/$partdev" /boot; then
+                       if [ -f /boot/sysupgrade.tgz ]; then
+                               mount /boot -o remount,rw,noatime
+                               mv -f /boot/sysupgrade.tgz /
+                               mount /boot -o remount,ro,noatime
+                       fi
+                       mount --bind /boot/boot /boot
+               fi
        fi
 }