summaryrefslogtreecommitdiff
path: root/package/base-files/files/sbin/mount_root
blob: 80078b51647ffd4404227e85c6e301a22de086cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
. /etc/functions.sh

mount none /proc -t proc
size=$(awk '/Mem:/ {l=5242880;print((s=$2/2)<l)?$2-l:s}' /proc/meminfo)
mount none /tmp -t tmpfs -o size=$size,nosuid,nodev,mode=1777
if grep devfs /proc/filesystems > /dev/null; then
	mount none /dev -t devfs
else
	mount -t sysfs none /sys
	mount -t tmpfs tmpfs /dev -o size=512K
	mknod /dev/console c 5 1
	exec >/dev/console </dev/console 2>&1
	mkdir /dev/shm
	/sbin/hotplug2 --no-persistent --coldplug --max-children 1
fi
mkdir -p /dev/pts
mount none /dev/pts -t devpts

[ failsafe != "$1" ] && {
	grep rootfs /proc/mtd >/dev/null 2>/dev/null && {
		mtd unlock rootfs
		grep rootfs_data /proc/mtd >/dev/null 2>/dev/null && {
			. /bin/firstboot
			echo "switching to jffs2"
			mount "$(find_mtd_part rootfs_data)" /jffs -t jffs2
			fopivot /jffs /rom
		}
	} || mount -o remount,rw /dev/root /
}