Skip to content

Installing LTSP on Ubuntu Server

Dan MacDonald edited this page Jan 6, 2023 · 13 revisions

Installing LTSP on Ubuntu Server

This guide is an earlier and simpler version of Notes on configuring a ZFS LTSP server which covers configuring LTSP so that each user has a unique ZFS home directory/dataset and other advanced topics such as configuring SSH to use google-authenticator for 2FA.

The process of creating a Ubuntu Server-based VirtualBox VM that will work with the ltsp image command has been automated by VUVU.

Background

We are going to use Ubuntu Server 20.04 as the base OS for our new LTSP (Linux Terminal Server Project) server. 20.04 is currently the latest Ubuntu LTS release, supported until at least 2025. I used the server version because the installer has more disk options than the desktop versions of Ubuntu.

We opted to use mdadm software RAID 10 formatted as XFS with no LVM for our system disks. Ubuntu Server makes installing Ubuntu with a mdadm software RAID disk configuration much easier.

Our current LTSP server was installed using Dell PERC hardware RAID 1 for the system disks which has the drawbacks of tying those disks to that controller type/model but more significantly it fails to boot from the second disk when you remove the first. These won't be issues using mdadm software RAID and disabling any hardware RAID.

After installing Ubuntu Server, booting up and doing the updates you may need to fix the A start job is running for wait for network to be configured boot notification.

Fixing Ubuntu Server's boot time

A start job is running for wait for network to be configured is an oddly-worded message you are likely to encounter booting a Ubuntu server installation when Ubuntu is trying to configure unconnected network adapters. This can delay your boot time by 90 seconds or more and it is still a common issue in 20.04 at the time of writing but you can run:

$ sudo systemctl disable systemd-networkd-wait-online.service

to disable the wait-online service to prevent the system from waiting on a network connection and:

$ sudo systemctl mask systemd-networkd-wait-online.service

to prevent the service from starting if requested by another service.

Remove Ubuntu Server packages

Before we install the packages required for LTSP, first we will remove the Ubuntu server packages we don't want:

$ sudo apt remove bcache-tools btrfs-progs cloud-guest-utils cloud-initramfs-copymods cloud-initramfs-dyn-netconf lxd-agent-loader open-iscsi open-vm-tools

snapd is trickier to remove, see this guide for instructions. You can shave almost 1 GB off your LTSP image size and make apps load faster by disabling snapd.

Install packages required for a LTSP Ubuntu desktop

We have a long list of packages required for our production LTSP image but you can install enough to get a basic desktop with something like:

$ sudo apt install nvidia-driver-440 mate-desktop-environment mate-tweak

Add ubuntu-desktop to install the standard Ubuntu GNOME 3 desktop and/or xubuntu-desktop to install the XFCE desktop.

After installing at least one desktop environment, the nvidia driver (if required) and any other needed software you should reboot your LTSP server and test logging into it before following the LTSP installation instructions and creating a new LTSP image.