large init script cleanup and merge of whiterussian changes, new dnsmasq config handling
[openwrt.git] / package / base-files / default / sbin / mount_root
1 #!/bin/sh
2 is_dirty() {
3         grep Broadcom /proc/cpuinfo >&- || return 1
4         OFFSET="$(($(hexdump -v /dev/mtdblock/1 -s 20 -n 2 -e '"%d"')-1))"
5         return $(hexdump -v /dev/mtdblock/1 -s $OFFSET -n 1 -e '"%d"')
6 }
7
8 size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
9 mount none /tmp -t tmpfs -o size=$size
10
11 if [ "$1" != "failsafe" ]; then 
12         mtd unlock linux
13         mount | grep jffs2 >&-
14         if [ $? = 0 ] ; then
15                 if [ $(cat /proc/mtd | wc -l) = 6 ]; then
16                         mtd erase OpenWrt
17                         jffs2root --move
18                 else
19                         mount -o remount,rw /dev/root /
20                 fi
21         else
22                 . /bin/firstboot
23                 is_dirty 
24                 [ $? != 0 ] && {
25                         mount /dev/mtdblock/4 /jffs
26                         pivot /jffs /rom
27                 } || ramoverlay
28         fi
29 fi
30
31 mount none /tmp -t tmpfs -o remount,nosuid,nodev,mode=1777
32 mkdir -p /dev/pts
33 mount none /dev/pts -t devpts
34 mount -t sysfs none /sys 2>&-