X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/a5719244d66a8cbc92b428f8baf30d9f7fa44702..7242f4bafb2ade89de87048f8331caff613fcce4:/root/bin/firstboot diff --git a/root/bin/firstboot b/root/bin/firstboot index b484e1a81..5076d1c18 100755 --- a/root/bin/firstboot +++ b/root/bin/firstboot @@ -1,30 +1,45 @@ #!/bin/sh # $Id$ -exec 2>/dev/null -umount /jffs -if [ -z "$(mount | grep jffs2)" ]; then - mtd erase OpenWrt +[ -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 - mount /dev/mtdblock/2 /rom -o ro + echo "done" cd /jffs else echo "firstboot has already been run" - echo "fixing symlinks instead" - cd / + echo "jffs2 partition is mounted, only resetting files" + cd $jdev fi +exec 2>/dev/null + +mount /dev/mtdblock/2 /rom -o ro + +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