Since your XenServer machine is Linux-based, there are some challenges in getting/putting data from/to a removable USB device. The lab I work in is isolated from our corporate network, so I’ve come up with four handy solutions that I’d like to share here over the coming weeks:

  • Accessing an NTFS USB drive in XenServer
  • Formatting a USB drive exclusively for XenServer
  • Accessing CIFS shares in XenServer
  • OpenFiler virtual machine, and getting data inside it for sharing

First off: Once you’ve plugged a USB drive into you XenServer machine, how do you access the data therein? The first thing to do is logon to the Control Domain, usually through XenCenter, and type the command:

fdisk -l

Notice that the fdisk command shows the disks that XenServer knows about. I’ve highlighted here (in red) an NTFS USB drive that I’ve plugged into the XenServer. Notice also that the device name is /dev/sdc, and that the first partition on that device has itself a device name of /dev/sdc1. In this example, the local disk on which I’ve installed XenServer is /dev/sda, which has three partitions (shown first in the listing).

Accessing an NTFS USB drive in XenServer

Here I’ve plugged in an NTFS USB drive, and I’ve established that XenServer (Linux) knows the first partition by the name /dev/sdc1.  Since this is a disk device, we need to “mount” it into the Linux filesystem. In this way, it will become a part of the filesystem hierarchy. The only thing I need is an empty directory to mount “over”. Most Linux distributions come with an empty /mnt directory for just this purpose:

mount /dev/sdc1 /mnt

Note that the target directory of your mount has to exist, and any files that existed in that directory will be “hidden” until you un-mount the device (see later for un-mounting). There’s nothing special about the directory you mount over – it’s a regular directory. What I usually end up doing is creating another directory inside of /mnt to mount my disk over. That way I can have many “mount points” if I want to transfer data between them.

The big drawback with mounting an NTFS drive is that it’s supported in read-only mode only. This isn’t usually a problem with software like NTFS-3G being available, but Citrix doesn’t support the installation of any software inside of the XenServer Control Domain.

But at least now I can use regular Linux commands to copy data from the drive, for example you could import an already backed-up VM straight from the drive, using something like:

xe vm-import filename=’/mnt/backups/Windows XP.xva’

This assumes that there was an existing folder in the root of the mounted partition called backups.

Before unplugging the USB drive, you’ll need to “un-mount” the drive, making sure that your current working directory is not somewhere down the /mnt path (or wherever you’ve mounted the device):

cd /
umount /mnt

Now you can safely unplug the USB drive from the XenServer machine.

Make sure you stop by for part 2 next week!