Ubuntu OVA – VMware Horizon View

Ubuntu OVA

As you may know, VMware Horizon View supporting some Linux desktop distribution as virtual desktop from VMware Horizon View 7.x, it means that you can deliver Linux desktops to users.

There is many performance recommendations about delivering virtual desktops to users and should be considered by administrators on any operating systems. Most administrators are familiar with Windows OS but few of them are expert in Linux.

There is many guides and tools for Windows optimization such as VMware OS Optimization Tool but there isn’t enough official guides and tools for Linux.

Ubuntu is most popular Linux desktop and server distributions and VMware’s engineers made a virtual appliance for using as virtual desktop by installing Ubuntu desktop on virtual machine. The image contains two scripts, first script will optimize Ubuntu machine for using as virtual desktop and second script will assist you about VMware Horizon View Agent installation.

Ubuntu OVA

Ubuntu OVA


  • User permissions to deploy OVA/OVF
  • Optimization script requires VM to have network access
  • VM must be able to resolve https://raw.githubusercontent.com
  • Domain Admin privileges (if joining to the domain)
  • vSphere 6.0 U2, or later
  • vSphere 6.5 or later
  • ESXi 6.0 U2 or later
  • Horizon Connection Server 7.1 or later
  • Horizon Client 4.4 or later
  • Comprehensive list of System Requirements for Horizon 7 for Linux here


  1. Download the pre-packaged OVA and deploy to your datacenter
  2. Boot up the VM
  3. Open a console to the VM and login as:
  4. Internet access is required to run the optimization script:
     sudo dhclient
  5. Update the system by typing:
    sudo apt-get update && sudo apt-get upgrade
  6. Invoke the optimization script by typing:
    su root –c ./horizon-optimizer.sh
  7. Enter the root password
  8. Follow the prompts

Once complete, you can manually install the VMware Horizon Agent following the official instructions here, or you can download the Horizon Agent, and invoke the horizon-linux-installer.sh script by typing:

su root –c ./linux-agent-installer.sh

Proceed to building your Linux Desktop Pools


  • Built from Ubuntu’s mini.iso for a minimal footprint
  • Configures your Timezone
  • Updates admin (viewadmin) and root passwords
  • Configures DNS Servers
  • Disables automatic updates (except for security updates)
  • Sets default run level to 5
  • Sets FQDN in /etc/hosts
  • Installs Horizon Agent dependencies
  • Installs Winbind
  • Configures krb5.conf
  • Configures smb.conf
  • New user home directory config
  • Optimizes login screen for VDI
  • Removes guest login
  • Installs Drivers & Media codecs
  • Domain Join is optional and occurs using Winbind. Other domain-join methods require manual configuration
  • Winbind default domain flag is optional (required for SSO)
  • Utilizes MATE DE (fork from GNOME 2)
  • OVA RAM configured for 2GB per best practice
  • OVA CPU configured for 2vCPU per best practice
  • OVA vRAM configured to 128 MB per best practice
  • SVGA properties configured to best practice
  • LTS Upgrade notifications disabled


  • Support for 1 Domain Controller
  • Support for 2D desktops only

Key Considerations

  • Your Active Directory may have different encryption type requirements. These can be modified in krb5.conf
  • After rebooting, you can run the command wbinfo –g to see your AD groups. This also confirms you are joined to the domain
  • This script defaults the Winbind Separator to “+” in smb.conf. You can change it depending on your needs. More info here.
  • Using Winbind means each clone must re-join the domain after creation. You can create a local script on each clone to perform this, but it would require domain admin credentials in plaintext. In a production environment, it is recommended to remotely join your clones to the domain using PowerCLI or SSH.
  • Consider deleting the scripts from /home/viewadmin/ prior to creating your clones


Domain Join
Joining the domain can fail for many reasons.

  • If the VM failed to join the domain during the script, attempt manually joining again after the reboot.
kinit [email protected]

(to verify you received a ticket)

net ads join -U username%password
net ads testjoin

(should say “Join is OK” if it worked)

  • If you consistently get the error This operation is only allowed for the PDC of the domain try
realm join -U [email protected] [email protected]
  • Verify your hostsKRB5 and SMB configuration files reflect the correct addresses and IP addresses.
  • Verify there is no time drift between the Ubuntu VM and the DCs. You may need to reconfigure NTP.
  • As a last resort, adding the DC FQDN to /etc/hosts can help nudge the domain join along
Agent Status

If your Horizon Agent status is Unreachable or Waiting for Agent, review the official troubleshooting guide here.

Additionally, some environments may require you to add the Connection Server IP/FQDN to the /etc/hosts file. This usually indicates an environmental DNS issue.

Download OVA File

The virtual appliance package is available at VMware Labs website.


Ubuntu OVA will help administrators to deliver Linux desktop virtual machine to users with best VDI experiences because of optimization on this image. If users want to try an environment like Windows on Linux, Ubuntu OVA is the best choice for them.

Davoud Teimouri

Professional blogger, vExpert 2015/2016/2017/2018/2019/2020/2021/2022/2023, vExpert NSX, vExpert PRO, vExpert Security, vExpert EUC, VCA, MCITP. This blog is started with simple posts and now, it has large following readers.

2 Responses

  1. Frank says:

    I am interesting about your article about optimize linux desktop vdi. I want to know where to download script horizon-optimizer.sh.

Leave a Reply

Your email address will not be published. Required fields are marked *