Much as I would rather kill it off, I a required to migrate an ancient VM (2.4 kernel) from VMWare to KVM.
Unfortunately I cannot get the migrated VM to read the root filesystem:
kmod: failed to exec /bin/modprobe -s -k block-major-8, errno = 2
VFS Cannot open root device "sda2" or 08:02
Please append a correct "root=" boot option
Kernel panic: VFS: unable to mount root fs on 08:02
The initrd file has the correct kernel modules, and the linuxrc file is explicitly running insmod for these. The same behaviour occurs with both an emulated MegaRAID SAS 8708EM2 and LSI-53c895a. Mapping the disks as SATA the kernel won't even load.
I can mount and fsck the disk images on the VM using a bootable CD-ROM and there appears to be no issues with the filesystems nor the partition table.
Mapping the disks as IDE gives different errors (but still doesn't boot):
Mounting root filesystem
mount: error 6 mounting ext3
pivotroot: pivot+root(/sysroot,/sysroo/initrd) failed: 2
umount /initrd/proc failed: 2
Freeing unused kernel memory: 128k freed
Kernel panic: No init found. Try passing init= option to kernel.
Found the problem. The SCSI device driver was (failing) loading before the scsi_mod module was loaded. Fixed by changing the order in the linuxrc file in the initrd image.