move get_persistent_dev to dracut-functions.sh
kdump module also need to convert dev name to udev symlinks. So better to move function get_persistent_dev() to dracut-functions.sh Also in this patch improvement and fix the original function: a) use udevadm info --query=name to get the kernel name. This will fix the issue caused by passing symbolic link of a device. b) fix a bug to compare $_tmp instead of $i with $_dev. Really sorry, should have tested more carefully. Signed-off-by: Dave Young <dyoung@redhat.com>master
parent
ba111df2b9
commit
ff0636635a
|
@ -239,6 +239,21 @@ else
|
|||
}
|
||||
fi
|
||||
|
||||
get_persistent_dev() {
|
||||
local i _tmp _dev
|
||||
|
||||
_dev=$(udevadm info --query=name --name="$1" 2>/dev/null)
|
||||
[ -z "$_dev" ] && return
|
||||
|
||||
for i in /dev/disk/by-id/*; do
|
||||
_tmp=$(udevadm info --query=name --name="$i" 2>/dev/null)
|
||||
if [ "$_tmp" = "$_dev" ]; then
|
||||
echo $i
|
||||
return
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# get_fs_env <device>
|
||||
# Get and set the ID_FS_TYPE and ID_FS_UUID variable from udev for a device.
|
||||
# Example:
|
||||
|
|
|
@ -11,19 +11,6 @@ depends() {
|
|||
return 0
|
||||
}
|
||||
|
||||
get_persistent_dev() {
|
||||
local i _tmp
|
||||
local _dev=${1##*/}
|
||||
|
||||
for i in /dev/disk/by-id/*; do
|
||||
_tmp=$(readlink $i)
|
||||
if [ "$i" = "$_dev" ]; then
|
||||
echo $i
|
||||
return
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
install() {
|
||||
local _d
|
||||
dracut_install mount mknod mkdir pidof sleep chroot \
|
||||
|
|
Loading…
Reference in New Issue