pmaports/main/postmarketos-base/devmappings.initd

38 lines
1.5 KiB
Text
Raw Normal View History

#!/sbin/openrc-run
description="Add partition devmappings"
depend()
{
before root
}
start()
{
partitions="$(grep -v "loop\|ram" < /proc/diskstats |\
sed 's/\(\s\+[0-9]\+\)\+\s\+//;s/ .*//;s/^/\/dev\//')"
echo "$partitions" | while read -r partition; do
case "$(kpartx -l "$partition" 2>/dev/null | wc -l)" in
2)
einfo "Mount subpartitions of $partition"
# On some devices (e. g. htc vision) this kpartx command can fail
# with a non-zero exit code on some unrelated partitions, which would
# normally cause the loop to abort. But we still need to find the
# root partition, hence the "|| continue"
kpartx -afs "$partition" || continue
# Ensure that this was the *correct* subpartition
# Some devices have mmc partitions that appear to have
# subpartitions, but aren't our subpartition.
if blkid | grep -q "pmOS_boot"; then
break
fi
kpartx -d "$partition"
continue
;;
*)
continue
;;
esac
done
}