EDV:LTSP/stretch client
Debian Stretch as LTSP-Client
Als Test und Vorbereitung fßr spätere upgrades habe ich eine LTSP-Client-Umgebung auf stretch umgestellt.
Dazu als root auf einem LTSP-Server:
cd /opt/ltsp/ cp -avu i386 stretch
Die Datei /opt/ltsp/stretch/etc/apt/sources.list anpassen:
deb http://ftp.de.debian.org/debian/ stretch main non-free contrib deb http://security.debian.org/ stretch/updates main non-free contrib
Dann
ltsp-chroot -a stretch apt-get update apt-get dist-upgrade exit
und
ltsp-update-kernels
Ein Client muss jetzt den richtigen Kernel laden und /opt/ltsp/stretch als NFS-root mounten. D.h. DHCP anpassen!
USB-mounts
stretch benutzt systemd, d.h. die bisherige Methode, usb-mounts durch udev machen zu lassen, funktioniert nicht mehr. Ob das hier die richtige Methode ist, weiss ich nicht, aber zumindest funktioniert es.
Bisher wurde von udev /lib/udev/ltspfs_entry aufgerufen, wenn ein Gerät eingesteckt oder entfernt wurde. Mit systemd wird der mount zwar auch ausgefßhrt, aber gleich anschlissend wieder rßckgängig gemacht. D.h. man muss einen 'service' definieren und starten, wenn der mount dauerhaft sein soll. Also definiert man den Servive so, dass wieder /lib/udev/ltspfs_entry aufgerufen wird und passt die udev-Konfiguration an.
/opt/ltsp/stretch/etc/systemd/system/ltspfsd.service
[Unit] Description=LTSP Filesystem Daemon [Service] Type=forking ExecStart=/usr/bin/ltspfsd
/opt/ltsp/stretch/etc/systemd/system/usbmount@.service
[Unit] Description=Mount USB Drive on %i [Service] Type=oneshot RemainAfterExit=true ExecStart=/lib/udev/ltspfs_entry add %i ExecStop=/lib/udev/ltspfs_entry remove %i
/opt/ltsp/stretch/usr/share/ltspfs/udev/ltspfsd.rules
# udev rules for ltspfs, usually installed into: # /etc/udev/rules.d/ or /lib/udev/rules.d (for newer versions of udev) # other drives: ACTION=="add", SUBSYSTEM=="block", ENV{ID_TYPE}!="floppy", RUN+="/bin/systemctl start usbmount@%k.service" # device removals: ACTION=="remove", SUBSYSTEM=="block", RUN+="/bin/systemctl stop usbmount@%k.service" # CD change events: # ensure polling events happen for CD and DVD devices, may be needed if distro # doesn't already support polling or change events. ACTION=="add", ENV{ID_TYPE}=="cd", ATTR{removable}=="1", ATTR{events_poll_msecs}=="-1", ATTR{events_poll_msecs}="2000" ACTION=="change", SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", ENV{ID_CDROM_MEDIA}=="1", RUN+="/bin/systemctl start %k iso9660,udf" ACTION=="change", SUBSYSTEM=="block", ENV{ID_TYPE}=="cd", ENV{ID_CDROM_MEDIA}!="1", RUN+="/bin/systemctl stop %k "