e() { printf "%s\n" "$*"; "$@"; }
mnt() {
dir=$1
- if ! mountpoint $dir >/dev/null; then
+ if ! mountpoint $dir &>/dev/null; then
mkdir -p $dir
e mount $dir
fi
first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab)
tu /etc/fstab <<EOF
-$first_root_crypt /q btrfs noatime,subvol=q 0 0
-/q/a /a none bind 0 0
+$first_root_crypt /a btrfs noatime,subvol=a 0 0
EOF
case $HOSTNAME in
treetowl|x2|frodo)
tu /etc/fstab <<EOF
-$first_root_crypt /p btrfs noatime,subvol=p 0 0
+$first_root_crypt /q btrfs noatime,subvol=q 0 0
+/q/p /p none bind 0 0
EOF
;;
esac
-for vol in q p; do
+for vol in q a; do
d=/$vol
if ! awk '{print $2}' /etc/fstab | grep -xF $d &>/dev/null; then
continue
while true; do
new_roots=()
for r in ${roots[@]}; do
- # /q/a /a none bind 0 0
+ # example
+ # /q/p /p none bind 0 0
new_roots+=($(sed -rn "s#^$r/\S+\s+(\S+)\s+none\s+bind\s.*#\1#p" /etc/fstab))
done
(( ${#new_roots} )) || break
cryptdisks_start crypt_dev_$dev
fi
done
-else
- tu /etc/fstab <<'EOF'
-/q/i /i none bind,noauto 0 0
-EOF
+ # note, could do an else here and have some kind of mount for /i
+ # on other hosts.
fi
exit $ret