From 4620275871121aa38621e97aeca8f5d9313dce2a Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Sat, 13 Mar 2021 10:40:15 -0500 Subject: firstboot: do not attempt to eject samizdat medium when booting to ram --- src/initrd/firstboot.service | 2 +- src/initrd/samizdat-eject.sh | 25 ++++++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) (limited to 'src/initrd') 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 [Service] Type=oneshot -ExecStart=/bin/btrfs device remove 1 2 / +ExecStart=/sbin/samizdat-eject.sh [Install] 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 @@ #!/bin/sh [ "$(id -u)" = 0 ] || exec sudo $0 "$@" -btrfs device remove 1 2 / +get() +{ + btrfs filesystem show / | + sed -Ene 's?^\t*devid +([^ ]+) .* path ([^ ]+)?\1 \2?p' +} + +go() +{ + set -- + found= + while read id path + do + case "$path" in + /dev/ram*) return ;; + /dev/mapper/samizdatcrypt) found=y; continue ;; + *) set -- "$@" "$id" + esac + done + [ $# = 0 ] && return + [ ! "$found" ] && return + btrfs device remove "$@" / +} + +get | go -- cgit v1.2.3