Linuxclient from Scratch: Notwendige und hilfreiche Anpassungen

Hallo,

gibt es eigentlich eine Liste von notwendigen und hilfreichen Anpassungen, die man an einem selbst erstellten Linuxclient vornehmen muss?

@foer Hast du so eine Liste?

Da ich gerade Ubuntu 20.04 vorbereite, hier einige Dinge, die mir bisher auf die Füße gefallen sind:

  • /etc/default/grubGRUB_DISABLE_LINUX_UUID=true
  • /etc/fstab → UUIDs ersetzen mit /dev/sdaX
  • danach sudo update-grub
  • in der start.conf folgendes anpassen (beim OS)
...
Kernel = /boot/vmlinuz
Initrd = /boot/initrd.img
...
  • lightdm installieren, da es mit gdm3 nicht klappt (was ich persönlich schade finde, denn der gdm3 sieht in 20.04 viel hübscher aus als lightdm)
  • linuxmuster-client-adsso installieren und einrichten
  • leeres Passwort für Schlüsselbund vergeben (seahorse → Anmeldung → Passwort ändern)
  • alle Domainbenutzer haben im Nautilus auch die Lesezeichen vom Vorlagenbenutzer. Ich habe in /etc/linuxmuster-client/login.d/ ein Skript erstellt, das die Lesezeichen leert:
#!/bin/bash
# remove linuxadmin bookmarks
echo "" > $HOME/.config/gtk-3.0/bookmarks
  • Dann gibt es noch so unschöne Ordner „Dokumente-entfernt“, „Bilder-entfernt“, … Dieser werden durch das Skript /etc/linuxmuster-client/login.d/06_links.sh erstellt.
    @ironiemix Lässt sich das evtl. auch anders lösen? Kann man diese Ordner ohne Probleme beim Anmelden löschen oder riskiert man damit irgendwelche Nebeneffekte?
    Ich entferne die Ordner aktuell so:
# remove duplicated directories
ls $HOME | grep "-entfernt" | xargs rm -r
1 Like

Hierbei gefällt mir nicht, dass ein solches Image nicht auf Laufwerken mit nvme-ssd funktionieren wird.
Man könnte also sich auf das Label beziehen (das dann natürlich entsprechend zu setzen ist).
So, wie ich es verstanden habe, existiert das Problem aber auch in Linbo. Könnte man da auch per Label mounten und nicht per device?

Hallo,

>/etc/fstab| → UUIDs ersetzen mit /dev/sdaX

Hierbei gefällt mir nicht, dass ein solches Image nicht auf Laufwerken
mit nvme-ssd funktionieren wird.

das stimt so nicht: wir haben ja den postsync.
Ich betreibe seit Jahren Cleints mit nvme SSDs und welche mit sata ssds
mit einem Image: die einen haben halt eine fstab mit /dev/sdax im
postsync die anderen mit /dev/nvme0n1px

LG

Holger

1 Like

@thomas

Hallo Thomas,

Ich dachte das geht. Ist das nicht so?

Beste Grüße

Thorsten

In der fstab kannst Du das so eintragen, das ist nicht das Problem. Ob es mit Linbo geht, wollte ich wissen!

Eine Sache, die ich bisher noch nicht verstanden habe ist, wie ihr das mit den UUIDs hinbekommt. Diese Schritte

  • /etc/default/grubGRUB_DISABLE_LINUX_UUID=true
  • /etc/fstab → UUIDs ersetzen mit /dev/sdaX

reichen irgendwie nicht aus oder ich mache es falsch :frowning: In der grub-config sind immer noch UUIDs drin, z.B. so:

search --no-floppy --fs-uuid --set=root 7a6386b4-f84b-4953-9985-67ebee82876d

Ich bekomme die nur weg, wenn ich manuell die grub Dateien editiere (siehe hier).

Sind bei euch auch noch solche Zeilen in der grub-config oder wie habt ihr dieses Problem gelöst? Wenn ich ein solches Image klonen möchte, gehen immer einige Sekunden beim Booten verloren, weil er auf ein Gerät wartet, das nicht da ist.

Oder liegt es daran, dass ich nur die root und swap partition in der /etc/fstab habe? Müssen da zwingend alle Partition (also cache, daten evtl. efi) mit rein?

Danke für eure Hilfe!
Stephan

Ja, geht.

VG, Thomas

Hallo Stephan,

  • |/etc/default/grub| → |GRUB_DISABLE_LINUX_UUID=true|

hiernach noch ein
update-grub

dann sollte das auch die grubdateien entsprechend anpassen.

LG

Holger

Das ist schon klar, macht es aber nicht :slight_smile:

Hallo,

um ein UUID-freies Image zubekommen, sind folgende Schritte nötig:

  • /etc/default/grubGRUB_DISABLE_LINUX_UUID=true

  • /etc/fstab → UUIDs ersetzen mit /dev/sdaX

  • sudo update-grub→ damit sind immer noch UUIDs im Image, die beim Booten auf anderen Rechner zu Fehlermeldungen führen (können).

  • Wenn man wirklich alle UUIDs weghaben möchte, muss man die Datei /usr/share/grub/grub-mkconfig_lib editieren (man sollte wissen, was man macht!) und nach dieser Anleitung anpassen.

  • bei mir kam es zu einer ca. 30s Bootzeitverzögerung, weil der Kernel auf ein Gerät gewartet hat, was nicht da war. Das kann man folgendermaßen abschalten: Die Datei /etc/initramfs-tools/conf.d/resume erstellen und RESUME=none einfügen.

  • danach sudo update-initramfs -u

Jetzt sollten alle UUIDs verschwunden sein und die Bootzeit „kurzmöglichst“.

vG Stephan

Hallo Stephan,

Das bitte nicht ausführen. Die Info ist veraltet.:

Die Reihenfolge machts, dann sind die UUIDs aus dem Bootvorgang raus. Vor einem update-grub die /etc/fstab anpassen. Also:

  • /etc/default/grubGRUB_DISABLE_LINUX_UUID=true
  • /etc/fstab → UUIDs ersetzen mit /dev/sdaX
  • sudo update-grub
  • Die Datei /etc/initramfs-tools/conf.d/resume erstellen und RESUME=none oder wenn man Suspend-To-Disk haben möchte RESUME=/dev/sdaX die SWAP Partition eintragen
  • danach sudo update-initramfs -u

Viele Grüße
Klaus

1 Like

Danke, Klaus!

Hallo @Tobias,

bezüglich unserer Diskussion auf github zum Thema „Label“. Meintest Du diesen Thread hier?

Für grub braucht man die Label ja nicht, weil es ausreicht, wenn GRUB_DISABLE_LINUX_UUID=true in /etc/default/grub gesetzt ist. Ein update-grub liest ja dann die /etc/fstab aus. Wenn dort das Rootdevice statt UUIDs stehen, dann passt ja alles. So wie ich es sehe, gibt es für die Änderung von /etc/default/grub und update-grub noch kein Postsync Skript?

Für suspend/resume wäre ein postsync praktisch welcher folgendes macht:
Setze /etc/initramfs-tools/conf.d/resume auf RESUME=LABEL=swap und führe update-initramfs -u aus. Gibt es im Moment auch noch nicht als Postsync Skript.

Viele Grüße
Klaus

Hi @garblixa,

Nein, allgemeiner die Diskussion um labels, die irgendwann im letzten JAhr in Linbo eingebaut wurden. Ich habe selbst mich nicht wirklich drum geschert, warum und wie die Labels gesetzt werden. daher kann ich auch nicht viel dazu sagen.

Das finde ich auch nicht nötig: Jemand, der ein neues Image von Grund auf macht, wird die Anpassungen von hand machen wollen - einmalig. Das ist ja overkill, im Postsync zu machen. Das ist wie wenn du alle Ideen, die @zefanja hier postet und die es zu HAuf für ältere Cloops im Anwenderwiki gibt per postsync machen wolltest: kann man schon (bedingt), aber was bringt das?

Je länger ich mit postsync vs. Skripten im laufenden CLient arbeite, desto mehr verwende ich postsync für den m.M. nach falschen Zweck: z.B. zur Dokumentation, was ich gemacht habe.

Meines Erachtens sind LINBO + postsync dafür da, ein vollständiges Cloop in ein auf den host, raum, tageszeit, lebensumstände, etc. angepasstes Cloop zu verwandeln.
Änderungen, die alle betreffen: updates, installationen, deinstallationen, konfigurationen,… könnte man auch „von“ außen über postsync in ein cloop bringen, aber sobald man mal ein neues Image macht, sind die Änderungen ja drin, man hat ein neues vollständiges Cloop, welches die „von außen“ eingebrachten Änderungen ja nicht mehr braucht.

Das ist was anderes. Es könnte mit einem Cloop zwei oder mehr WÜnsche geben, was in RESUME= stehen sollte. Das update-initramfs -u wird wohl nicht so ohne weiteres in LINBO gehen… LINBO würde damit nicht nur das root-Filesystem des Clients patchen wollen, sondern auch das gezippte „Filesystem“ initrd.img.
Das würde ich erst mal abwarten. Es hat m.Wissens noch niemand den Anwendungsfall gehabt…

VG, Tobias

Hallo Tobias,

Das ist vollkommen richtig und ich hatte das so noch nicht betrachtet. Man merkt wohl doch, daß ich hier noch recht „neu“ bin :slight_smile:

Ein paar Posts gibt es dazu schon. Aber wenn ich Deinen Gedanken oben auch hier anwende, dann ist das auch eine individuelle Sache. z.B. für einen Raum mit (Lehrer) Laptops. Also auch nicht generell für alle Images. Es könnte evtl. aber dokumentiert werden, daß man hier mit dem Label „swap“ arbeiten kann, wenn man das in LINBO so gesetzt hat.

Danke für die Klärung!

Viele Grüße
Klaus

Hallo Klaus,

Das funktioniert bei mir nicht. Ich habe mich genau an die Schritte gehalten, aber in der /boot/grub/grub.cfg steht immernoch an vielen Stellen die UUID drin! Der friscxh gesyncte Client startet aber spannernderweise trotzdem, nur mit einer Fehlermeldung am Anfang, die ich gerne weghätte.

@zefanja: Hast du die Zeilen von https://justpaste.it/18m33 in der grub-mkconfig_lib ab Zeile 169 einfach hinzugefügt oder etwas ersetzt? Und danach dann ein update-grub?

Grüße,
Stefan

Ich habe diesen Block gesucht:

  if fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; th>
    hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" ||>
    echo "if [ x\$feature_platform_search_hint = xy ]; then"
    echo "  search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}"
    echo "else"
    echo "  search --no-floppy --fs-uuid --set=root ${fs_uuid}"
    echo "fi"
  fi

und darüber diese Zeile eingefügt:

if [ "x${GRUB_DISABLE_LINUX_UUID}" != "xtrue" ] ; then

und nach dem Block

fi

Das blöde ist, dass man das im Prinzip nach jedem Grub-Update und vor jeder Imageerstellung kontrollieren muss.

vG Stephan

Hallo Stephan,

ok, danke, hab’s auch geblickt. Und so häufig passe ich die Images nicht an. 5 Fundstellen gibt es jetzt noch in der grub.cfg für die UUID, aber keine Fehlermeldungen mehr beim Booten.

Grüße,
Stefan

Hallo Stephan,

[quote=„lessi, post:16, topic:5735, full:true“]

Welche Fehlermeldung?
Ich habe erst gestern einen Linux Mint 20 Client mit den linuxmuster-client-servertools installiert. Der Client konnte bei mir nicht booten, weil es keine korrekte grub Konfiguration gab. Aber ich habe genau die Schritte oben ausgeführt und da gibt es bei mir keine Fehlermeldungen mehr.

Das ist nicht notwendig.

Viele Grüße
Klaus

Was gibt bei dir sudo grub-mkconfig | grep -i uuid aus? Im Standard-Ubuntu gibt es da einige Einträge mit search.... Wegen dieser Einträge gibt es eine Fehlermeldung beim Booten wegen nicht gefundener UUID.

vG Stephan