Bridging beim Booten führt dazu, dass das System hängen bleibt

Bridging beim Booten führt dazu, dass das System hängen bleibt

Immer wenn ich br0 so einstelle, dass es beim Booten automatisch gestartet wird, bleibt das System hängen – normalerweise bei einer Zeile mit dem Inhalt „Warten Sie 2 Sekunden, bis br0 bereit ist“ oder „An xxxx an br0 gebunden – Erneuerung in xxxx“ (also während der Boot-Reihenfolge, bevor grafische Benutzeroberflächen initialisiert wurden).

Ich verwende Debian Sid mit KVM und virt-manager. Ich habe keine Probleme, die Bridge nach dem Booten zum Laufen zu bringen, und sie funktioniert einwandfrei. Das Problem ist, dass ich möchte, dass sie automatisch eine Verbindung zu br0 herstellt, genau wie bei einer normalen Schnittstelle. Ich finde, das ist keine so abwegige Idee, aber ich habe auch nicht viel Erfahrung mit Linux-Netzwerken.

Ich habe so ziemlich jede /etc/network/interfaces-Konfiguration ausprobiert, die ich gefunden habe, und alle führen dazu, dass es beim Booten hängen bleibt oder br0 nicht automatisch startet. Das Einzige, was ich nicht ausführlich untersucht habe, sind die Befehle „pre-up“ und „post-down“, die ich gelegentlich gesehen habe, aber ich habe den Eindruck, dass diese nicht unbedingt erforderlich sind. Da das System vollständig hängen bleibt und sich weigert, weiter zu booten, ist es ziemlich mühsam, es zum Neustart zu zwingen, eine Rettungsdistribution zu booten und jedes Mal alle Konfigurationen in der Schnittstellendatei zu entfernen.

Ich konnte erfolgreich einen automatischen Start erreichen, indem ich "ifup br0" in /etc/rc.local einfügte, aber das verursacht ein paar andere Probleme, wie z. B. dass Freigaben nicht verbunden werden und VNC nicht startet. Obwohl ich noch nicht ganz so weit bin, mache ich mir Sorgen, dass meine Gäste nicht mehr booten können, wenn ich sie auf automatischen Start einstelle, wenn ich diese Methode verwende.

Antwort1

Das scheint keine Lösung zu sein, aber es scheint zu funktionieren. Ich habe zwei Schnittstellendateien erstellt - interfaces_eth0 und interfaces_br0. Dann habe ich hinzugefügt

cp "/etc/network/interfaces_br0" "/etc/network/interfaces"
service networking restart
cp "/etc/network/interfaces_eth0" "/etc/network/interfaces"

nach /etc/rc.local

Debian wird gebootet, meine Freigaben stellen eine Verbindung her und meine Gäste haben Netzwerkzugriff, auch wenn der automatische Start eingestellt ist.

Antwort2

Eine andere Lösung, die bisher zu funktionieren scheint, beinhaltet Folgendes. Ich habe unter /etc/init.d/network_fix ein Skript erstellt, das Folgendes enthält:

### BEGIN INIT INFO
# Provides:          network_fix
# Required-Start:    $remote_fs $syslog $network
# Required-Stop:     $remote_fs $syslog $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Fix network for KVM
# Description:       Resolve bridging bug causing hang on boot.
### END INIT INFO
#! /bin/sh
# /etc/init.d/blah
#
cp -f /etc/network/interfaces_br0 /etc/network/interfaces
ifdown br0 eth0 eth1
ifup br0
cp -f /etc/network/interfaces_none /etc/network/interfaces
exit 0

Und dann habe ich mein init.d mit aktualisiert update-rc.d. /etc/network/interfaces_noneenthält nur Loopback und /etc/network/interfaces_br0enthält Folgendes:

auto lo
iface lo inet loopback

auto eth1
allow-hotplug eth1
iface eth1 inet dhcp

auto br0
iface br0 inet dhcp
        bridge_ports eth1
        bridge_stp off

Zu diesem Zeitpunkt hatte ich eine zusätzliche Netzwerkkarte hinzugefügt, daher eth1.

verwandte Informationen