diff --git a/packages/initramfs/sysutils/busybox-initramfs/scripts/init b/packages/initramfs/sysutils/busybox-initramfs/scripts/init index 4997ba14c3..9c2a709eb9 100755 --- a/packages/initramfs/sysutils/busybox-initramfs/scripts/init +++ b/packages/initramfs/sysutils/busybox-initramfs/scripts/init @@ -295,6 +295,25 @@ NBD_DEVS="0" fi } + update_bootloader() { + if [ -f "/flash/$IMAGE_SYSTEM" ]; then + # /flash is filesystem with system image file + export BOOT_ROOT="/flash" + export SYSTEM_ROOT="/sysroot" + + mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop" + + if [ -f $SYSTEM_ROOT/usr/share/bootloader/update.sh ]; then + echo "updating Bootloader..." + $IONICE /bin/busybox sh $SYSTEM_ROOT/usr/share/bootloader/update.sh + $IONICE /bin/busybox sync + fi + + umount /sysroot + fi + } + + hfsdiskprep() { for DEVICE in /dev/sd*; do for device in $(/bin/busybox blkid $DEVICE); do @@ -415,6 +434,7 @@ NBD_DEVS="0" if [ "$MD5_FAILED" -eq "0" -o "$MD5_NOCHECK" -eq "1" ] ; then update "Kernel" "$UPDATE_KERNEL" "/flash/$IMAGE_KERNEL" update "System" "$UPDATE_SYSTEM" "/flash/$IMAGE_SYSTEM" + update_bootloader REBOOT="1" else /bin/busybox rm "$UPDATE_DIR/$UPDATE_KERNEL"