{"id":5459,"date":"2020-08-13T15:16:14","date_gmt":"2020-08-13T13:16:14","guid":{"rendered":"https:\/\/www.bdjl.de\/localhost\/?p=5459"},"modified":"2021-06-26T13:50:11","modified_gmt":"2021-06-26T11:50:11","slug":"installbox","status":"publish","type":"post","link":"https:\/\/www.bdjl.de\/localhost\/?p=5459","title":{"rendered":"Debian Installbox"},"content":{"rendered":"<p>Um <a href=\"https:\/\/bdjl.de\/beehive\/?p=10136\">viele Laptops<\/a> m\u00f6glichst z\u00fcgig mit einem Betriebssystem versorgen zu k\u00f6nnen, habe ich eine &#8222;Debian Installbox&#8220; erzeugt. Diese basiert auf<\/p>\n<p><a href=\"https:\/\/salsa.debian.org\/installer-team\/netboot-assistant\">https:\/\/salsa.debian.org\/installer-team\/netboot-assistant<\/a><\/p>\n<p>und der Dank geht somit an <a href=\"https:\/\/salsa.debian.org\/andi\">andi<\/a> f\u00fcr das Konzept, die Skripte und seine Unterst\u00fctzung.<\/p>\n<p>Meine eigenen Konfigurationsdateien habe ich ins Git gelegt:<\/p>\n<p><a href=\"https:\/\/codeberg.org\/dowel\/installbox\">https:\/\/codeberg.org\/dowel\/installbox<\/a><\/p>\n<p>Eine fertige VM f\u00fcr Virtualbox kann mensch hier herunterladen:<\/p>\n<p><a href=\"https:\/\/cloud.kvfg.de\/index.php\/s\/aXtJQxKccPCm8kX\">https:\/\/cloud.kvfg.de\/index.php\/s\/aXtJQxKccPCm8kX<\/a><\/p>\n<p>Ein paar Erl\u00e4uterungen dazu:<\/p>\n<h2>Host<\/h2>\n<p>Den Hostrechner mit zwei Netzwerkkarten versorgen. Die &#8222;nach Au\u00dfen&#8220; \/ Richtung Internet zeigende Netzwerkkarte sollte die langsamere der beiden sein. Nach &#8222;innen&#8220; und damit in Richtung der zu installierenden Maschinen das schnellste nehmen, was rumliegt.<\/p>\n<p>Die VM unter Debian Buster braucht nicht viel &#8211; die voreingestellten 4GB und 2 CPUs sollten reichen. Vermutlich reicht auch die H\u00e4lfte &#8211; die VM hat ja fast nix zu tun, au\u00dfer Steuerbefehle zu schicken und Dateien auszuteilen. Der Host sollte das doppelte der VM an Ressourcen aufweisen. Hier klappt das auf Rechnern der &#8222;Isny-Klasse&#8220; (Core i3 mit 8 GB RAM und SSD) ganz flott &#8211; so als Orientierung.<\/p>\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5460\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446-640x449.png\" alt=\"\" width=\"640\" height=\"449\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446-640x449.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446-768x538.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446-624x437.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141446.png 829w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Adapter 1 zeigt in Richtung Internet und ist im Auslieferungszustand vermutlich noch als Bridge konfiguriert, weil das in meinem lokalen Netz praktischer war. Das Interface darf ruhig NATen. Im Bild oben ist das nicht so, weil ich dann vom VM-Host via SSH einfacher auf die VM komme.<\/p>\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5461\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447-640x449.png\" alt=\"\" width=\"640\" height=\"449\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447-640x449.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447-768x538.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447-624x437.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141447.png 829w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Adapter 2 zeigt in Richtung der zu installierenden Maschinen und muss deswegen eine Netzwerkbr\u00fccke direkt auf das Interface im Host sein. Hier in der VM die Einstellungen in <em>\/etc\/network\/interfaces<\/em> nur befummeln, wenn man die Folgen absch\u00e4tzen kann &#8211; also dazu bereit ist, die Konfiguration zu \u00fcberarbeiten. Voreingestellt ist hier die IP 192.168.0.10. Da f\u00e4hrt dann auch der TFTP-Server hoch und lauscht der dnsmasq auf Anfragen.<\/p>\n<p>Am Host selbst hatte ich f\u00fcr diese zweite Karte keine IP gesetzt, was unter Arch gut funktionierte. Unter Debian funktionierte das \u00fcberhaupt nicht. Da musste ich auf dem Host dem Interface eine 192.168.0.1 statisch verpassen, erst dann konnte die VM dort bridgen.<\/p>\n<p><a href=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5462\" src=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529-640x449.png\" alt=\"\" width=\"640\" height=\"449\" srcset=\"https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529-640x449.png 640w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529-768x538.png 768w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529-624x437.png 624w, https:\/\/www.bdjl.de\/localhost\/wp-content\/uploads\/2020\/08\/ksnip_20200813-141529.png 829w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Dann noch eine Anmerkung zum Grafik-Controller: VBox will da inzwischen VMSVGA haben. Das f\u00fchrt in der Debian-VM hier (unter Arch) jedoch dazu, dass diese alle paar Sekunden eine Denkpause in der GUI einlegt. Mit VBoxVGA flutscht es in der VM weitaus besser. Muss man ausprobieren &#8211; tun sollte beides.<\/p>\n<h2>VM<\/h2>\n<h3>Usermanagement<\/h3>\n<p>Es sind zwei Benutzer eingerichtet &#8211; <em>installbox<\/em> als Arbeitskonto (Passwort: <em>muster<\/em>) und <em>kvfg<\/em> (Passwort: <em>kvfg<\/em>) f\u00fcr die Erzeugung eines h\u00fcbschen Homeverzeichnisses f\u00fcr die SuS, das dann auf die Laptops mit ausgerollt wird und somit schon alle sinnigen Einstellungen mitbringt. Da m\u00fcsst ihr Euch halt einen eigenen backen &#8211; das Schulk\u00fcrzel bietet sich als Benutzername wie auch als Passwort an.<\/p>\n<p>Also: Als kvfg anmelden und alle Einstellungen so vornehmen, wie sie sp\u00e4ter die SuS an den Laptops vorfinden sollen. Z.B. kann hier das h\u00e4ssliche XFCE-Debian-Theme \u00fcberarbeitet werden. Ich habe dann noch in Firefox ublock und decentraleyes installiert, die Suchmaschinenliste \u00fcberarbeitet, Bookmarks eingef\u00fcgt, die Startseite angepasst und auch Libreoffice f\u00fcr den Einsatz in den F\u00e4chern Deutsch, Englisch, Franz\u00f6sisch und Spanisch inklusive Beispieldateien vorbereitet. Weiter habe ich Nextcloud &#8222;halb installiert&#8220;, damit den SuS das auch auff\u00e4llt, wie sie von zu Hause aus geschickt arbeiten k\u00f6nnten. Dazu kommt &#8211; seit der letzten Version &#8211; auch ein Skript, das die Verbindung mit dem Schulnetzwerk herstellt (WLAN, Servermounts), sofern die SuS mal in der Schule arbeiten. So Sachen eben, die den Alltag f\u00fcr die SuS erleichtern.<\/p>\n<p>Sobald das alles nach Wunsch aussieht ausloggen und als <em>installbox<\/em> wieder anmelden. Von diesem Konto aus als <em>root<\/em> das Homeverzeichnis von <em>kvfg<\/em> komplett in ein TAR packen. Das Skript build-skel.sh im Rootverzeichnis hilft dabei.<\/p>\n<p>Die Laptops holen sich im Zuge der Installation das TAR-Archiv und entpacken das auf dem Laptop nach <em>\/home\/kvfg<\/em>, womit die Einstellungen auf den Ger\u00e4ten wie gew\u00fcnscht gesetzt sind.<\/p>\n<p>Wer sich einen eigenen Benutzer f\u00fcr die Schule gebacken hat, sollte also die Pfade und Namen in der <a href=\"https:\/\/codeberg.org\/dowel\/installbox\/src\/branch\/master\/preseed.cfg\">preseed.cfg<\/a> daraufhin \u00fcberpr\u00fcfen.<\/p>\n<h3>Hints<\/h3>\n<p>Die VM ist mit einem <a href=\"https:\/\/wiki.debian.org\/AptCacherNg\">Apt-Cacher NG<\/a> versorgt, der die gesamte Installation Stand 13.08.2020 10:00 Uhr auch offline abwickeln kann. Ihr k\u00f6nnt in der VM unter <em>http:\/\/localhost:3142<\/em> nachsehen, wie viel an Download aus dem Netz ihr schon gespart habt &#8211; und au\u00dferdem geht es so einfach total flott.<\/p>\n<p>In Zeile 81 hinter<\/p>\n<pre><code class=\"hljs vala\">d-i pkgsel\/include <span class=\"hljs-keyword\">string<\/span><\/code><\/pre>\n<p>der <em>preseed.cfg<\/em> sind die Pakete aufgef\u00fchrt, die nachinstalliert werden. Da lassen sich leicht weitere erg\u00e4nzen. Ich hab hier z.B. Gimp, VLC, Okular und Gwenview sowie Kate mit eingetragen, weil ich diese selbst gerne nutze &#8211; und weil sie auf den Clients in der Schule auch da sind. Dazu kamen dann noch Cheese f\u00fcr einen Test der Webcam und Nextcloud-Desktop f\u00fcr die Verbindung mit der Schulcloud usw usw usw &#8230;<\/p>\n<h2>Releases<\/h2>\n<h4>2020-08-13<\/h4>\n<p>Initial release<\/p>\n<h4>2020-08-14<\/h4>\n<p>Paketliste erg\u00e4nzt (Druckm\u00f6glichkeit), Splash-Screen, Softwarecenter<\/p>\n<h4>2020-08-17<\/h4>\n<p>Paketliste erg\u00e4nzt (simple-scan), ublock im Firefox-ESR f\u00fcr die BBB Domains auf lehrerfortbildung-bw.de und die schulischen Domains deaktiviert<\/p>\n<h4>2020-08-18<\/h4>\n<p>KISS: Die Druckerpakete machen vermutlich keinen Sinn. Wenn die SuS keine Ger\u00e4te haben und deswegen einen Laptop von der Schule erhalten, dann haben diese aller Wahrscheinlichkeit nach auch keinen Drucker rumstehen &#8211; und wenn doch, dann lernen sie was bei der Nachinstallation. Synaptics-Touchpad-Treiber kamen noch dazu &#8211; und die Repos wurden freundlicher eingestellt (contrib, non-free hinzugef\u00fcgt).<\/p>\n<h4>2020-08-20<\/h4>\n<p>Das XFCE-Batteriestatus Icon hat noch gefehlt. Weiter habe ich, um den \u00dcberblick zu behalten, <em>etckeeper<\/em> und <em>git<\/em> auf den Laptops installiert [<a href=\"https:\/\/www.thomas-krenn.com\/de\/wiki\/Etc-Verzeichnis_mit_etckeeper_versionieren\">1<\/a>]. So kann bei Tests vor Ort besser abgesch\u00e4tzt werden, welche Anpassungen noch fehlen (z.B. Netzwerkverbindungen).<\/p>\n<p>Die Verbindung mit dem Schulnetz wird nun via WPA2-Enterprise hergestellt. Deswegen wird in der Downloadversion der VM eine weitere Datei mit ausgerollt:<\/p>\n<pre>\/var\/lib\/tftpboot\/d-i\/buster\/schueler.nmconnection<\/pre>\n<p>In dieser sind die Credentials f\u00fcr die Verbindung mit dem Schulnetz &#8222;schueler&#8220; mit drin (in der Downloadversion der VM nicht wirklich &#8211; aber den Teil muss mensch eh selbst an die Gegebenheiten in der Schule vor Ort anpassen).<\/p>\n<p>Damit diese Configdatei an Ort und Stelle auf den Laptops ankommt, wurde dann die <em>preseed.cfg<\/em> \u00fcberarbeitet, was wiederum im Git auf Codeberg (Link siehe oben) zu finden ist.<\/p>\n<p>Damit evtl. \u00c4nderungen schnell eingepflegt werden k\u00f6nnen, die <em>schueler.nmconnection<\/em> in der VM nach <em>\/root<\/em> legen. Dort liegt auch das Skriptchen <em>build-skel.sh<\/em>, das dann das Homeverzeichnis zusammen mit dieser Datei packt.<\/p>\n<h4>2020-08-24<\/h4>\n<p>Die VM hat nun Skripte an Bord, die auf den Laptops die Einrichtung individueller Verbindungen mit dem Schulnetzwerk (WPA2-Enterprise) unterst\u00fctzen &#8211; inklusive mount der Servershares. Der W\u00fcrgaround vom 20.08 mit einem Xtra-User ist somit nicht mehr n\u00f6tig.<\/p>\n<h4>2020-08-25<\/h4>\n<p>Gut, wenn man noch einmal dr\u00fcber schl\u00e4ft. Ich hatte die <em>cifs-utils<\/em> in der <em>preseed.cfg<\/em> vergessen.<\/p>\n<h2>Systempflege<\/h2>\n<h3>2021-06-25<\/h3>\n<p>F\u00e4hrt mensch die Installbox nach einigen Wochen \/ Monaten erneut hoch, dann passt der Kernel nicht mehr und die Fehlermeldung<\/p>\n<blockquote><p>Es wurden keine Kernel-Module gefunden. Dies liegt vermutlich an einem Unterschied zwischen dem hier verwendeten Kernel des Installers und dem Kernel, der im Debian-Archiv verf\u00fcgbar ist [&#8230;]<\/p><\/blockquote>\n<p>taucht auf. Hier scheint das folgende Vorgehen geholfen zu haben:<\/p>\n<ol>\n<li>Alle Pakete aus dem Apt-Cacher NG l\u00f6schen<\/li>\n<li>lokales Update der Installbox durchf\u00fchren<\/li>\n<li><em>di-netboot-assistant<\/em> frisch machen:<\/li>\n<\/ol>\n<pre>di-netboot-assistant purge stable\r\ndi-netboot-assistant install stable\r\ndi-netboot-assistant fw-toggle stable\r\ndi-netboot-assistant rebuild-grub\r\ndi-netboot-assistant rebuild-menu<\/pre>\n<p>Irgendwo auf dem Weg zum Gl\u00fcck bog ich dabei falsch ab und erhielt bei der Partitionierung die Meldung, dass kein Root-Dateisystem angegeben worden sei. <del>Ein Reboot der Installbox scheint das aber erledigt zu haben. Jetzt l\u00e4uft die Installation wieder durch.<\/del> Urs\u00e4chlich ist wohl eher der Client selbst, dessen Festplatte nicht erkannt wurde. Hier half bei weiteren Versuchen ein Strg-Alt-F1 und dann die Auswahl von &#8222;Festplatten erkennen&#8220;. Klappt das, dann l\u00e4uft die Installation auf Basis der <em>preseed.cfg<\/em> danach weiter.<\/p>\n<p>Da ich jetzt am Spielen bin habe ich noch meine auf Debian 10 laufende Clonezilla VM ins oben angegebene Repo gelegt. Kurzbeschreibung:<\/p>\n<pre>Adapter 1 mit 080027358D91 zeigt in Richtung Internet (NAT)\r\nAdapter 2 mit 080027129480 zeigt in Richtung Clients (Bridged)\r\n# Benutzerkonten\r\nroot: muster\r\nkonto: muster\r\n<\/pre>\n<p>Adapter 1 wird vom NetworkManager verwaltet. Adapter 2 wird von ifupdown mit 192.168.0.10 versorgt. Auf dem Desktop befindet sich eine TXT Datei mit den wichtigsten Einstellungen und Befehlen. Clonezilla l\u00e4uft hier so, dass Images erstellt und wieder ausgerollt werden k\u00f6nnen. Schon enthalten ist das Image aus der Installbox in \/home\/partimg\/ &#8230; und das bau ich nun weiter aus und um.<\/p>\n<h3>2021-06-26 I<\/h3>\n<p><em><span class=\"author-a-enz88zz83zkz79zvz71zz76zz82zz76zz71z6z88zz81zz80z\">firmware-iwlwifi<\/span><\/em> wird nun bei der Installation via Installbox auf den T450ern explizit ben\u00f6tigt. Das habe ich erg\u00e4nzt\u00a0 &#8211; auch in der <em>preseed.cfg<\/em> auf Codeberg. Das Installbox Image ist aktualisiert und frisch hochgeladen.<\/p>\n<p>Die Clonezilla-Server Variante enth\u00e4lt nun zwei Images: Einmal das, was die Installbox auswirft (XFCE als Desktop) und zus\u00e4tzlich noch ein Image mit KDE mit den folgenden, zus\u00e4tzlich installierten und schon vorkonfigurierten Paketen:<\/p>\n<pre><span class=\"\">kde-full breeze-gtk-theme thunderbird thunderbird-l10n-de keepassxc inkscape youtube-dl flatpak gnome-software-plugin-flatpak<\/span><\/pre>\n<h3>2021-06-26 II<\/h3>\n<p>Die Installbox bietet nun beim Boot des Clients zwei Installationsoptionen an: Bullseye und Buster jeweils mit XFCE als Desktop.<\/p>\n<p>Die Dokumentation dazu auf Codeberg ist aktualisiert.<\/p>\n<p>In der n\u00e4chsten Pflegestufe kommt der Clonezillaserver dran &#8211; mit XFCE und KDE Desktop f\u00fcr Bullseye.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um viele Laptops m\u00f6glichst z\u00fcgig mit einem Betriebssystem versorgen zu k\u00f6nnen, habe ich eine &#8222;Debian Installbox&#8220; erzeugt. Diese basiert auf https:\/\/salsa.debian.org\/installer-team\/netboot-assistant und der Dank geht somit an andi f\u00fcr das Konzept, die Skripte und seine Unterst\u00fctzung. Meine eigenen Konfigurationsdateien habe ich ins Git gelegt: https:\/\/codeberg.org\/dowel\/installbox Eine fertige VM f\u00fcr Virtualbox kann mensch hier herunterladen: https:\/\/cloud.kvfg.de\/index.php\/s\/aXtJQxKccPCm8kX [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14,5,10],"tags":[620,314,619],"class_list":["post-5459","post","type-post","status-publish","format-standard","hentry","category-laptop","category-linux","category-schule","tag-clonezilla","tag-debian","tag-di-netboot-assistant"],"_links":{"self":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5459"}],"version-history":[{"count":35,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5459\/revisions"}],"predecessor-version":[{"id":5608,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=\/wp\/v2\/posts\/5459\/revisions\/5608"}],"wp:attachment":[{"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bdjl.de\/localhost\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}