your home for end-user virtualization!

Open Compute Windmill + Open Compute Open Vault hangs at booting from local disk fix

Working through installing CentOS 6.4, ESXi and others, I started running into issues where the systems would run their PXE installations just fine, then end up hanging at booting from local disk afterwards… As it turns out, the systems we’re having issues trying to boot to /dev/sda when /dev/sda was not always where the OS was getting installed… as it turns out, sometimes the local SSD would be /dev/sda, /dev/sdo, etc. This is due to the mpt_sas driver getting loaded after the megaraid_sas driver.

And you’d be stuck with this wonderful screen….

          *                      PXE Boot                       *

          * 1) Boot from hard disk                                
          * 2) Run Memtest86+                                     
          * 3) Ubuntu Disposable OS                               
          * 4) ESX50_Serial                                       
          * 5) Install RHEL 6 using kickstart                     
          * 6) Install CentOS 6.4 using kickstart                 
          * 7) ESX5-Vsan_Serial                                   
Booting from local hard drive....

Giving you absolutely no idea as to what’s going on… only after getting a system to boot did I see that my CentOS installation was actually living on /dev/sdo did I realize what was going on.

There are a couple workarounds for this, the first being; simply disconnect the Knox Unit from the server while doing your OS installation.

The second being, block the megaraid_sas driver from loading until after the system is booted.

This can be done by first, blacklisting the megaraid_sas driver from /etc/modprobe.d/blackllist.conf by adding the following line to it.

blacklist megaraid_sas

Then you need to make sure that the drive gets loaded after booting, by creating a /etc/rc.modules, containing:

modprobe megaraid_sas

Then make the /etc/rc.modules usable by:

chmod +x /etc/rc.modules

Then the only step left is to create a new initramfs by doing:

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut -v /boot/initramfs-$(uname -r).img $(uname -r) -force

The most critical piece being to add:

sed -i "s/\(.*\)\(speed\)/#\1\2/g" /boot/grub/grub.conf

to your %post section of your kickstart, as highlighted in this bug report.

Tags: , , ,