diff options
author | Erich Eckner <git@eckner.net> | 2017-10-26 23:20:11 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2017-10-26 23:20:11 +0200 |
commit | fa0adc957cc2ef3629b979e2ee628f0d3bc002a2 (patch) | |
tree | 1c8834cc9757bd9ae200831877a2f21221497e50 | |
download | platten-finden-fa0adc957cc2ef3629b979e2ee628f0d3bc002a2.tar.xz |
Initial commit
-rwxr-xr-x | platten-finden | 63 |
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 |