diff options
author | Andrew Cady <d@jerkface.net> | 2021-03-13 10:40:15 -0500 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2021-03-13 10:40:15 -0500 |
commit | 4620275871121aa38621e97aeca8f5d9313dce2a (patch) | |
tree | c32144378d1b6eb56f2a243c8201004bd0d9bb6b /src/initrd | |
parent | df8350fbe02d3ce5da79e50fb7917fc871ad3d54 (diff) |
firstboot: do not attempt to eject samizdat medium when booting to ram
Diffstat (limited to 'src/initrd')
-rw-r--r-- | src/initrd/firstboot.service | 2 | ||||
-rwxr-xr-x | src/initrd/samizdat-eject.sh | 25 |
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] |
6 | Type=oneshot | 6 | Type=oneshot |
7 | ExecStart=/bin/btrfs device remove 1 2 / | 7 | ExecStart=/sbin/samizdat-eject.sh |
8 | 8 | ||
9 | [Install] | 9 | [Install] |
10 | WantedBy=multi-user.target | 10 | WantedBy=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 | ||
4 | btrfs device remove 1 2 / | 4 | get() |
5 | { | ||
6 | btrfs filesystem show / | | ||
7 | sed -Ene 's?^\t*devid +([^ ]+) .* path ([^ ]+)?\1 \2?p' | ||
8 | } | ||
9 | |||
10 | go() | ||
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 | |||
27 | get | go | ||