If you're using Windows you need to download Unetbootin. Most Linux distributions include it in their repositories so you can install it using the standard Linux package managers (yum, apt-get, zypper,synaptic etc.). You will also need to download the Xenserver installation CD and save it.

Setting up the USB thumb drive

The USB thumbdrive has to have a partition on it and it has to be formatted as FAT32.

Make yourself root using su or sudo.

fdisk <device>

Create a new partition and change the partition type to vfat

Save the partition

Format it using mkfs -t vfat <device>

Installing XCP/Xenserver on the thumbdrive

Mount the partition with the mount command or just remove the thumb drive and reinsert it (usually works)

Start unetbootin

Select Diskimage and then your XCP/Xenserver ISO image that you downloaded

Select USB Drive under Type

Select your thumb drive device

Press OK

Fixing the thumbdrive so it will boot properly

The isolinux is used to boot ISO9660 disks like cdroms. We need to change the config so it uses syslinux which is used to boot hard disks.

You're done. Insert the thumbdrive into your future XCP/Xenserver host and reboot. You may need to go into the BIOS to change the boot order so it will boot from a USB device.

Notes:

Although I mentioned you can do this from Windows I won't be providing any support for it because I don't use Windows

The thumbdrive needs to be formatted as FAT32 only

Unetbootin has a tendency to just add files to the thumbdrive so make sure you format the thumbdrive between uses

Not renaming the syslinux/isolinux files will get you an Unfound kernel error on boot

A common error is getting the dreaded mboot.c32: not a COM32R image message. This seems to be because on some versions of the XCP install media the mboot.c32 file is not quite right. The last time I had to fix this I created a Xenserver 6.2 USB thumbdrive (which worked) and copied the /boot/syslinux/mboot.c32 file from there into my XCP 1.1 USB thumbdrive (which got the error listed above). Copy the good mboot.c32 file to the USB thumbdrive's /boot/syslinux folder. This solved the problem for me and so far I've only had it with XCP 1.1.