Linux Virtual Delivery Agent 2104

Use Citrix Provisioning to create Linux VMs

This article provides information about the Citrix Provisioning Linux streaming feature. Using this feature, you can provision Linux virtual desktops directly in the Citrix Virtual Apps and Desktops environment. For more information, see the Citrix Provisioning documentation.

The following Linux distributions are supported:

  • Ubuntu 16.04
  • Ubuntu 18.04.5 (experimental)
  • RHEL 8.3 (experimental)


  • To use this feature for Ubuntu 18.04.5 and RHEL 8.3, use the PVS Linux Streaming Agent (Ubuntu 18.04)-Experimental package and the PVS Linux Streaming Agent (RHEL8.3)-Experimental package, respectively. The installation packages are available on the Linux VDA download page.
  • To use this feature for Ubuntu 16.04, download the latest Citrix Provisioning ISO and locate the target software for Ubuntu 16.04. For more information, see Configure Linux Streaming in the Citrix Provisioning documentation.

Consider the following when provisioning Linux target devices:

  • Sometimes, the client drive cannot be mapped to a provisioned Linux VM session. To resolve this issue, halt the CDM service using service ctxcdm stop, before installing the Citrix Provisioning target device, then run the pvs-imager command to convert it.
  • Linux streaming only supports Winbind as the tool for joining a Windows domain.
  • When you enable RAM cache for the Linux device, set the cache size to 8 MB (the minimum value). Linux uses as much RAM as necessary, including all available memory, for the write cache. The amount specified in the console is the amount reserved up front. Citrix recommends that you reserve as little as possible, which effectively allows Linux to manage memory usage.
  • The target device name in the Citrix Provisioning imager UI typically defaults to im\_localhost. This value must be changed when you create more than one vDisk. Using the same target device name causes the imager command to fail.
  • Installation (and subsequent updates) must be done in super user mode. There are two ways to install as a super user:
    • Enter user mode in a terminal using the su command.
    • Enter sudo before the command. For example, sudo yum install tdb-tools; enter sudo for every command.
  • The Linux client’s system clock must be synchronized by using the active directory controller.
  • UEFI is not supported.
  • VMM is not supported.
  • The write cache drive must have the label PVS_Cache for it to be used as a write cache. The entire partition is used.
  • English localizations are displayed on non-English installations.
  • SE Linux is not supported.
  • Targets running on XenServer must run in HVM mode.
  • After booting a Linux target device, a warning message might display indicating a SE Linux Alert Browser.
  • Two streamed Ubuntu 18.04 VMs hosted on ESXi get the same IP address through DHCP. To resolve this issue, configure the VM to use the MAC address as a unique ID to retrieve an IP address through DHCP.
  • For Ubuntu 18.04.5 and RHEL 8.3, machine account passwords do not update in Active Directory automatically. When a password expires and the streamed VM fails to join the domain, try to reset the password through the Citrix Provisioning Console.
  • For Ubuntu 16.04, only Winbind provided by Samba 4.4 and earlier releases is supported when you provision Linux target devices using Citrix Provisioning.

Installation options

To install the Linux streaming component, you must be logged in as an administrator. When installing, consider that the following commands must be issued in a root shell, or by using sudo privileges.


A self-signed certificate must be created if streaming Citrix Provisioning Linux target devices. The Soap server uses an SSL connection requiring you to configure an X.509 certificate on the Soap server.

The certificate’s CA must also be present on the Provisioning Server and the Linux target device. For information on creating a self-signed certificate, see Creating self-signed certificates for Linux streaming.

For Ubuntu 16.04 distributions:

sudo dpkg -i pvs-<version>.deb

sudo apt-get -yf install

For Ubuntu 18.04 distributions:

sudo apt-get -y install dracut dracut-network tdb-tools python3 python3-distutils
sudo dpkg -i pvs_<version>_ubuntu18.04_amd64.deb

For RHEL 8.3 distributions:

yum –nogpgcheck localinstall pvs_<version>_rhel8.3_x86_64.deb

Using the GUI to create a Linux golden image

To invoke the GUI to install this feature:

  1. Log in while an administrator.
  2. Run the pvs-imager command:


    When the pvs-imager command fails due to a host name issue, verify that your network configuration is correct. Do not set the system’s host name to localhost. On RHEL8.3, log on with a X11 display server instead of Wayland to use the GUI.

After running the command, the UI page displays:

Provisioning imaging tool

Using the command line interface to install the Linux streaming feature

To invoke the command line to install this feature:

  1. Log in while as an administrator.
  2. Run the following command:

    pvs-imager -C

The command-line installation includes two options:

  • \-C allows you to create a vDisk
  • \-U allows you to update an existing vDisk

The following information illustrates non-GUI related installation options for the Linux Streaming feature:

Usage: ./pvs-imager \[-hCU] \[-a|--address=<IPaddr>] \[-u|--username=<username>] \[-p|--password=<password>] \[-P|--port=<port>] \[-d|--domain=<domain] \[-S|--store=<store>] \[-v|--vdisk=<vdisk name>] \[-s|--size=<vdisk size] \[-D|--device=<sourceDevice>] \[-c|--collection=<collection>] \[-n|--name=<name>]
 Non-GUI Modes:
  -C      -  Create a new vDisk
  -U      -  Update an existing vDisk

 General Options:
  -a <server IP> -  Address or hostname of PVS server
  -u <username>  -  Username for API login
  -p <password>  -  Password for API login
  -d <domain>   -  AD domain for API login
  -P <port>    -  Base port for API login (default: 54321)
  -S <store>   -  Store containing vDisk
  -c <collection> -  Collection to store imaging device in
  -n <name>    -  Device name for imaging device
  -v <name>    -  vDisk name
  -s <size>    -  vDisk size (Create Mode only, default: sourceDevice size)
  -D <sourceDev> -  devnode to clone
  -V       -  increment debug verbosity (up to 5 times)
  -g <grubMode>  -  Supported Grub settings ( 'debug' )

Supported file systems for imaging are ext4, xfs, or btrfs.


Debugging logs for pvs-imager, created using -VVVVV switch, are created in the folder that executed the pvs-imager tool. The name of the log file is pvs-imager.log.

About disk caching

For hard disk caching or hard disk overflow caching without the Citrix Virtual Apps and Desktops Setup Wizard, format the target device disk using a formatted partition. Include the label PVS_Cache. This object can be created with the mkfs –L PVS_Cache command on the target device. Any case-sensitive file system can be used for the cache, but XFS is recommended.


An administrator can create any cache disk selection logic for their environment by writing a bash script that runs at launch time. The script would look for a cache device candidate by whatever mechanism is best suited to the environment, running mkfs on it, and rebooting.

When configuring disk caching:

  • Citrix recommends using the Citrix Virtual Apps and Desktops Setup Wizard to create the Linux target device.
  • Manually creating the label requires adherence to case sensitivity to avoid configuration conflicts.
  • Alternately, consider using the manual method for creating the write cache.

Manually creating the write cache for a target device

By default, the Citrix Virtual Apps and Desktops Setup Wizard ignores drives that are attached to the current template. The wizard creates a write cache based on the parameters you provide. Sometimes, the write cache drive encounters problems during automatic creation using the wizard. Or, when the target device continuously falls back to the server side cache as a result of a problem with the created drive. To resolve these issues, create the object manually using the mkfs –L PVS_Cache command on the target device.

The Citrix Virtual Apps and Desktops Setup Wizard recognizes manually created write cache changes for the target device by default when you use the UseTemplatecache parameter. On the provisioning server running the Citrix Virtual Apps and Desktops Setup Wizard, or where the remote provisioning console points, change the registry setting:

Create the following registry key on the provisioning console machine to disable the template cache:


Name: UseTemplateCache


Value: 0

Run the Citrix Virtual Apps and Desktops Setup Wizard. On the Virtual machines page change the local write cache disk size to 0 GB (default is 6 GB).

Use Citrix Provisioning to create Linux VMs