summaryrefslogtreecommitdiffstats
path: root/generic/etc/init.d/net2flash
blob: 3f270b36d5b589899ef90727354e5e8d7d76ab4d (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/sh
#
# /etc/init.d/net2flash: 
#

ROOTFS="/dev/mtdblock/2"

case $1 in 

	start)
		# check if we already run from flash	
		if [ "x`mount | grep root | grep mtdblock`" != "x" ]; then
			echo "net2flash does only work when running from NFS";
			exit 1;
		fi
		# check if /mnt is already in use
		if [ "x`mount | grep /mnt`" != "x" ]; then
			echo "mountpoint /mnt already in use";
			exit 1;
		fi

		echo -n "mounting $ROOTFS..."
		mount -t jffs2 $ROOTFS /mnt
		if [ "$?" != "0" ]; then
			echo "could not mount $ROOTFS on /mnt"
			exit 1
		fi
		echo "done"
		echo -n "save /home..."
		cp -a /mnt/home /tmp
		echo "done"
		echo -n "cleaning old content..."
		rm -fr /mnt/*
		echo "done"
		echo -n "copying files..."
		cp -ax / /mnt/
		echo "done"
		echo -n "generating md5 sums..."
		rm -f /tmp/files.md5
		cd /mnt
		find . -type f | xargs md5sum > /tmp/files.md5
		echo "done"
		echo -n "checking md5sums..."
		cd /;
		failures=`md5sum -c /tmp/files.md5 | grep FAILED`
		echo -n "status: " 
		if [ "x$failures" != "x" ]; then
			echo "!!! INCONSISTENCIES DETECTED !!!"
			echo $failures
		else
			echo "all files consistent";
		fi
		rm /tmp/files.md5
		echo -n "restore /home..."
		cp -a /tmp/home /mnt/
		echo "done"
		echo -n "unmounting $ROOTFS..."
		umount /mnt
		sync
		echo "done" 
		;;
	*)
		echo "usage: $0 [start|stop]"
		exit 0;
		;;

esac