[CentOS 7.1] dracut-initqueue[314]: Warning: /dev/centos/swap does not exist

CentOS_Icon

THE RESOLUTION OF THIS PROBLEM IN THIS POST IS DIRECTLY RELATED TO SYSTEMS RUNNING ARECA RAID CONTROLLERS BUT MAY APPLY TO OTHER SYSTEMS REQUIRING DISK RELATED DRIVERS.

Upon booting a server after a CentOS kernel upgrade it was no longer able to boot.  The update was specifically from kernel 3.10.0-123.el7.x86_64 to 3.10.0-229.11.1.el7.x86_64 but these details have nothing to do with the problem as it’s not a kernel bug.

Here’s the error:

dracut-initqueue[314]: Warning: /dev/centos/swap does not exist

dracut-initqueue[314]: Warning: /dev/disk/by-uuid/UUID_WAS_HERE does not exist

Starting Dracut Emergency Shell…

Warning: /dev/centos/swap does not exist

Warning: /dev/disk/by-uuid/UUID_WAS_HERE does not exist

The server was still able to boot into the older kernel without issue.  Upon checking the post install scripts for the RPM package it was clear that the driver for the Areca RAID controller wasn’t installed for this kernel:

[root@server src]# rpm -q –scripts kmod-arcmsr-1.30.0X.19_rhel7-1.x86_64

postinstall scriptlet (using /bin/sh):

if [ -e “/boot/System.map-3.10.0-123.el7.x86_64” ]; then

/usr/sbin/depmod -aeF “/boot/System.map-3.10.0-123.el7.x86_64” “3.10.0-123.el7.x86_64” > /dev/null || :

fi

So at this point it’s just as easy as upgrading the rpm:

yum install kmod-arcmsr-1.30.0X.20_rhel7.1-1.x86_64.rpm

Checking out the post install scripts for the new rpm show that it has installed the driver for the new kernel:

[root@server src]# rpm -q –scripts kmod-arcmsr-1.30.0X.20_rhel7.1-1.x86_64

postinstall scriptlet (using /bin/sh):

if [ -e “/boot/System.map-3.10.0-229.el7.x86_64” ]; then

/usr/sbin/depmod -aeF “/boot/System.map-3.10.0-229.el7.x86_64” “3.10.0-229.el7.x86_64” > /dev/null || :

fi

Resolution: Upgrade the Areca RAID controller driver.

Note:  I would imagine that the post install scripts in the rpm are not specific to any specific kernel so upgrading the driver is likely not necessary as a reinstall of the existing module would likely accomplish the same thing.