I was upgrading an EdgeRouter and it restarted multiple times instead of booting
/bsd

When I had a chance to boot it correctly, I noticed that sysmerge and fw_update
were run multiple times.

This diff avoids filling rc.firsttime and rc.sysmerge.


Index: distrib/miniroot/install.sub
===================================================================
RCS file: /cvs/src/distrib/miniroot/install.sub,v
retrieving revision 1.1154
diff -u -p -r1.1154 install.sub
--- distrib/miniroot/install.sub        26 May 2020 16:21:00 -0000      1.1154
+++ distrib/miniroot/install.sub        14 Jul 2020 12:54:27 -0000
@@ -2734,6 +2734,9 @@ finish_up() {
        local _kernel_dir=/mnt/usr/share/relink/kernel
        local _kernel=${MDKERNEL:-GENERIC} _syspatch_archs="amd64 arm64 i386"
 
+       # Empty rc.firsttime
+       echo "" >/mnt/etc/rc.firsttime
+
        # Mount all known swap partitions.  This gives systems with little
        # memory a better chance at running 'MAKEDEV all'.
        if [[ -x /mnt/sbin/swapctl ]]; then
@@ -2812,7 +2815,7 @@ finish_up() {
 
        # Ensure that sysmerge in batch mode is run on reboot.
        [[ $MODE == upgrade ]] &&
-               echo "/usr/sbin/sysmerge -b" >>/mnt/etc/rc.sysmerge
+               echo "/usr/sbin/sysmerge -b" >/mnt/etc/rc.sysmerge
 
        # If a proxy was needed to fetch the sets, use it for fw_update and 
syspatch
        [[ -n $http_proxy ]] &&

Reply via email to