LTSP: USB-Stick mit dd vom Client aus erstellen

Aus revampedia

Zum Erstellen von bootfähigen USB-Sticks von einen LTSP-Client aus braucht es folgende Vorbereitungen, da der Stick als Gerät nur im Arbeitsspeicher des Clients angesprochen werden kann, das Image, das auf den Stick geschrieben werden soll, aber normalerweise aus dem Internet auf den LTSP-Server oder einen anderen lokalen Rechner heruntergeladen wurde.

Grundlagen

  • Mit dd (oder dcfldd) kann der Inhalt eines physischen Geräts auf ein anderes kopiert werden, von einem physischen Gerät eine Image-Datei erstellt werden oder eine Image-Datei auf ein physisches Gerät geschrieben werden.
  • USB-Sticks, die an einen LTSP-ThinClient angeschlossen werden, werden vom ThinClient Betriebssystem, das sich vollständig im Arbeitsspeicher des ThinClients befindet als physische Geräte erkannt, z.B. als /dev/sda, /dev/sdb etc.
  • Um mit dd (oder dcfldd) ein Image innerhalb des ThinClient Betriebssystems auf einen USB-Stick schreiben zu können, muss das Verzeichnis, in dem sich die Image-Datei auf dem Server oder einem lokalen Rechner befindet, ins Betriebssystem des ThinClients eingebunden werden.
  • Sofern ein Zugriff via ssh auf den Rechner mit dem Image möglich ist ( ist vom ThinClient zum LTSP-Server normalerweise gegeben), kann für das lokale Einbinden sshfs verwendet werden.
  • Auf dem Image-Rechner muss dazu sshd laufen, im ThinClient Betriebssystem muss das Paket sshfs installiert sein (werden).
  • sshfs nutzt das Modul fuse, das bei der Installation von sshfs normalerweise automatisch geladen wird.
  • Um entfernte Verzeichnisse mit sshfs lokal einbinden zu können, muss in /etc/fuse.conf die Zeile user_allow_other aktiviert werden.

Vorgehen

  • Von einem normalen X-Terminal auf dem ThinClient ein Terminal im Arbeitsspeicher des ThinClients starten:
    ltsp-localapps xterm
  • In diesem Terminal zu einem Benutzer wechseln, der sudo-Rechte im ThinClient-Betriebssystem hat, z.B.:
    su clientadmin
  • Notwendige Pakete installieren:
    sudo apt-get install dd dcfldd sshfs
  • Überprüfen, ob das Modul fuse geladen ist:
    lsmod | grep fuse
    Wenn als Ausgabe eine Zeile fuse (plus zwei Zahlen) kommt, ist das Module fuse geladen.
    Sonst muss es aktiviert werden:
    sudo modprobe fuse
  • Falls die Zeile user_allow_other in /etc/fuse.conf nicht aktiviert ist, diese Zeile in /etc/fuse.conf anhängen:
    sudo sh -c 'echo "user_allow_other" >> /etc/fuse.conf'
  • Nun kann das entfernte Verzeichnis eingebunden werden:
    sudo sshfs benutzer@IP-Adresse-des-entfernten-Rechners:/Pfad-zum-Verzeichnis /mnt -o allow_other
  • Den USB-Stick am ThinClient einstecken und die zugeteilte Gerätebezeichnung ermitteln:
    sudo fdisk -l
  • Image kopieren (Systax mit dd oder dcfldd ist identisch - dcfldd hat den Vorteil, dass alle 256 Blöcke eine Zwischenmeldung im Terminal erfolgt):
    sudo dcfldd if=/mnt/Imagedatei.iso of=/dev/sdx bs=1M && sudo sync
    (statt sdx die effektive Bezeichnung des USB-Sticks verwenden!)
  • Entferntes Verzeichnis wieder aushängen:
    sudo umount /mnt
  • Fertig!