-if has_p; then
- # relatime is default, but it still significantly increases writes
- # in comparison because it writes on the first read after each
- # write.
- #
- dirs=(/i /mnt/{1,2,3,4,5,6,7,8,9})
- if ! frodo; then
- dirs+=(/q)
+##### make extra dirs
+dirs=(/mnt/{1,2,3,4,5,6,7,8,9} /nocow/t)
+s mkdir -p "${dirs[@]}"
+s chown $USER:$USER "${dirs[@]}"
+
+###### setup /i
+if home_network; then
+ tu /etc/fstab <<'EOF'
+/i/w /w none bind,noauto 0 0
+/i/k /k none bind,noauto 0 0
+EOF
+ if ! mountpoint /kr; then
+ s mkdir -p /kr
+ s chown $USER:user2 /kr
+ fi
+ if [[ $HOSTNAME == frodo ]]; then
+ tu /etc/fstab <<'EOF'
+/k /kr none bind,noauto 0 0
+EOF
+ else
+ tu /etc/fstab <<'EOF'
+frodo:/k /kr nfs noauto 0 0
+EOF
+ fi
+ s mkdir -p /q /i/{w,k}
+ for dir in /{i,w,k}; do
+ if mountpoint $dir; then continue; fi # already mounted
+ s mkdir -p $dir
+ s chown $USER:$USER $dir
+ done
+ # not needed for all hosts, but rather just keep it uniform
+ s mkdir -p /mnt/iroot
+ # debian auto mounting of multi-disk encrypted btrfs is busted. It is
+ # in jessie, and in stretch as of 11/26/2016 I have 4 disks in cryptab,
+ # based on 3 of those, it creates .device units for /dev/mapper/dev...
+ # then waits endlessly for them on bootup, after the /dev/mapper disks
+ # have already been created and exist. todo: create a simple repro
+ # for this in a vm and report it upstream.
+ pi nfs-common
+ s dd of=/root/imount <<'EOF'
+#!/bin/bash
+[[ $EUID == 0 ]] || exec sudo -E "${BASH_SOURCE[0]}" "$@"
+set -eE -o pipefail
+trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
+for dir in /i /mnt/iroot /k /kr /w; do
+ if ! mountpoint $dir &>/dev/null && \
+ awk '{print $2}' /etc/fstab | grep -xF $dir &>/dev/null; then
+ if awk '{print $3}' /etc/fstab | grep -xF nfs &>/dev/null; then
+ mount $dir || echo "warning: failed to mount nfs on $dir"
+ else
+ mount $dir
+ fi