/*)
# rewrite:
- # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+ # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh
+ # /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root
case "$ROOT" in
/dev/mapper/*-*)
- ROOT=${ROOT#/dev/mapper/}
- local VG=${ROOT%%-*}
- local LV=$(echo "${ROOT#$VG-}" | awk '{gsub(/--/, "-"); print}')
+ # change "--" to / (as "/" is impossible in LV name)
+ local dev=$(awk -vdev="${ROOT#/dev/mapper/}" 'BEGIN{gsub(/--/, "/", dev); print dev}')
+ local VG=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[1]); print v[1]}')
+ local LV=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[2]); print v[2]}')
ROOT=/dev/$VG/$LV
;;
esac
/*)
# rewrite:
- # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
+ # /dev/mapper/sys-rootfs -> /dev/sys/rootfs
# /dev/mapper/blodnatt-blah--bleh -> /dev/blodnatt/blah-bleh
+ # /dev/mapper/vg--meaw-root -> /dev/vg-meaw/root
case "$ROOT" in
/dev/mapper/*-*)
- ROOT=${ROOT#/dev/mapper/}
- local VG=${ROOT%%-*}
- local LV=$(echo "${ROOT#$VG-}" | awk '{gsub(/--/, "-"); print}')
+ # change "--" to / (as "/" is impossible in LV name)
+ local dev=$(awk -vdev="${ROOT#/dev/mapper/}" 'BEGIN{gsub(/--/, "/", dev); print dev}')
+ local VG=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[1]); print v[1]}')
+ local LV=$(awk -vdev="$dev" 'BEGIN{split(dev, v, "-"); gsub("/", "-", v[2]); print v[2]}')
ROOT=/dev/$VG/$LV
;;
esac
LVM: Using Volume Group 'blodnatt' for rootfs
EOF
+runtest ROOT=/dev/mapper/vg--meaw-root OK=/dev/vg-meaw/root <<'EOF'
+LVM: Using 'root=/dev/vg-meaw/root' from kernel commandline
+LVM: Using Volume Group 'vg-meaw' for rootfs
+EOF
+
echo "OK: $ok; FAIL: $fail"