Skip to content

Der Abend fängt schon gut an...

^ v M ><
Du kommst nach Hause. Der Homeserver ist nicht pingbar. Der angeschlossene Monitor bleibt schwarz. Nur der Reset-Knopf hilft. Ja sind wir denn hier bei Windows???

Piept. BIOS. Grub:
GRUB loading.
Welcome to GRUB!

error: incompatible license.
Entering rescue mode...
grub rescue>

dafuq? Nochmals. CTRL-ALT-DEL. Piept. BIOS. Grub. Grub Menü kommt. Kernel bootet. Waiting for /dev to be fully populated... dauert ewigs.

Dann die Meldung, dass /proc/sys/net/ipv6/conf/br0/autoconf nicht existiere und br0 darum nicht gestartet werden könne. br0 besteht aus eth0, hängt in der DMZ und wird für einige virtuelle Maschinen benötigt. Also, die Befehle zur Deaktivierung von ipv6-autoconf auf br0 in der /etc/networ/interfaces wieder rausgenommen, somit wird br0 halt den ipv6-Traffic der Maschine stören. Halb so wild für den Moment.

Nächster Spass: bond0 mit eth1 und eth2 zickt. Gemäss ifconfig -a gibt's auch kein eth2 in meinem System. Aber dmesg | grep eth2 meldet:
[ 2.328476] r8169 0000:0a:00.0 eth2: RTL8168c/8111c at 0xffffc90011b7c000, 00:e0:4c:69:75:28, XID 1c2000c0 IRQ 51
[ 2.328480] r8169 0000:0a:00.0 eth2: jumbo features [frames: 6128 bytes, tx checksumming: ko]
[ 98.151541] bonding: bond0: interface eth2 does not exist!

Aaaargh, was soll denn die Scheisse??? (ich vermute mal, dass die Dual-NIC mit eth1/eth2 hardwaremässig im Arsch ist...)

Also mal mit einer grml Live-CD gebootet. Alles bestens, eth1 und eth2 sind da, bonding lässt sich problemlos von Hand einrichten. Gut, nochmals in Debian booten. eth2 ist weiterhin nicht verfügbar... ääääh wie bitte? Also gut. Shutdown und Kaltstart. Tadaa, plötzlich ist alles wieder gut.

Was zum Teufel war das?

Debian Jessie: Umgebungsvariablen bei Login setzen

^ v M ><
Egal, was man in /etc/profile.d/mycustomfile.sh definiert... Debian mit XFCE und lightdm liest es nicht ein. Dies ist offiziell so gewollt. Da gilt: korrekt konfigurieren. Da niemand so wirklich weiss, wie's geht, gilt: ausprobieren bis es klappt.

Der korrekte Weg:
erstelle eine Datei mit den nötigen export-Statements im Verzeichnis /etc/profile.d/ - wichtig ist, dass die Datei auf .sh endet. Aus Sicherheitsgründen sollte sie root gehören und auch nur durch root beschreibbar sein (chown root:root /etc/profile.d/* und chmod o-w /etc/profile.d/*). Der Dateiinhalt schaut dann z.B. so aus (der Rest meines Systems ist amerikanisch kolonialisiert mit en_US.UTF-8):
export LC_PAPER=de_CH.UTF-8
export LC_MEASUREMENT=de_CH.UTF-8
export LC_TIME=de_CH.UTF-8
export LC_MONETARY=de_CH.UTF-8
export EDITOR=vi


Als nächstes muss /etc/profile durch $HOME/.profile eingelesen werden. Dazu fügt man in die Datei folgende Zeile ein:
. /etc/profile


Damit auch grafische Anwendungen die Umgebungsvariablen mitbekommen, muss $HOME/.profile nun durch $HOME/.xsessionrc eingelesen werden. Wenn die Datei nicht existiert, kann man sie einfach mit folgendem Inhalt erstellen:
. $HOME/.profile


Somit hat man eine konsistente Profilumgebung in allen Konsolen und in grafischen Anwendungen.

Vorsicht, ~ für $HOME und source für . sind reine Bash-Aliase und dürfen nicht verwendet werden! Das ist die grosse Stolperfalle, welche es zu umgehen gilt und die so ziemlich überall unerwähnt bleibt (im Debian-Bugreport wie auch in diesem ansonsten hilfreichen Beispiel werden diese Bashismen verwendet)

Wichtig ist natürlich, dass die locale-Definitionen existieren. Unter Umständen müssen diese erst über den Befehl dpkg-reconfigure locales aktiviert und generiert werden.