iankelling.org
/
git
/
distro-setup
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix mail setup for exim
[distro-setup]
/
distro-begin
diff --git
a/distro-begin
b/distro-begin
index bbd94f2afdd68bf641bf326e0bddb5b4c7397779..a7622848af7171f3437c9f02dcba2c3eb2ef2f1a 100755
(executable)
--- a/
distro-begin
+++ b/
distro-begin
@@
-583,13
+583,14
@@
s mkdir -p /mnt/iroot
# 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.
# 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'
+if has_btrfs || home_network; then
+ pi nfs-common
+ 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
#!/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
+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
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
@@
-600,9
+601,9
@@
for dir in /i /mnt/iroot /w /k /kr; do
fi
done
EOF
fi
done
EOF
-s chmod +x /root/imount
+
s chmod +x /root/imount
-s dd of=/etc/systemd/system/imount.service <<'EOF'
+
s dd of=/etc/systemd/system/imount.service <<'EOF'
[Unit]
Description=Mount /i and related mountpoints
[Unit]
Description=Mount /i and related mountpoints
@@
-611,32
+612,39
@@
Type=oneshot
ExecStart=/root/imount
[Install]
ExecStart=/root/imount
[Install]
+# note /kr needs networking, this target is the simplest way to
+# time it when the network should be up, but not do something
+# dumb like delay startup until the network is up. It happens
+# at some time after network.target
WantedBy=multi-user.target
EOF
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
-
+
sudo systemctl daemon-reload # needed if the file was already there
+
sudo systemctl enable imount.service
+
sudo systemctl start imount.service
+fi
dir=/nocow
dir=/nocow
-if ! mountpoint $dir; then
- subvol=/mnt/root/nocow
- if [[ ! -e $subvol ]]; then
- s btrfs subvolume create $subvol
- s chown root:1000 $subvol
- s chattr +C $subvol
- fi
+if has_btrfs; then
+ if ! mountpoint $dir; then
+ subvol=/mnt/root/nocow
+ 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)
- tu /etc/fstab <<EOF
+
first_root_crypt=$(awk '$2 == "/" {print $1}' /etc/mtab)
+
tu /etc/fstab <<EOF
$first_root_crypt /nocow btrfs noatime,subvol=nocow 0 0
EOF
$first_root_crypt /nocow btrfs noatime,subvol=nocow 0 0
EOF
- s mkdir -p $dir
- s chown ian:ian $dir
- s mount $dir
+ s mkdir -p $dir
+ s chown ian:ian $dir
+ s mount $dir
+ fi
+else
+ sudo mkdir -p $dir
fi
fi
-
# ssh and probably some other things care about parent directory
# ownership, and ssh doesn\'t allow any group writable parent
# directories, so we are forced to use a directory structure similar
# ssh and probably some other things care about parent directory
# ownership, and ssh doesn\'t allow any group writable parent
# directories, so we are forced to use a directory structure similar