move platform specific base-files into target/linux/<targetname>
[openwrt/openwrt.git] / target / linux / ar7-2.4 / base-files / sbin / mount_root
diff --git a/target/linux/ar7-2.4/base-files/sbin/mount_root b/target/linux/ar7-2.4/base-files/sbin/mount_root
new file mode 100755 (executable)
index 0000000..6b90bdc
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
+mount none /tmp -t tmpfs -o size=$size
+
+if [ "$1" != "failsafe" ]; then 
+       mtd unlock linux
+       mount | grep jffs2 >&-
+       if [ $? = 0 ] ; then
+               if [ $(cat /proc/mtd | wc -l) = 6 ]; then
+                       mtd erase OpenWrt
+               else
+                       mount -o remount,rw /dev/root /
+               fi
+       else
+               . /bin/firstboot
+               echo "switching to jffs2"
+               mount /dev/mtdblock/4 /jffs -t jffs2
+               pivot /jffs /rom || {
+                       echo "jffs2 unusable; using ramdisk"
+                       ramoverlay
+               }
+       fi
+fi
+
+mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
+mkdir -p /dev/pts
+mount none /dev/pts -t devpts
+mount -t sysfs none /sys 2>&-