Inhaltsverzeichnis
Linux-Probleme
seit Ubuntu 16.10 funktioniert die /etc/rc.local nicht mehr
Seit Ubuntu 16.10 wird die /etc/rc.local nicht mehr ausgeführt.
Jetzt sollen SystemD-Mechanismen verwendet werden.
Hier ein Beispiel, wie man in SystemD die /etc/rc.local zum ausführen beim System-Start einträgt und so die gewohnte Funktionalität wieder zurückgewinnt.
> chmod 0755 /etc/rc.local > systemctl edit --full rc-local
Wenn es eine ausführbare /etc/rc.local gibt, dann wird sie beim ersten Start dieses Kommandos automatisch eingetragen.
BUG: soft lockup - CPU#1 stuck for 61s!
Bonding, Bridge und DHCP funktionieren nicht Fehlerfrei zusammen:
Bei diesem Problem nimmt der Rechner nach dem hoch fahren einfach keine Eingaben mehr an (auch kein [Strg]+[Alt]+[Entf]) und zeigt auf dem Bildschirm nur noch diese Meldungen:
Das Problem wurde schon als BUG reportet:
2009 dachte ein Entwickler schon, er hätte dieses Problem gelöst, leider besteht es jetzt (im Jahre 2011) immer noch.
Nach meiner Erfahrung, tritt das Problem nur auf, wenn Bonding zusammen mit Bridging konfiguriert wird und das System parallelisiert (z.B. mit Upstart) startet.
In manchen Fällen hilft es, einen anderen NIC-Treiber zu verwenden. Hilft das nicht, dann muss man das System nur mit Bonding starten und Bridging nach dem Start konfigurieren.
work around
Bei dieser (nicht ganz sauberen) Lösung, wird das System ohne Bridging gestartet.
Anschließend wird das Netzwerk wieder runter gefahren und dann die komplette Konfiguration mit Bridging eingespielt.
Jetzt startet das Netzwerk mit allem drum und dran, wie es sein soll.
Zum Schluss muss allerdings die "bootfähige" Konfiguration wieder eingespielt werden, sonst läuft der Rechner nur bis zum nächsten "reboot".
Am besten trägt man diese Arbeitsschritte in die Datei "/etc/rc.local" ein, dann läuft das ganz von alleine.
/etc/network/interfaces_bond
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0 eth1
auto eth8
iface eth8 inet manual
bond-master bond0
bond-primary eth0 eth1
auto bond0
iface bond0 inet static
slaves none
bond_mode 1
bond_miimon 100
bond_updelay 200
bond_downdelay 200
address 192.168.1.213
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.3
/etc/network/interfaces_bond_br
# The loopback network interface
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
bond-master bond0
bond-primary eth0 eth1
auto eth8
iface eth8 inet manual
bond-master bond0
bond-primary eth0 eth1
auto bond0
iface bond0 inet static
slaves none
bond_mode 1
bond_miimon 100
bond_updelay 200
bond_downdelay 200
auto br0
iface br0 inet static
address 192.168.1.213
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.3
bridge_ports bond0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
/etc/rc.local
sleep 60 /etc/init.d/networking stop cat /etc/network/interfaces_bond_br > /etc/network/interfaces /etc/init.d/networking start cat /etc/network/interfaces_bond > /etc/network/interfaces sleep 60
br-Überprüfung
Diese Zeile sorgt dafür, dass abgebrochen wird, wenn es kein "br"-NIC gibt:
# if [ -z "$(brctl show | awk '/^br[0-9].*eth[0-9]+$/ {print $1}')" ] ; then exit;fi
Lösung
Dieses Problem wurde mit Ubuntu 10.04 LTS beobachtet, nach einem Upgrade auf Ubuntu 12.04 LTS trat es nicht mehr auf.

