diff --git a/root/bin/firstboot b/root/bin/firstboot index b484e1a81..637f68896 100755 --- a/root/bin/firstboot +++ b/root/bin/firstboot @@ -3,18 +3,26 @@ exec 2>/dev/null -umount /jffs -if [ -z "$(mount | grep jffs2)" ]; then +[ -f "/tmp/.firstboot" ] && { + echo "firstboot is already running" + return +} +touch /tmp/.firstboot + +jdev=$(mount | awk '/jffs2/ {print $3}') + +if [ -z "$jdev" ]; then mtd erase OpenWrt mount -t jffs2 /dev/mtdblock/4 /jffs - mount /dev/mtdblock/2 /rom -o ro cd /jffs else echo "firstboot has already been run" echo "fixing symlinks instead" - cd / + cd $jdev fi +mount /dev/mtdblock/2 /rom -o ro + { cd /rom find . -type d diff --git a/root/etc/init.d/S99done b/root/etc/init.d/S99done index c5211813f..3ba15e8bc 100755 --- a/root/etc/init.d/S99done +++ b/root/etc/init.d/S99done @@ -1,3 +1,6 @@ #!/bin/sh +[ -z "$FAILSAFE" ] && { + { mount | grep jffs2 1>-; } || firstboot +} # turn off DMZ led echo "0x00" > /proc/sys/diag