dracut.sh: Fix UUID= fstab parsing in case --mount option is passed

Dracut parses /etc/fstab when --mount is option is passed (e.g. kdump).

In host_devs variable the real block device must be stored, not UUID=
There are other /etc/fstab syntax possibilities we now warn that they
are not correctly parsed. This will be fixed by another patch
when there is time to test this properly.

Signed-off-by: Thomas Renninger <trenn@suse.de>
This commit is contained in:
Thomas Renninger 2014-12-11 15:46:16 +01:00 committed by Harald Hoyer
parent 118ca9ecfc
commit 6df523517f

View File

@ -1071,9 +1071,25 @@ declare -A host_fs_types
for line in "${fstab_lines[@]}"; do
set -- $line
dev="$1"
#dev mp fs fsopts
push_host_devs "$1"
host_fs_types["$1"]="$3"
case "$dev" in
UUID=*)
dev=$(blkid -l -t UUID=${dev#UUID=} -o device)
;;
LABEL=*)
dev=$(blkid -l -t LABEL=${dev#LABEL=} -o device)
;;
PARTUUID=*)
dev=$(blkid -l -t PARTUUID=${dev#PARTUUID=} -o device)
;;
PARTLABEL=*)
dev=$(blkid -l -t PARTLABEL=${dev#PARTLABEL=} -o device)
;;
esac
[ -z "$dev" ] && dwarn "Bad fstab entry $@" && continue
push_host_devs "$dev"
host_fs_types["$dev"]="$3"
done
for f in $add_fstab; do