Richard Parmiter

Virtualisation blog and Knowledge Base

  • You are here: 
  • Home
  • Citrix

Netscaler cannot boot with message “Can’t load Kernel” after failed firmware upgrade

Posted on January 16th, 2013

Came across this tricky problem today at a client site with some old and unsupported Netscaler devices.

Customer had a failed Netscaler 7000 appliance in an HA pair and got it replaced by Citrix. However, their working Netscaler was running version 8.1 build 56.11 and they wanted to downgrade the firmware on the new appliance to the same version before re-establishing the HA. However the issue experienced would have also occurred for any firmware upgrade as well as downgrade.

For reference the replacement NS7000 had version 9.3 build 56.5cl and eventually was successfully downgraded to v8.1 build 56.11

The following was performed after taking a backup of the replacement netscaler:

  • Located the firmware on the working Netscaler in the /var/nsinstall folder
  • Used WinSCP to copy this locally
  • Copied the firmware to the /var/nsinstall folder on the replacement Netscaler
  • The firmware had already been un-tar’ed in the folder so the firmware and documentation was already available for selection
  • Using the GUI, ran through the upgrade firmware wizard
  • This failed due to a lack of space on the flash drive
  • Rebooted the Netscaler (just to be sure before trying again)

The Netscaler failed to boot.

The blue LCD screen on the front of the device only momentarily showed “booting” and then turned off.

Fortunately I had a Netscaler console cable available, and this was connected to a laptop in the following order:

  • Laptop –> USB to serial cable –> Netscaler serial console cable –> RJ45 to Serial adapter –> Netscaler console port

This enabled me to open a console session to the netscaler using a Putty serial connection (9600, 8, 1, none, none).

the console was displaying a failed boot stating:

can’t load ‘kernel’
can’t load ‘kernel.old’
can’t load ‘’
no bootable kernel

It seemed that in the process of the failed firmware upgrade the flash boot disk was amended and the kernel was deleted.

The Citrix forum post ( states that F4 can be pressed during boot to enable boot device selection, and indeed a list was shown for:

1 Netscaler

5 Drive 1

Default: 1

But no matter which keys were pressed, it always attempted to boot from the flash disk.

I eventually resolved this by the following work around at the OK prompt:

set currdev=disk1s1a:

load disk1s1a:/kernel

This is detailed in Citrix forum ( and then boots the Netscaler from the Hard disk. It is then possible to copy the missing kernel back to the flash drive (from the backup made before starting. I made a backup in /var)

cp /var/kernel.gz /flash

Rebooting the device then boots from the kernel on the flash drive as normal – so problem solved!

However, I still needed to downgrade the firmware so this time ran the ./nsinstall command from the cli but again failed due to lack of space. So, copied the /flash/.recovery/hd.recovery.gz file locally and removed from the netscaler. Then performed the firmware installation and said NO to the reboot and manually copied that file back again.

I also manually checked the /flash folder for the new firmware .gz file and it was there as expected.

On rebooting the Netscaler it correctly booted, but didn’t set the NSIP correctly, instead defaulting to the address. Using the console i set NSIP and rebooted again:

  • set ns config -ipaddress x.x.x.x -netmask y.y.y.y     (note x=NSIP & y=netmask)
  • add ns ip z.z.z.z y.y.y.y -type MIP   (note z=MIP IP Address, y=Subnet mask)
  • save ns config
  • reboot

After this final reboot the IP was set correctly and the device was running v8.1 build 56.11 cl as expected.

Hope this helps someone as it took me ages to sort this out!


Filed under Citrix Netscaler | 1 Comment »

Citrix Recevier for iPad shows “Error” but Reciever for Android works

Posted on February 21st, 2012

Came across  this interesting problem today.

Users connecting to a XenApp deployment via a Netscaler 9.3 & CAG Enterprise Edition using the Citrix receiver for iPad and Android. Web Interface for Netscaler was used to provide the XenApp services site.

The Android receiver worked as expected but the iPhone/iPad receiver did not enumerate the apps. On the creation of a new connection, the following errors were shown:

  • iPhone: There are no applications available at this time
  • iPad: Error

After much messing about, it seems that when creating a XenApp service site on the Netscaler, a checkbox is provided stating “enable connection through mobile receiver”. When this is selected a few “rewrite” rules are created to resolve a problem with the iPad/iPhone receiver connections but the rewrite feature is not enabled at the same time on the Netscaler. Simply right clicking the “rewrite” menu in the left panel and selecting to enable the feature is enough to resolve the problem.

After doing this, all mobile receivers can connect as expected.



Tags: , , , , , , , , , , , , , , ,
Filed under Citrix Access Gateway, Citrix Netscaler | No Comments »

Move VM from Hyper-V to XenServer

Posted on January 7th, 2011

There is a way to move a virtual machine from Hyper-V to XenServer without the need for XenConvert.

On Hyper-V do the following:

  • Power off the VM
  • Backup or migrate to a CIFS share
  • The backup or CIFS share will include the VHD files for the hard disks (one VHD per virtual hard disk)

On XenServer do the following:

  • Create a new VM with the correct configuration (CPUs, RAM, NICs etc) and correct number of Hard Drives.
  • Modify the name of the virtual disks: storage tab, select disk, properties, change name to be something unique (for example TEST or VM-C-Drive or VM-D-Drive). Do this for each disk.
  • Use the cli determine the SR uuid and vm disks uuid
  • > xe sr-list (note the uuid of the correct storage repository)
  • > xe vdi-list name-label=VM-C-Drive (or however named above) – (Note the UUID of each disk)

Copy the VHD files to the XenServer storage volume

  • Using WinSCP or similar copy to the following location (using the sr uuid determined above)
  • /var/run/sr-mount/{SR-UUID}/


  • The VHD files have the filename of the uuid of the virual disk as determined above.
  • Rename 0r delete the first hard disk assigned to this VM (the filename with the uuid of the VM-C-Drive disk)
  • Rename the Hyper-V disk 1 to the same filename {Disk1-uuid}.vhd
  • Repeat the process for each disk

Now you can power on the VM and it will boot from the hard disks copied from Hyper-V.

This seems like a lot of steps but it is pretty quick to do and means that XenConvert is not required (as was not possible in my case). The VM will configure the new devices during the first boot, reboot and then be ready to use.

Tags: , , , , , ,
Filed under Citrix XenServer | 2 Comments »

Speed up the launch of the XenDesktop Delivery Services Console (DSC)

Posted on September 2nd, 2010

Sometimes the Delivery Services Console takes a long time to launch. This is due to a .NET delay in the authenticode signature component as described in Microsoft Article Q936707.

The following config file can be added to speed up the lauch of the Delivery Services Console.

  • mmc.exe.config

Ensure the contents of the file contain the following:

<?xml version=”1.0″ encoding=”utf-8″?>
<generatePublisherEvidence enabled=”false” />

Copy this file to the following locations:

  • 32-bit server – c:\windows\system32
  • 64-bit server – c:\windows\sysWOW64

Tags: , , , , , , , ,
Filed under Citrix XenApp, Citrix XenDesktop | 5 Comments »

Use a different name for the XenDesktop Controllers Group

Posted on August 24th, 2010

During the initial instalation of XenDesktop, an Active Directory Controllers group is created and populated with the DDC servers in the farm. This group is named ‘controllers’.

For any subsequent installation of XenDesktop a new controllers group is added for each XenDesktop installation with a different name based on controllers – such as ‘ControlA0D3’

If there will be multiple XenDesktop instances in the same Active Directory it may be best to use a controllers group that reflects the business unit, project name or farm name to destinquish it from the others.

The process to do this is detailed in the following Citrix Article: CTX120451

However, the following points are worth noting when following this article.

  • Create a new group in the same OU as the original ‘controllers’ group called: <farm_name>_Controllers
  • Add the DDC controller objects to this group
  • Enable advanced features in the ‘Active Directory Users and Computers’ tool (View | advanced features)
  • Right click the new group | properties | Attribute Editor
  • Locate the objectGUID entry

NOTE: you need the GUID as displayed here. If you open the entry by double clicking to copy/paste the value this mirrors some sections of the GUID as detailed in the Citrix article mentioned above.

  • When entering the GUID into the registry key it needs to be in the format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  • Restart all DDC servers
  • Run the AD Configuration wizard again from one DDC and it will now use the GUID entered in the regkey as the controllers group rather than the default. It appears to also update the SCP information with the details of the new group.

This registry key does not need to be applied to the virtual desktops as they get information about the controllers groups from the AD SCP configuration, which has just been updated from the AD config wizard.

Restarting the virtual desktops (VDA agents) now gives a sucessful registration with the farm.

Note: don’t forget to also update the settings for ‘Access this device over the network’ to include the new controllers group if this applies in your configuration.

Tags: , , , , , ,
Filed under Citrix, Citrix XenDesktop | 1 Comment »