mount_android_partitions() {
fstab=$1
mount_root=$2
echo "initrd: checking fstab $fstab for additional mount points" >/dev/kmsg || true
cat ${fstab} | while read line; do
set -- $line
# Skip any unwanted entry
echo $1 | egrep -q "^#" && continue
([ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ] || [ -z "$4" ]) && continue
([ "$2" = "/system" ] || [ "$2" = "/data" ]) && continue
label=$(echo $1 | awk -F/ '{print $NF}')
[ -z "$label" ] && continue
echo "initrd: checking mount label $label" >/dev/kmsg || true
# In case fstab provides /dev/mmcblk0p* lines
path="/dev/$label"
for dir in by-partlabel by-name by-label by-path by-uuid by-partuuid by-id; do
if [ -e "/dev/disk/$dir/$label" ]; then
path="/dev/disk/$dir/$label"
break
fi
done
[ ! -e "$path" ] && continue
mkdir -p ${mount_root}/$2
echo "initrd: mounting $path as ${mount_root}/$2" >/dev/kmsg || true
mount $path ${mount_root}/$2 -t $3 -o $4
done
}