LTSP
Boot sequnce
1. PXE client sends DHCP request
2. DHCP server answer with 2 options. Dnsmasq example:
3. Client get ip address and download files:
dnsmasq-dhcp: DHCPDISCOVER(ens37) 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPOFFER(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPREQUEST(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPACK(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/pxelinux.0 to 172.16.50.147 dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/ldlinux.c32 to 172.16.50.147 dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/60be442e-dad7-dd11-a4f7-74d02b90004f not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/01-74-d0-2b-90-00-4f not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC103293 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC10329 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC1032 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC103 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC10 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC1 not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/AC not found dnsmasq-tftp: file /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/A not found dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default to 172.16.50.147 dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/vmlinuz-4.4.0-66-generic to 172.16.50.147 dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/initrd.img-4.4.0-66-generic to 172.16.50.147
4. Client boots linux kernel and files from disk image from NDB server via TCP:10809
5. Client requests DHCP again and download lts.conf
vi TFTP that contains startup script
dnsmasq-dhcp: DHCPDISCOVER(ens37) 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPOFFER(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPREQUEST(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-dhcp: DHCPACK(ens37) 172.16.50.147 74:d0:2b:90:00:4f dnsmasq-tftp: sent /var/lib/tftpboot/ltsp/i386/lts.conf to 172.16.50.147
DNSMASQ config (DHCP, DNS, TFTP server)
TFTP и NDB сервер могут находится на https://hub.zhovner.com/tools/dnsmasq/
NBD config
Network Block Device server
Openwrt package https://github.com/openwrt/packages/tree/master/net/nbd
Путь в квадратных скобках это alias, должен соответствовать пути в dnsmasq dhcp-option=17
Реальный путь к файлу exportname=/opt/ltsp/images/i386.img
может быть любым
lts.conf
Setup LTSP build server
Install LTSP environment https://help.ubuntu.com/community/UbuntuLTSP/LTSPQuickInstall
sudo apt-get install ltsp-server-standalone
sudo ltsp-build-client --arch i386
i386
is recommended arch because works on old machines too.
This creates linux chroot environment on /opt/ltsp/i386/
To edit image: chroot /opt/ltsp/i386
Build image
Any changes in /opt/ltsp/i386
requers rebuilding image
ltsp-update-image
This command updates files:
/opt/ltsp/images/i386.img
and
/var/lib/tftpboot/ltsp/i386/*