fixes for vps
authorIan Kelling <ian@iankelling.org>
Sun, 15 Jan 2017 23:07:51 +0000 (15:07 -0800)
committerIan Kelling <ian@iankelling.org>
Sun, 15 Jan 2017 23:07:51 +0000 (15:07 -0800)
distro-begin
rootsshsync

index bbd94f2afdd68bf641bf326e0bddb5b4c7397779..69bbec775c598ec5e687fb35f95f4e58436aec4a 100755 (executable)
@@ -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.
-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
-for dir in /i /mnt/iroot /w /k /kr; do
+for dir in /i /mnt/iroot /k /kr; 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
@@ -600,9 +601,9 @@ for dir in /i /mnt/iroot /w /k /kr; do
     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
 
@@ -613,30 +614,33 @@ 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
-
+    sudo systemctl daemon-reload # needed if the file was already there
+    sudo systemctl enable imount.service
+    sudo systemctl start imount.service
+fi
 
 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
-    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
 
-
 # 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
index 592a5aafe8cc14c2c1efdc12e4215497233eefc0..baf42967acf4e465b0752a46f454d2422550afbc 100755 (executable)
@@ -19,7 +19,8 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?" >&2' ERR
 if sudo test -e /q/root/.ssh; then
     sudo /a/exe/lnf /q/root/.ssh /root
 else
-    sudo mkdir /root/.ssh
+    sudo mkdir -p /root/.ssh
+    sudo chmod 700 /root/.ssh
 fi
 sudo cp -rL $(eval echo ~${SUDO_USER:-$USER})/.ssh/* /root/.ssh
 sudo chown -R root:root /root/.ssh