summaryrefslogtreecommitdiffstats
path: root/prebuilt/common/etc/init.d/05mountsd
blob: b34b17184a057796afabc50af3a05782946a2efa (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
#!/system/bin/sh
#
# mount ext partition from sd card

BB="logwrapper busybox";

if [ "$SD_EXT_DIRECTORY" = "" ];
then
    SD_EXT_DIRECTORY=/sd-ext;
fi;

# find SD Card
for MMC_NUM in `seq 0 9`;
do
    MMC_TYPE=`cat /sys/block/mmcblk$MMC_NUM/device/type`
    if [ "$MMC_TYPE" = "SD" ];
    then
        # 2nd partition of sdcard should be the sd-ext if exist
        SD_EXT_PART=/dev/block/mmcblk${MMC_NUM}p2
        break
    fi
done

if [ -b "$SD_EXT_PART" ];
then
    log -p i -t mountsd "Checking filesystems..";

    # fsck the sdcard filesystem first
    if [ -x `which e2fsck` ];
    then
        e2fsck -y $SD_EXT_PART
        e2fsk_exitcode=$?
    else
        echo "executable e2fsck not found, assuming no filesystem errors"
        e2fsk_exitcode=0
    fi

    # set property with exit code in case an error occurs
    setprop cm.e2fsck.errors $e2fsk_exitcode;
    if [ "$e2fsk_exitcode" -lt 2 ];
    then
        # mount and set perms
        $BB mount -o noatime,nodiratime,barrier=1 -t ext3 $SD_EXT_PART $SD_EXT_DIRECTORY;
        if [ "$?" = 0 ];
        then
            $BB chown 1000:1000 $SD_EXT_DIRECTORY;
            $BB chmod 771 $SD_EXT_DIRECTORY;
            log -p i -t mountsd "$SD_EXT_DIRECTORY successfully mounted";
        else
            log -p e -t mountsd "Unable to mount filesystem for $SD_EXT_DIRECTORY!";
        fi
    else
        log -p e -t mountsd "Unable to repair filesystem, disabling apps2sd";
    fi
fi