diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index 454e8b0..6af8f3b 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -391,6 +391,14 @@ _get_hpyerv_physical_driver() {
     _get_nic_driver "$_physical_nic"
 }
 
+_get_physical_function_driver() {
+    local _physfn_dir=/sys/class/net/"$1"/device/physfn
+
+    if [[ -e "$_physfn_dir" ]]; then
+        basename "$(readlink -f "$_physfn_dir"/driver)"
+    fi
+}
+
 kdump_install_nic_driver() {
     local _netif _driver _drivers
 
@@ -418,6 +426,9 @@ kdump_install_nic_driver() {
         fi
 
         _drivers+=("$_driver")
+        # For a Single Root I/O Virtualization (SR-IOV) virtual device,
+        # the driver of physical device needs to be installed as well
+        _drivers+=("$(_get_physical_function_driver "$_netif")")
     done
 
     [[ -n ${_drivers[*]} ]] || return