Imagebasierte Installation

Aus Computertruhe-Wiki
Zur Navigation springen Zur Suche springen

Linux Distribution per Image installieren

Wir haben in Chemnitz eine Variante entwickelt, wie man eine Linuxdistro relativ schnell und fertig installiert auf eine frische Platte bekommt. Wir wollen das hier mit Euch teilen.

Warum sollte man ein Linux Mint oder Kubuntu jeweils auf jedem Rechner neu installieren? Es kann schon sinnvoll sein, um z.B. die Installation ein wenig zu individualisieren oder bei Treibern Sonderwege zu gehen, UEFI oder die Partitionierung unterschiedlich zu haben. Generell gilt jedoch, dass eine installierte Linux-Instanz sehr anpassungsfähig ist und selbst Nvidia oder AMD-Treiber aktiviert werden. UEFI vs. Lecacy boot geht jedoch nicht. Manche Laptops erfordern jedoch eine individuelle Installation – in der Regel aber eher, weil sie nur über Netzwerk booten wollen und dafür bisher nichts für Imagebasiert bereitsteht. Bei Laptops mit Broadcom-Chip hatten wir Nacharbeit zu leisten, bis das WLAN funtkionierte. Alles in allem finden wir jedoch die imagebasierte Installation (oder Draufbügelung) sinnvoller und effizienter als jedes Mal neu zu installieren.

Images – wo kommen sie her?

Die Abbilder müssen ja irgendwo her kommen. Die Idee ist tatsächlich, dass nicht nur wir in Chemnitz, sondern wir Alle der Computertruhe neue Images erstellen und diese über eine gemeinsame Plattform verteilen. Die Images müssen auch up2date gehalten werden und daher ab und zu erneuert werden. Das sollten wir am besten gemeinsam machen. Communityeffekt! Oder hier aus der ChCh-cloud

Wie kommen Images zu uns?

Unsere gemeinsame Plattform ist ein Synchronisationstool. Nextcloud eignet sich leider nicht. Es eignet sich nicht für blockbasierte Verteilungen, da Dateien jeweils neu heruntergeladen werden. Daher haben wir uns für Syncthing entschieden. Das ist bei debian basierten Distributionen ein alt bekanntes Paket und läuft zusammen mit der Syncthing-GTK-GUI sehr einfach.

sudo apt install syncthing syncthing-gtk

Es handelt sich um ein P2P-Synchronisationswerkzeug, das blockweise arbeitet. Wir haben im Chaostreff Chemnitz einen dauerhaft laufenden Syncthing-Peer aufgesetzt, so ist gewährleistet, dass immer eine Instanz da ist.

  • Um Eure Instanz in den Verbund hineinzunehmen, müsst Ihr Euch auf folgende ID verbinden:
  device id="LZHSAJL-FJA2FSQ-5M4ZQU7-INYE67W-QNLB5D4-WEEPW7W-MNAGRA6-GLQFPAE"
  • Einer von uns in Chemnitz muss dann die neue Peer-Instanz genehmigen.
    • Meldet Euch dazu im Aktive-Kanal auf Signal
  • Damit entsteht ein neuer geteilter Ordner bei dem Ihr auch teilnehmt.
  • Gebt angemessen Platz, denn die Images sind gerne mal 18GB groß und wenn einige da sind, summiert sich das.

Das Prozedere habe ich mal auf einem neuen Rechner durchgespielt und als Video bereitgestellt.

Wie erwähnt: Das Einrichten besteht aus drei Teilen. 1. Bis Anmelden des Peers (bei Euch); 2. muss jemand diesen Peer bestätigen (Robert per Signal anhauen) und 3. der Rest der Installation: Verzeichnis zu Freigabe zuweisen und warten (beu Euch).

Wie kommen die Images auf die Platten

Die Abbilder wurden komprimiert und möglichst kompakt gebaut. Man benötigt einige Skripte, um die Abbilder auf die frischen Platten zu bekommen. Zusätzlich braucht es natürlich einen Weg die Daten auf SSDs zu bekommen. Bei uns hat sich ein USB3.0 zu SATA-Adapter bewährt. Der taucht als Zielgerät in unseren Skripten auf und kann mit einem der Abbilder bespielt werden.

Image aufspielen mit dem Kali-Linux-Stick

Technik – wie gehts?

Das Prinzip ist recht einfach. Zunächst installiert man mal einen PC. Dann macht man die gemeinsame home/root-Partition möglichst klein. Ein von uns entwickeltes Skript misst genau aus, wo die Partitionsgrenzen sind und packt alles in eine lange Datei. Beim Entpacken auf eine neue Platte benutzen wir `dd` - es beginnt von Sektor 0 an zu schreiben. Wenn es fertig ist und die Partitionen der neuen Platte verfügbar sind, wird die letzte Partition bis zum Plattenende vergrößert und das Dateisystem ebenfalls maximiert. Damit ist die Platte dann bereit und gibt dem Endanwender maximal Platz.

Installationsrechner

Um mit den SSDs der Zielrechner so zu jonglieren benötigt ihr einen Installationsrechner. Auf dem sollten die Images liegen. Daher muss dort auch SyncTool laufen. Dieser Rechner bügelt die Images dann mit den dort vorhandenen Skripten auf die neue Platte. Das kann auch euer eigener sein. Wahlweise kann dieser Rechner auch eine benutzt werden, um ‚Frisch installierte‘ Platten auszulesen und neue Images zu erstellen.

Eigene Images erstellen

Um eigene Abbilder zu erstellen nutzt man eines unserer Skripte. Dazu installiert man zunächst eine Linux-Distirbution auf einem repräsentativen Rechner und macht alle Updates, die es gibt. Dann fährt man den Rechner herunter und die weitere Arbeit passiert am Installationsrechner. Dort reduziert man die Letzte Partition mit `gparted` oder `kparted` bis zur Schmerzgrenze und nutzt dann das Import-Skript von uns.

Videos

Praktischerweise haben wir dafür auch einige Videos vorbereitet, die das Vorgehen zeigen.

Naja, leider noch nicht gemacht, aber immerhin gibt es ein älteres Video, das ähnliches Zeigt.

Skripte

Die benutzten Skripte befinden sich z.T. im synchronisierten Ordner. Urquelle ist jedoch das Computertruhe-Repo Dort befinden sich folgende Skripte für bash:

  • dlg_platte_bespielen_btrfs.sh
  • dlg_platte_einlesen.sh

Die dlg-Skripte benutzen gnu-Dialog, welches dazu installiert sein muss. Aber kein Problem, denn die Skripte prüfen das und holen es nach.

Es gibt noch verbesserungsbedarf, aber kommt Zeit kommt Rat.