Background
You have spin up an Ubuntu Server instance running version 26.04 TLS and you want to install GUI on your server.
Steps to install GUI and its related components
- Run sudo apt update to update package repositories
- Run sudo apt install ubuntu-desktop to install GNOME desktop environment. This includes GUI + gnome-remote-desktop + gdm3
This version of Ubuntu Server includes GNOME 50, which no longer supports X11 sessions. So, it is not possible to couple GNOME desktop with other RDP server such as XRDP. Ensure only one of them is running as solutions operating at the same will result in error messages such as gnome-session-init-worker crashed with SIGABRT in _libc_start_call_main()
- Run sudo apt install gdm3 to install display manager if not installed already by ubuntu-desktop
You may also install other display managers such as lightdm or kdm (now called SDDM) in place of gdm3. As with RDP service, ensure only one display managers is running if multiple display managers are installed. This can be verified by running cat /etc/X11/default-display-manager . Expected output is /usr/sbin/gdm3 for gdm3
- Run sudo systemctl set-default graphical.target to boot into GUI mode by default
- Restart the server sudo reboot
- Once boot up, run sudo grdctl --system status to confirm if GNOME RDP is listening on port 3389
- Configure RDP by either:
- Console
- Login to the GUI using console (ex: using VMRC on VMware)
- Open Settings → System → Remote Desktop
- Select Remote Login
- Click Unlock and authenticate
- Enable Remote Login
- Configure the RDP login credentials
- SSH, run the following commands
- sudo grdctl --system rdp enable
- sudo grdctl --system rdp set-auth-methods credentials
The credentials you configure here will be used to authenticate with the RDP server before entering credentials to a local account - sudo grdctl --system rdp set-credentials
Possible network issues
Installing GNOME desktop on top of Ubuntu Server introduces a complication in terms of network configuration of the server. For example, you might notice that your server is no longer able to access the internet after GNOME desktop has been installed. Also, the server will take longer to boot because it waits on the network resolution task and eventually fails.
This is because GNOME desktop and Ubuntu Server use 2 different mechanisms to manage the network configuration, thus causing a conflict when both are running at the same time. Default network manager on Ubuntu Server is systemd-networkd while NetworkManager is default on desktop (GUI). To verfiy this, you may run sudo systemctl is-enabled NetworkManager.service systemd-networkd.service
Since this server will be primarily managed and used via the desktop, disable systemd-networkd by running the command sudo systemctl disable systemd-networkd.service and update the network configuration via GUI. Perform a quick reboot to ensure changes are intact upon boot.
