From the FreeNAS documentation page on VMware ESXi:

If you are running ESX 5.0, Workstation 8.0, or Fusion 4.0 or higher, additional configuration is needed so that the virtual HPET setting does not prevent the virtual machine from booting.

I have found that this holds true for Citrix XenServer as well. If you don’t touch the HPET setting, FreeNAS 9.3 will fail to boot on XenServer 6.5

I have also found this bug report against FreeNAS 9.3 and XenServer 6.2, which is currently in resolved status. However, since I have experienced this same issue on XenServer 6.5, I have decided to put together some screenshots and instructions on how to solve this issue and allow FreeNAS 9.3 to boot successfully on XenServer 6.5.

There are two different phases to allow this to work:

  1. Disable HPET from GRUB to allow FreeNAS to boot successfully the first time
  2. Disable HPET within FreeNAS to avoid stumbling upon the same issue on following reboots

Disable HPET from GRUB

  1. Configure your FreeNAS VM and attach the FreeNAS ISO image to it
  2. Boot the VM
  3. You will be at this screen, where you need to press the ‘e’ key to edit the GRUB boot options:2015-11-03 12_46_13-FreeNAS Test
  4. You will now see this screen: 2015-11-03 12_46_27-FreeNAS Test
  5. Add the line
    set kFreeBSD.hint.hpet.0.clock=0

    to this list, like this: 2015-11-03 12_47_50-FreeNAS Test

  6. Press F10 to boot
  7. FreeNAS should now boot successfully and you should get to the installation screen: 2015-11-03 12_48_13-FreeNAS Test

You can now proceed with the installation process, however unfortunately in this case, GRUB boot settings need to be re-typed every time as they are volatile when done this way. Luckily, there is a way to permanently add this setting from the FreeNAS GUI so you don’t have to go through this process every time your VM boots.

Permanently disable HPET from the FreeNAS GUI

In FreeNAS 9.3, under the System settings tab, you can see a Tunables section. You can read the official documentation about tunables for more details, but for the sake of this tutorial it is enough to say that, in this section, you can configure system and boot settings that become permanent, which is exactly what we need to do. These are the steps to permanently disable HPET from the FreeNAS GUI:

  1. Login to the FreeNAS Web interface
  2. Go to System > Tunables
  3. Click on Add Tunable
  4. The syntax in this case is slightly different; enter the following information:
    • Variable: hint.hpet.0.clock
    • Value: 0
    • Type: Loader
    • Comment: optional
    • Enabled: YES2015-11-03 13_31_20-freenastest - FreeNAS-9.3-STABLE-201509022158
  5. Save this value

If you now reboot, everything should work from now on, as the setting will not be erased after a shutdown.