summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xroot/bin/firstboot16
-rwxr-xr-xroot/etc/init.d/S99done3
2 files changed, 15 insertions, 4 deletions
diff --git a/root/bin/firstboot b/root/bin/firstboot
index b484e1a818..637f68896e 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 c5211813fb..3ba15e8bc4 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