summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-10-26 23:20:11 +0200
committerErich Eckner <git@eckner.net>2017-10-26 23:20:11 +0200
commitfa0adc957cc2ef3629b979e2ee628f0d3bc002a2 (patch)
tree1c8834cc9757bd9ae200831877a2f21221497e50
downloadplatten-finden-fa0adc957cc2ef3629b979e2ee628f0d3bc002a2.tar.xz
Initial commit
-rwxr-xr-xplatten-finden63
1 files changed, 63 insertions, 0 deletions
diff --git a/platten-finden b/platten-finden
new file mode 100755
index 0000000..64ef479
--- /dev/null
+++ b/platten-finden
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+all=$(
+ find /dev -mindepth 1 -maxdepth 1 -type b -regextype grep \
+ \( \
+ -regex '.*/sd[a-z]\+' -o \
+ -regex '.*/md[0-9]\+' -o \
+ -regex '.*/dm-[0-9]\+' \
+ \) \
+ -printf '%f\n' | \
+ sort -u
+)
+
+crypts=$(
+ grep '^[^#]' /etc/crypttab | \
+ awk '{print $2}' | \
+ xargs -rn1 readlink -f | \
+ sed 's|^.*/||' | \
+ sort -u
+)
+
+legs=$(
+ sed -n '
+ s/^md[0-9]\+ : active raid[0156] //
+ T
+ p
+ ' /proc/mdstat | \
+ tr ' ' '\n' | \
+ sed '
+ s/\[[^]]\+]$//
+ /^sd/s/[0-9]\+$//
+ ' | \
+ sort -u
+)
+
+mounts=$(
+ mount | \
+ cut -d' ' -f1 | \
+ grep '^/dev/\(sd[a-z]\+\|md[0-9]\+\|dm-[0-9]\+\)$' | \
+ sed 's|^.*/||'
+)
+
+{
+ echo "$all"
+ echo "$crypts"
+ echo "$legs"
+ echo "$mounts"
+} | \
+ sort | \
+ uniq -u | \
+ while read dev; do
+ printf '%s:' "$dev"
+ if mdadm --examine "/dev/$dev" &> /dev/null; then
+ printf ' mdadm'
+ fi
+ if cryptsetup luksDump "/dev/$dev" &> /dev/null; then
+ printf ' luks'
+ fi
+ if e2label "/dev/$dev" &> /dev/null; then
+ printf ' ext[234]'
+ fi
+ printf '\n'
+ done