VMware Linux guest kernel panics on boot with LSI Logic HBA and kernel 2.6.21-2.6.22

Issue

On booting a VMware Linux guest kernel panics with the following error:

Uncompressing Linux... Ok, booting the kernel.
Red Hat nash version 6.0.9 starting
Reading all physical volumes. This may take a while...
No volume groups found
Volume group "VolGroup00" not found
Unable to access resume device (/dev/VolGroup00/LogVol01)
mount: could not find filesystem '/dev/root'
setuproot: moving /dev failed: No such file or directory
setuproot: error mounting /proc: No such file or directory
setuproot: error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing: Attempted to kill init! 


This issue does not occur with the BusLogic HBA/kernel module.

Resolution

The 3.04.04 mptspi driver has an issue with LSI Logic emulation in VMware products due to a change to support for greater than 255 lun and targets, which can be found in kernel versions 2.6.21-rc3 or later.

Option 1: Update/Patch

Patch ESX (as of 3/12/07)

ESX 3.0.2
Fix For Detecting LSI Logic Controller
http://kb.vmware.com/kb/1002431

ESX 3.0.1
Fix For Detecting LSI Logic Controller
http://kb.vmware.com/kb/1002100

ESX 3.0.0
Fix For Detecting LSI Logic Controller
http://kb.vmware.com/kb/1002436

Use VMware Server 1.0.4 or later:

Issues Resolved in VMware Server 1.0.4
* This release fixes a problem that prevented virtual machines running Fedora Core 7 from properly recognizing LSILogic SCSI devices.
http://www.vmware.com/support/server/doc/releasenotes_server.html#resolved

Option 2: Workaround the problem using the BusLogic HBA and driver:

1) Boot the system with an earlier kernel version, or use a rescue CD with a pre 2.6.21 kernel and 'chroot /mnt/sysimage'

2) Update modules.conf with the bus logic driver. Enter the following as root:

echo 'alias scsi_hostadapter BusLogic' >> /etc/modules.conf


3) Rebuild the initial ram drive to include and load the BusLogic kernel module (change the kernel version as required):

mkinitrd --preload=BusLogic --with=BusLogic -f /boot/initrd-2.6.22.1-41.fc7.img 2.6.22.1-41.fc7


4) Update the virtual machine to use the BusLogic HBA

For ESX use the VirtualCenter Client
- Shutdown the VM
- Right click on the VM and select Edit Settings from the context menu
- Select SCSI Controller 0 and click the Change Type button
- Select the BusLogic radio button and click OK
- Click OK to exit the Virtual Machine Properties
- Power on the VM
- Answer the "change the adapter type for scsi0:0 disk" by selecting the Yes radio button and clicking OK

For VMware Server change or add the following paramter in the .vmx file:

scsi0.virtualDev = "buslogic"


The virtual machine should now boot and recognise the SCSI disks.


NOTE: This issue appears to be resolved in Fedora Core 7 with kernel-2.6.23.1-21.fc7 and specifically the included linux-2.6-scsi-mpt-vmware-fix.patch update (http://theether.net/download/VMware/linux-2.6-scsi-mpt-vmware-fix.patch). This patch is not included in the current kernel.org mainstream kernel linux-2.6.23.1 (or the latest snapshot of linux-2.6.24-rc1), and so this kernel version may not resolve issues with other Linux distributions.

Tested on ESX 3.0.2 Build 57941 with kernel-2.6.23.1-21.fc7. Dmesg log follows:

SCSI subsystem initialized
Fusion MPT base driver 3.04.05
Copyright (c) 1999-2007 LSI Logic Corporation
Fusion MPT SPI Host driver 3.04.05
ACPI: PCI Interrupt 0000:00:10.0[A] -> GSI 17 (level, low) -> IRQ 16
mptbase: Initiating ioc0 bringup
ioc0: LSI53C1030 B0: Capabilities={Initiator}
scsi0 : ioc0: LSI53C1030 B0, FwRev=00000000h, Ports=1, MaxQ=128, IRQ=16
scsi 0:0:0:0: Direct-Access     VMware   Virtual disk     1.0  PQ: 0 ANSI: 2
 target0:0:0: Beginning Domain Validation
 target0:0:0: Domain Validation skipping write tests
 target0:0:0: Ending Domain Validation
 target0:0:0: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127)
sd 0:0:0:0: [sda] 33554432 512-byte hardware sectors (17180 MB)
sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
sd 0:0:0:0: [sda] Cache data unavailable
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 33554432 512-byte hardware sectors (17180 MB)
sd 0:0:0:0: [sda] Test WP failed, assume Write Enabled
sd 0:0:0:0: [sda] Cache data unavailable
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1 sda2
sd 0:0:0:0: [sda] Attached SCSI disk

References

Fusion MPT SPI Host driver not detecting any disks
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=230703

Re: 2.6.21-rc regression in mptbase
http://lkml.org/lkml/2007/3/23/345

Extract the initial ramdrive image with the following command:

gzip -dc /boot/initrd-2.6.22.1-41.fc7.img | cpio -id


Check the init file for modules being loaded and the lib subdirectory for the modules.

Products

VMware Server 1.0.3
VMware Server 1.0.2
VMware Server 1.0.1
VMware Server 1.0.0
VMware ESX 3.0.2
VMware ESX 3.0.1
VMware ESX 3.0.0
Red Hat Fedora Core 7

Created: 2nd August 2007
Updated: 20th February 2008


© 2005-2017 Jamie Morrison