Challenge
Restored Linux VM does not boot up.RHEL/CentOS system drops into dracut emergency shell and during boot process displays the following error messages:
dracut-initqueue timeout - starting timeout scripts
/dev/vgroot/root does not exist
By default, Debian does not use dracut to generate initramfs image, so it may display a different error message similar to the following:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block()
Cause
Kernel initramfs image does not have necessary block device kernel modules (drivers) in it.The problem usually occurs when restoring virtual machines backed up with VAL to completely new hardware, for example when a virtual machine was backed up in VMware and then restored to a Hyper-V environment.
Solution
Regenerate the initramfs image.RHEL/CentOS instructions:
1. During the boot process, select rescue kernel option in grub instead of usual kernel, for example:
CentOS Linux (0-rescue-1edb64) 7 (Core)
2. Then, if the system starts successfully, run dracut to update existing initramfs image for your usual kernel, for example:
dracut -f /boot/initramfs-3.10.0-862.2.3.el7.x86_64.img 3.10.0-862.2.3.el7.x86_64
If the system could not be started with rescue kernel or if you do not have rescue kernel option in grub, please follow instructions for Debian.
1. Mount VAL Recovery Media LiveCD or any other LiveCD to problematic VM.
2. Boot into LiveCD and switch to command line/open bash shell.
3. Check if all VM block devices are present in /dev/sd*. If you do not see some of VM block devices you might need to use LiveCD with newer kernel.
4. Mount VM block devices, skip LVM steps if VM does not have LVM:
mkdir /media/disk
vgdisplay
vgchange -a y centos
vgscan --mknodes
mount /dev/centos/root /media/disk
mount /dev/sda1 /media/disk/boot
mount -t proc proc /media/disk/proc
mount -t sysfs sys /media/disk/sys
mount -o bind /dev /media/disk/dev
5. Then chroot to new environment:
chroot /media/disk /bin/bash
6. Update initramfs using update-initramfs (use dracut for RHEL/CentOS here)
update-initramfs -u -t -k 3.16.0-6-amd64
More Information
https://access.redhat.com/solutions/2515741https://access.redhat.com/solutions/24029