vol=${d##*/}
# second field, non-comment line == $d
dev=$(sed -rn "s,^\s*([^#]\S*)\s+$d\s.*,\1,p" /etc/fstab /etc/mtab|head -n1)
+
d dev=$dev
subvol_dir=$(sed -rn "s,^\s*[^#]\S*\s+$d\s.*\bsubvol=([a-zA-A/]+).*,\1,p" /etc/fstab /etc/mtab|head -n1)
d subvol_dir=$subvol_dir
# because the device in fstab for the rootfs can be different.
for devx in $(btrfs fi show $dev| sed -rn 's#.*path (/\S+)$#\1#p'); do
d devx=$devx
- root_dir=$(sed -rn "s,^\s*$devx\s+(\S+).*\bsubvolid=[05]\b.*,\1,p" /etc/mtab|head -n1)
+ root_dir=$(sed -rn "s,^\s*$devx\s+(\S+).*\bsubvolid=[05]\b.*,\1,p" /etc/mtab /etc/fstab|head -n1)
if [[ $root_dir ]]; then
d root_dir=$root_dir
break
##### begin setup fstab for subvols we care about ######
root_dev=$(awk '$2 == "/" {print $1}' /etc/mtab)
-
+if [[ $root_dev == /dev/dm-* ]]; then
+ for d in /dev/mapper/*; do
+ if [[ $(readlink -f $d) == $root_dev ]]; then
+ root_dev=$d
+ break
+ fi
+ done
+fi
if cryptsetup status $root_dev &>/dev/null; then
crypt_dev=$root_dev