summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2021-03-13 10:40:15 -0500
committerAndrew Cady <d@jerkface.net>2021-03-13 10:40:15 -0500
commit4620275871121aa38621e97aeca8f5d9313dce2a (patch)
treec32144378d1b6eb56f2a243c8201004bd0d9bb6b
parentdf8350fbe02d3ce5da79e50fb7917fc871ad3d54 (diff)
firstboot: do not attempt to eject samizdat medium when booting to ram
-rw-r--r--src/initrd/firstboot.service2
-rwxr-xr-xsrc/initrd/samizdat-eject.sh25
2 files changed, 25 insertions, 2 deletions
diff --git a/src/initrd/firstboot.service b/src/initrd/firstboot.service
index 3b7e602..573eb5d 100644
--- a/src/initrd/firstboot.service
+++ b/src/initrd/firstboot.service
@@ -4,7 +4,7 @@ After=network.target
4 4
5[Service] 5[Service]
6Type=oneshot 6Type=oneshot
7ExecStart=/bin/btrfs device remove 1 2 / 7ExecStart=/sbin/samizdat-eject.sh
8 8
9[Install] 9[Install]
10WantedBy=multi-user.target 10WantedBy=multi-user.target
diff --git a/src/initrd/samizdat-eject.sh b/src/initrd/samizdat-eject.sh
index fcb808d..da56d74 100755
--- a/src/initrd/samizdat-eject.sh
+++ b/src/initrd/samizdat-eject.sh
@@ -1,4 +1,27 @@
1#!/bin/sh 1#!/bin/sh
2[ "$(id -u)" = 0 ] || exec sudo $0 "$@" 2[ "$(id -u)" = 0 ] || exec sudo $0 "$@"
3 3
4btrfs device remove 1 2 / 4get()
5{
6 btrfs filesystem show / |
7 sed -Ene 's?^\t*devid +([^ ]+) .* path ([^ ]+)?\1 \2?p'
8}
9
10go()
11{
12 set --
13 found=
14 while read id path
15 do
16 case "$path" in
17 /dev/ram*) return ;;
18 /dev/mapper/samizdatcrypt) found=y; continue ;;
19 *) set -- "$@" "$id"
20 esac
21 done
22 [ $# = 0 ] && return
23 [ ! "$found" ] && return
24 btrfs device remove "$@" /
25}
26
27get | go