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
|
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_fs_env <device>
|
||||||
# Get and set the ID_FS_TYPE and ID_FS_UUID variable from udev for a device.
|
# Get and set the ID_FS_TYPE and ID_FS_UUID variable from udev for a device.
|
||||||
# Example:
|
# Example:
|
||||||
|
|
|
@ -11,19 +11,6 @@ depends() {
|
||||||
return 0
|
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() {
|
install() {
|
||||||
local _d
|
local _d
|
||||||
dracut_install mount mknod mkdir pidof sleep chroot \
|
dracut_install mount mknod mkdir pidof sleep chroot \
|
||||||
|
|
Loading…
Reference in New Issue