replicant-vendor_replicant/prebuilt/common/etc/init.d/05mountsd

68 lines
1.9 KiB
Plaintext
Raw Normal View History

2010-07-06 03:09:35 +00:00
#!/system/bin/sh
#
# mount ext4 partition from sd card
2010-07-06 03:09:35 +00:00
BB="logwrapper busybox";
if [ "$SD_EXT_DIRECTORY" = "" ];
then
SD_EXT_DIRECTORY=/sd-ext;
fi;
# find SD Card
for MMC_NUM in `seq 0 9`;
2010-07-06 03:09:35 +00:00
do
MMC_TYPE=`cat /sys/block/mmcblk$MMC_NUM/device/type`
if [ "$MMC_TYPE" = "SD" ];
then
SDCARD=/dev/block/mmcblk$MMC_NUM
break
fi
done
2010-07-06 03:09:35 +00:00
if [ -b "$SDCARD" ];
2010-07-06 03:09:35 +00:00
then
# find sd-ext partition by label
PARTITIONS=`cat /proc/partitions|grep mmcblk$MMC_NUM|grep -v "mmcblk$MMC_NUM$"|awk '{print $4}'`
for PARTITION in $PARTITIONS
do
LABEL=`e2label /dev/block/$PARTITION`
if [ "$LABEL" = "sd-ext" ];
then
SD_EXT_PART=/dev/block/$PARTITION
break
fi
done
2010-07-06 03:09:35 +00:00
if [ -b "$SD_EXT_PART" ];
2010-07-06 03:09:35 +00:00
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
2010-07-06 03:09:35 +00:00
# set property with exit code in case an error occurs
setprop cm.e2fsck.errors $e2fsk_exitcode;
if [ "$e2fsk_exitcode" -lt 2 ];
2010-07-06 03:09:35 +00:00
then
# mount and set perms
$BB mount -o noatime,barrier=1,data=ordered,noauto_da_alloc -t ext4 $SD_EXT_PART $SD_EXT_DIRECTORY;
2010-07-06 03:09:35 +00:00
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
fi