summaryrefslogtreecommitdiff
path: root/src/initrd/samizdat-eject.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/initrd/samizdat-eject.sh')
-rwxr-xr-xsrc/initrd/samizdat-eject.sh25
1 files changed, 24 insertions, 1 deletions
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