updated 05mountsd script:

check for mmc device type = SD
 mount sd-ext partition by label = sd-ext
 we are smart, so only ext4 support
 removed wait for device

Change-Id: Ie1ee2de3365d5515030d46801099418607e1265e
This commit is contained in:
Giulio Cervera 2010-12-30 19:11:27 +01:00 committed by Steve Kondik
parent 7b55c083ab
commit 8ba581ead2

42
prebuilt/common/etc/init.d/05mountsd Executable file → Normal file
View file

@ -1,6 +1,6 @@
#!/system/bin/sh #!/system/bin/sh
# #
# mount ext[234] partition from sd card # mount ext4 partition from sd card
BB="logwrapper busybox"; BB="logwrapper busybox";
@ -9,30 +9,39 @@ then
SD_EXT_DIRECTORY=/sd-ext; SD_EXT_DIRECTORY=/sd-ext;
fi; fi;
# find first linux partition on SD card # find SD Card
MMC=/dev/block/mmcblk0 for MMC_NUM in `seq 0 9`;
# wait for the device to settle
COUNT=6;
until [ -b "$MMC" ] || [ $COUNT -lt 1 ];
do do
sleep 1; MMC_TYPE=`cat /sys/block/mmcblk$MMC_NUM/device/type`
COUNT=$((COUNT-1)); if [ "$MMC_TYPE" = "SD" ];
done; then
SDCARD=/dev/block/mmcblk$MMC_NUM
break
fi
done
if [ -b "$MMC" ]; if [ -b "$SDCARD" ];
then then
FDISK="busybox fdisk" # find sd-ext partition by label
PARTITION=`$FDISK -l $MMC | awk '/^\// && $5 == 83 {print $1;exit;}'` 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
if [ -b "$PARTITION" ]; if [ -b "$SD_EXT_PART" ];
then then
log -p i -t mountsd "Checking filesystems.."; log -p i -t mountsd "Checking filesystems..";
# fsck the sdcard filesystem first # fsck the sdcard filesystem first
if [ -x `which e2fsck` ]; if [ -x `which e2fsck` ];
then then
e2fsck -y $PARTITION;e2fsk_exitcode=$? e2fsck -y $SD_EXT_PART;e2fsk_exitcode=$?
else else
echo "executable e2fsck not found, assuming no filesystem errors" echo "executable e2fsck not found, assuming no filesystem errors"
e2fsk_exitcode=0 e2fsk_exitcode=0
@ -41,9 +50,8 @@ then
setprop cm.e2fsck.errors $e2fsk_exitcode; setprop cm.e2fsck.errors $e2fsk_exitcode;
if [ "$e2fsk_exitcode" -lt 2 ]; if [ "$e2fsk_exitcode" -lt 2 ];
then then
# mount and set perms # mount and set perms
$BB mount -o noatime,nodiratime -t auto $PARTITION $SD_EXT_DIRECTORY; $BB mount -o noatime,barrier=1,data=ordered,noauto_da_alloc -t ext4 $SD_EXT_PART $SD_EXT_DIRECTORY;
if [ "$?" = 0 ]; if [ "$?" = 0 ];
then then
$BB chown 1000:1000 $SD_EXT_DIRECTORY; $BB chown 1000:1000 $SD_EXT_DIRECTORY;