Hot P2V Migrations: Re-building RHEL initrd & Kernel Modules for vSphere ESXi
How we performed hot Physical-to-Virtual (P2V) migrations of legacy Red Hat Enterprise Linux servers, rebuilding initrd ramdisks to load vSphere mptspi SCSI drivers.
βA Linux P2V migration isnβt complete when disk blocks finish copying β it is complete when the initrd ramdisk successfully loads VMware SCSI storage drivers at boot.β
The Setup
In May 2013 at Net4 India, we migrated dozens of legacy bare-metal Red Hat Enterprise Linux (RHEL 4/5) physical servers into our new VMware vSphere Tier-3 cloud platform.
These legacy physical servers ran critical database applications on aging physical RAID controllers that were out of warranty support.
The Mess
We used VMware vCenter Converter to perform hot P2V disk block cloning over the network. The conversion wizard reported βSuccess 100%β.
However, when we booted the new virtual machine inside vSphere ESXi, the boot process aborted immediately with a Kernel Panic:
[BOOT ERROR] RHEL 5.4 Linux Kernel Boot Failure
Loading mptbase.ko module...
Loading scsi_mod.ko module...
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Switching to new root device
ERROR: Cannot find root filesystem volume group /dev/VolGroup00/LogVol00!
The wrong diagnosis assumed the disk clone was corrupted.
In reality, the physical RHEL kernel initrd ramdisk contained storage drivers for physical HP Smart Array (cciss) RAID controllers, but lacked virtual mptspi / pvscsi drivers required to read VMware vSphere virtual SCSI disks!
The Solution
I established a rescue-chroot procedure to inject VMware virtual SCSI drivers into the RHEL initrd ramdisk before first boot:
- Boot into vSphere Rescue ISO: Booted the VM using a RHEL Rescue ISO into emergency shell.
- Chroot into Cloned Root Volume: Mounted
/dev/VolGroup00/LogVol00to/sysimageand chrooted into the root environment. - Rebuild initrd with mkinitrd: Generated a new
initrdramdisk containingmptbase,mptscsih, andmptspikernel modules.
# RHEL Emergency Rescue Shell Procedure
# chroot /sysimage
# Verify available VMware SCSI modules
modinfo mptspi
# Rebuild initrd ramdisk with VMware SCSI drivers
mkinitrd --preload=mptbase --preload=mptscsih --preload=mptspi \
--force /boot/initrd-2.6.18-164.el5.img 2.6.18-164.el5
# Re-install GRUB bootloader to virtual MBR
grub-install /dev/sda
Key Takeaway
Physical-to-Virtual (P2V) conversions of legacy Linux systems often fail at boot due to missing virtual SCSI kernel drivers. Always boot into rescue mode and rebuild the initrd ramdisk with mptspi or pvscsi modules before powering on.
Architecture and decisions: mine. Debugging sessions at odd hours: mine. AI assistance: structure, syntax, first draft. β Sachin
Sachin Kumar Sharma
Associate Director (Infrastructure & Cloud Architecture Strategy) | 20+ Yrs Exp
Architecting resilient multi-cloud enterprise landing zones, SDN overlay fabrics, DevSecFinOps automation pipelines, and autonomous Agentic AI platforms.
π‘ Related Engineering Articles
Recovering from a 400-Resource Terraform State Drift Emergency
How we reconciled a 400+ resource Terraform state file drift caused by out-of-band vCenter edits without destroying live production virtual machines.
One-Click Nested SDDC Deployment: Automated vSphere & NSX-T Labs via Ansible
How we automated the end-to-end provisioning of nested vSphere ESXi, vCenter, and NSX-T SDDC lab environments in 12 minutes using Ansible playbooks and OVFTool.
The Seven Failure Modes of Autonomous AI Agent Systems (And How to Fix Them)
An architectural post-mortem analyzing the top 7 failure modes in autonomous AI subagent fleets and the exact engineering guardrails built to prevent them.
π¬ Stay Updated on Tech Releases
Sign up to get notified when I publish new production war stories, agentic AI architecture blueprints, or open-source infrastructure tools.