51 lines
1.5 KiB
Diff
51 lines
1.5 KiB
Diff
|
From 6df523517f364882c51bbcc5b3245dd568eca3b3 Mon Sep 17 00:00:00 2001
|
||
|
From: Thomas Renninger <trenn@suse.de>
|
||
|
Date: Thu, 11 Dec 2014 15:46:16 +0100
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
dracut.sh | 20 ++++++++++++++++++--
|
||
|
1 file changed, 18 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/dracut.sh b/dracut.sh
|
||
|
index a4c7ce5..2eba19b 100755
|
||
|
--- a/dracut.sh
|
||
|
+++ b/dracut.sh
|
||
|
@@ -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
|