X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=distro-begin;h=edb36f49c5ef870667a640e3e0fc7c6ab5e2eb8a;hb=9eeed9d8bd24850fe5e35d2c2f9be8608491bf70;hp=bf298d58e1fa741762ed8584c65aa782d4dd5a97;hpb=82b146c2299fce1aec68d492e4bd881d81e8e6c9;p=distro-setup diff --git a/distro-begin b/distro-begin index bf298d5..edb36f4 100755 --- a/distro-begin +++ b/distro-begin @@ -96,7 +96,7 @@ Description=Turn on automatic decryption of drives on boot # generally, I don't think targets order shutdown like they do startup. # So, I did systemd-analyze plot > something.svg, and picked a reliably started # service that happens late in the game. -After=postfix.service +After=ntp.service DefaultDependencies=no # not sure if needed, makes sure we shut down before reboot.target Conflicts=reboot.target @@ -514,14 +514,14 @@ EOF pi xkbset else # xkbset was in testing for quite a while, dunno - # why it's not anymore. Sometime I should check and - # see if it's back in testing, but the unstable package - # doesn't upgrade anything form testing, and it's tiny - # so I'm not bothering to automate it. + # why it\'s not anymore. Sometime I should check and + # see if it\'s back in testing, but the unstable package + # doesn\'t upgrade anything form testing, and it\'s tiny + # so I\'m not bothering to automate it. pi xkbset/unstable -fi -fi -;;& + fi + fi + ;;& esac if has_x; then @@ -545,12 +545,11 @@ s chown ian:ian "${dirs[@]}" tu /etc/fstab <<'EOF' -/i/w /w none bind 0 0 -/i/k /k none bind 0 0 +/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 ian:traci /kr @@ -559,11 +558,11 @@ fi if home_network; then if [[ $HOSTNAME == treetowl ]]; then tu /etc/fstab <<'EOF' -/k /kr none bind 0 0 +/k /kr none bind,noauto 0 0 EOF else tu /etc/fstab <<'EOF' -treetowl:/k /kr nfs defaults 0 0 +treetowl:/k /kr nfs noauto 0 0 EOF fi fi @@ -573,16 +572,54 @@ for dir in /{i,w,k}; do if mountpoint $dir; then continue; fi # already mounted s mkdir -p $dir s chown ian:ian $dir - s mount $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. +s dd of=/root/imount <<'EOF' +#!/bin/bash +[[ $EUID == 0 ]] || exec sudo -E "$BASH_SOURCE" "$@" +set -eE -o pipefail +trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR +for dir in /i /mnt/iroot /w /k /kr; do + if ! mountpoint $dir &>/dev/null && \ + awk '{print $2}' /etc/fstab | grep -xFq $dir; then + mount $dir + fi +done +EOF +s chmod +x /root/imount + +s dd of=/etc/systemd/system/imount.service <<'EOF' +[Unit] +Description=Mount /i and related mountpoints + +[Service] +Type=oneshot +ExecStart=/root/imount + +[Install] +WantedBy=multi-user.target +EOF +sudo systemctl daemon-reload # needed if the file was already there +sudo systemctl enable imount.service +sudo systemctl start imount.service + + dir=/nocow if ! mountpoint $dir; then subvol=/mnt/root/nocow - if [[ ! -e nocow ]]; then - btrfs subvolume create $subvol - chown root:1000 $subvol - chattr +C $subvol + if [[ ! -e $subvol ]]; then + s btrfs subvolume create $subvol + s chown root:1000 $subvol + s chattr +C $subvol fi first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab)