diff -urN dracut-024.orig/modules.d/95udev-rules/59-persistent-storage.rules dracut-024/modules.d/95udev-rules/59-persistent-storage.rules --- dracut-024.orig/modules.d/95udev-rules/59-persistent-storage.rules 2012-10-16 18:31:06.000000000 +0400 +++ dracut-024/modules.d/95udev-rules/59-persistent-storage.rules 2012-10-30 18:55:59.532004789 +0400 @@ -3,8 +3,11 @@ # Also don't process disks that are slated to be a multipath device ENV{DM_MULTIPATH_DEVICE_PATH}=="?*", GOTO="ps_end" -KERNEL=="cciss[0-9]*", IMPORT{builtin}="blkid" -KERNEL=="nbd[0-9]*", IMPORT{builtin}="blkid" +IMPORT{program}="builtins-check.sh" +ENV{BLKID_BUILTIN}=="1", KERNEL=="cciss[0-9]*", IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="1", KERNEL=="nbd[0-9]*", IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="0", KERNEL=="cciss[0-9]*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" +ENV{BLKID_BUILTIN}=="0", KERNEL=="nbd[0-9]*", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" KERNEL!="md[0-9]*|md_d[0-9]*|md/*", KERNEL!="md*", GOTO="md_end" @@ -21,7 +24,8 @@ LABEL="md_ignore_state" IMPORT{program}="/sbin/mdadm --detail --export $tempnode" -IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="1", IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="0", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" OPTIONS+="link_priority=100" OPTIONS+="watch" LABEL="md_end" @@ -34,7 +38,8 @@ ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="ps_end" ENV{DM_UUID}=="CRYPT-TEMP-?*", GOTO="ps_end" ENV{DM_UUID}!="?*", ENV{DM_NAME}=="temporary-cryptsetup-?*", GOTO="ps_end" -IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="1", IMPORT{builtin}="blkid" +ENV{BLKID_BUILTIN}=="0", IMPORT{program}="/sbin/blkid -o udev -p $tempnode" LABEL="ps_end" diff -urN dracut-024.orig/modules.d/95udev-rules/61-persistent-storage.rules dracut-024/modules.d/95udev-rules/61-persistent-storage.rules --- dracut-024.orig/modules.d/95udev-rules/61-persistent-storage.rules 2012-10-16 18:31:06.000000000 +0400 +++ dracut-024/modules.d/95udev-rules/61-persistent-storage.rules 2012-10-30 18:55:42.172027183 +0400 @@ -12,7 +12,9 @@ LABEL="do_pss" # by-path (parent device path) -ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id" +IMPORT{program}="builtins-check.sh" +ENV{PATH_ID_BUILTIN}=="1", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id" +ENV{PATH_ID_BUILTIN}=="0", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="", DEVPATH!="*/virtual/*", IMPORT{program}="path_id %p" ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}" ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" diff -urN dracut-024.orig/modules.d/95udev-rules/builtins-check.sh dracut-024/modules.d/95udev-rules/builtins-check.sh --- dracut-024.orig/modules.d/95udev-rules/builtins-check.sh 1970-01-01 03:00:00.000000000 +0300 +++ dracut-024/modules.d/95udev-rules/builtins-check.sh 2012-10-30 18:35:52.728541562 +0400 @@ -0,0 +1,11 @@ +#!/bin/sh + +UDEVVERSION=$(/sbin/udevadm --version) + +[ $UDEVVERSION -ge 174 ] \ + && echo 'PATH_ID_BUILTIN=1' \ + || echo 'PATH_ID_BUILTIN=0' + +[ $UDEVVERSION -ge 176 ] \ + && echo 'BLKID_BUILTIN=1' \ + || echo 'BLKID_BUILTIN=0' diff -urN dracut-024.orig/modules.d/95udev-rules/module-setup.sh dracut-024/modules.d/95udev-rules/module-setup.sh --- dracut-024.orig/modules.d/95udev-rules/module-setup.sh 2012-10-16 18:31:06.000000000 +0400 +++ dracut-024/modules.d/95udev-rules/module-setup.sh 2012-10-30 18:22:36.790530175 +0400 @@ -73,6 +73,8 @@ [ -f /etc/arch-release ] && \ inst_script "$moddir/load-modules.sh" /lib/udev/load-modules.sh + inst_script "$moddir/builtins-check.sh" ${udevdir}/builtins-check.sh + inst_libdir_file "libnss_files*" }