9c018794daf6a5f8d2b02b63e3c22b36f89a246e
[kernel-bfs] / kernel-power-settings / pre-mount
1 #!/bin/sh
2 # pre-mounting script
3 # called by /etc/default/mount-opts sourced by /etc/event.d/rcS-late
4 # (c) Copyright 2010 by Thomas Tanner <maemo@tannerlab.com>
5 # licensed under GPLv3
6 # version 0.2 (9. May 2010)
7 log=/etc/kernel-power/pre-mount.log
8
9 if test -f /etc/kernel-power/pre-mount.once; then
10         # execute pre-mount script once
11         mv /etc/kernel-power/pre-mount.once /etc/kernel-power/pre-mount.done
12         date >> $log
13         echo executing pre-mount.once >> $log
14         sh /etc/kernel-power/pre-mount.done >> $log
15         echo pre-mount.once was successfully executed >> $log
16 fi
17
18 fforce=/etc/kernel-power/force_fsck
19 #temporarly overwrite 0=off, 1=on
20 force=
21 if test -f $fforce; then
22     force=`cat $fforce` 
23     date >> $log
24     if test ! "$force" = 1; then
25         rm $fforce # disabled
26         echo fsck is temporarily disabled >> $log
27         exit 0
28     fi
29     echo fsck is temporarily enabled >> $log
30 else
31     cfg=/etc/default/kernel-boot
32     test -f $cfg || exit 0
33     FSCK_HOME=0
34     source $cfg
35     if test "$FSCK_HOME" = 1; then
36         force=
37     elif test "$FSCK_HOME" = force; then
38         force=1
39     else
40         exit 0 # disabled
41     fi 
42 fi
43
44 part=`sfdisk -l /dev/mmcblk0 | awk '$6 == 83 { print $1; exit }'`
45 test -z "$part" && exit 0
46
47 mkdir -p /etc/kernel-power/
48 date >> $log
49
50 # dont continue if reboot during fsck
51 echo 0 > $fforce
52 test "$force" = 1 && force="-f"
53 fsck -y $force -t ext3 $part >> $log
54 echo fsck successfully finished >> $log
55
56 rm $fforce # use defaults
57
58 exit 0