Prerequisites
Software
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.
cd into your mounted thumbdrive and copy/paste the following commands
mv boot/isolinux/isolinux.cfg boot/isolinux/syslinux.cfg mv boot/isolinux boot/syslinux mv syslinux.cfg syslinux.cfg.bak
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.
Xenserver 6.2 - 6.5 doesn't seem to have the problem listed above.