Fixing slow IDE drives in XenExpress


A few days ago I wrote about how XenExpress was an exciting Xen distribution that was hindered by a few little bugs. In my case my IDE drives performed very slowly because DMA flags were not being set correctly. This was caused by the fact the generic-ide kernel module had been compiled directly into the Linux kernel (rather than being left as a module).

Thanks to a tip from Partha Ramachandran on the XenSource user forum I added ide0=0 ide1=0 to /boot/grub/grub.conf which stopped generic-ide from grabbing the two IDE channels. This allowed the amd74xx module to correctly connect to and configure the drives.

The only downside in this process was that /dev/hda and /dev/hdd became /dev/hde and /dev/hdh. This caused issues in the boot process as initially the kernel became aware of /dev/hda and expected it to still be present on the system. To get around this problem I changed the root=/-main flag in grub.conf to root=/dev/hde1 and the same in /etc/fstab. This meant the relevant line in /boot/grub/grub.conf went as follows:

module /boot/vmlinuz- root=/dev/hde1 ro console=tty0 ide0=0 ide1=0

Whilst the root partition in /etc/fstab was defined as:

/dev/hde1 / ext3 defaults 1 1

After a reboot all went well. Both drives now operate at decent speeds and the whole system is noticeably faster.