#!/bin/sh
+# $Id$
-exec 2>/dev/null
-umount /jffs
-mount | grep jffs2 && {
- echo "firstboot has already been run"
- echo "to run firstboot again you must boot failsafe"
- exit
+[ -f "/tmp/.firstboot" ] && {
+ echo "firstboot is already running"
+ return
}
+touch /tmp/.firstboot
+
+jdev=$(mount | awk '/jffs2/ {print $3}')
+
+if [ -z "$jdev" ]; then
+ echo -n "Creating jffs2 partition... "
+ mtd erase OpenWrt >&-
+ mount -t jffs2 /dev/mtdblock/4 /jffs
+ echo "done"
+ cd /jffs
+else
+ echo "firstboot has already been run"
+ echo "jffs2 partition is mounted, only resetting files"
+ cd $jdev
+fi
+
+exec 2>/dev/null
-mtd erase OpenWrt
-mount -t jffs2 /dev/mtdblock/4 /jffs
mount /dev/mtdblock/2 /rom -o ro
-cd /jffs
+
+echo -n "creating directories... "
{
cd /rom
find . -type d
+ cd -
} | xargs mkdir
+echo "done"
+echo -n "setting up symlinks... "
for file in $(cd /rom; find * -type f; find * -type l;)
do {
ln -sf /rom/$file $file
} done
+echo "done"
touch /tmp/resolv.conf
ln -s /tmp/resolv.conf /etc/resolv.conf