Summary

This article explains the root cause and solution for a recovery Linux VM loading with Dracut Emergency Shell and indicating specific locations do not exist on the filesystem after a failover.

Symptoms

This issue manifests usually by loading Dracut emergency shell and indicating specific locations do no exits on the filesystem.
The affected OS are RHEL 7, CentOS7 and presumably other versions as well.  

Root Cause

The SCSI controller drivers are missing from the recovery VM, specifically in this case the LSI Logic Parallel (mptspi) drivers. This is due to the protected VM not having those drivers.

This is a known issue of CentOS 7 / Redhat 7. For reference, kindly see the below CentOS forum link:
https://www.centos.org/forums/viewtopic.php?t=66545

Solution

Pay attention to the controller type that is used for the boot disk upon recovery. Depending on the OS, this would influence the drivers required on the source VM.

A permanent solution would be to update the /etc/dracut.conf file to include the required drivers. You can refer to a list of those drivers from our 
Zerto Tools for Linux KB.

1.    On the protected VM, use vi to edit the file /etc/dracut.conf.
2. Edit the line that says "add_drivers" to include the drivers listed in the KB mentioned above.
3. Be sure to uncomment the line in this file by removing the # sign before "add_drivers".
4. Rebuild the initramfs file by running 'dracut -f -v' on the source VM.
5.    Perform an FOT with the most recent checkpoint available to confirm the VM boots as expected.

 

Alternatively you can edit the recovery VM, but an additional FOT/FOL will result with the same behavior until you will apply the permanent solution as mentioned above. To edit the recovery VM use these steps:

  1. Restart recovery VM and choose rescue mode in Grub.
  2. Run command dracut -f and reboot the VM.

Note: If the VM has multiple initramfs, run dracut -fv --regenerate-all alternatively.