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()
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.
To resolve this issue you must regenerate the initramfs image.
- During the boot process, select rescue kernel option in grub.
CentOS Linux (0-rescue-1edb64) 7 (Core)
- If the system starts successfully, run dracut to update existing initramfs image for your usual kernel.
dracut -f /boot/initramfs-3.10.0-862.2.3.el7.x86_64.img 3.10.0-862.2.3.el7.x86_64
Note: If the system could not be started with rescue kernel or if you do not have rescue kernel option in grub, please follow below for Debian.
- Mount Veeam Agent for Linux Recovery Media LiveCD or any other LiveCD to problematic VM.
- Boot into LiveCD and switch to command line/open bash shell.
- Check if all VM block devices are present in /dev/sd*.
Note: If you do not see some of VM block devices you might need to use LiveCD with newer kernel.
- 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
- Then chroot to new environment:
chroot /media/disk /bin/bash
- Update initramfs using update-initramfs (use dracut for RHEL/CentOS).
update-initramfs -u -t -k 3.16.0-6-amd64