So starten Sie das Netzwerk über eine kabelgebundene Schnittstelle, bevor Sie sich bei Ubuntu Desktop Edition anmelden

17

Problem

Ubuntu 9.10 Desktop Edition (und möglicherweise auch frühere Versionen, die ich nicht getestet habe) hat nach dem Start keine Netzwerkverbindungen, bis sich mindestens 1 Benutzer anmeldet. Dies bedeutet, dass alle Dienste, die ein Netzwerk erfordern (z. B. openssh-server), erst verfügbar sind Jemand meldet sich lokal entweder über gdm, kdm oder ein TTY an.

Hintergrund

Ubuntu 9.10 Desktop Edition verwendet den NetworkManager-Dienst, um Befehle vom nm-Applet in Gnome (oder dessen Entsprechung in KDE) abzurufen. Wenn NetworkManager beim Booten ausgeführt wird, werden keine Verbindungsbefehle ausgegeben, bis Sie sich zum ersten Mal anmelden, da das nm-Applet erst ausgeführt wird, wenn Sie sich anmelden und Ihre Gnome-Sitzung startet (oder ähnliches für KDE). Ich bin nicht sicher, was NetworkManager zum Herstellen einer Verbindung zum Netzwerk auffordert, wenn Sie sich über ein TTY anmelden.

Beim Starten der Netzwerkverbindungen sind verschiedene relevante Variablen beteiligt, darunter:

  • Wired vs Wireless (und die daraus resultierenden Treiber, SSID, Passwörter und Prioritäten)
  • Statisch vs DHCP
  • Mehrere Schnittstellen

Einschränkungen

  • Unterstützt Ubuntu 9.10 Karmic Koala (Bonuspunkte für zusätzliche unterstützte Versionen)
  • Unterstützung verdrahtete eth0 schnittstelle
  • Erhalten Sie eine IP-Adresse über DHCP
  • Empfangen von DNS-Informationen über DHCP (natürlich muss der DHCP-Server diese Informationen bereitstellen)
  • Aktivieren Sie das Netzwerk zum richtigen Zeitpunkt (z. B. einige Zeit nach dem Laden von Dateisystemen, aber vor dem Starten von Netzwerkdiensten wie ssh).
  • Das Wechseln von Distributionen oder Versionen (z. B. zu Server Edition) ist keine akzeptable Lösung
  • Der Wechsel zu einer statischen IP-Konfiguration ist keine akzeptable Lösung

Frage

  • Wie starte ich ein Netzwerk über eine kabelgebundene Schnittstelle, bevor ich mich in Ubuntu Desktop Edition anmelde?

Siehe auch

Verweise

Burly
quelle

Antworten:

9

Fügen Sie die folgenden Zeilen hinzu, damit Ihre Netzwerkschnittstelle beim Start automatisch über DHCP konfiguriert wird /etc/network/interfaces:

auto eth0
iface eth0 inet dhcp

Dadurch sollte Ihre Benutzeroberfläche auch ohne NetworkManager verfügbar sein. Sie können sogar das Paket network-manager entfernen, wenn Sie möchten.

goedson
quelle
Ahh, das war nur ein Tippfehler, als ich die Frage gestellt habe, aber das habe ich versucht. Das heißt, wenn Sie /etc/init.d/networking restart ausführen, erhalten Sie Folgendes: "* Netzwerkschnittstellen neu konfigurieren ...", aber die Schnittstelle wird nicht aufgerufen, geschweige denn, Sie erhalten eine IP. Durch einen Neustart wird auch die Schnittstelle mit diesen Einstellungen nicht aufgerufen.
Burly
Ich nehme an, das: auth eth0 anstelle von: auto eth0 in deinem Beitrag ist immer noch ein Tippfehler, den du nur in dem Beitrag gemacht hast, oder?
Goedson
Ich habe gerade eine Neuinstallation von Ubuntu 9.10 durchgeführt, / etc / network / interfaces wie oben beschrieben bearbeitet und sudo /etc/init.d/networking restarteth0 per DHCP eingerichtet und konfiguriert.
Goedson
Oh mein Gott, Mega-Fail! : facepalm: Ich hatte nicht den von Ihnen erwähnten Original-Tippfehler, aber in der ersten Zeile steht "auth" anstelle von "auto". Ich glaube, Sie müssen Ihre Antwort ändern, damit ich meine Stimme ändere, weil es zu lange her ist (mit?). Ich habe den Abschnitt "Was ich versucht habe" aus der Frage entfernt, um Verwirrung zu vermeiden, da ich schwer getippt habe. Fügen Sie möglicherweise Folgendes hinzu: "Fügen Sie Folgendes hinzu /etc/network/interfaces, um zu verhindern, dass NetworkManager die Schnittstelle verwaltet und über DHCP aufruft." Ich muss prüfen, ob dieses Update beim Booten mit installiertem NM ausgeführt wird ...
Burly
Ich habe die Antwort geändert, damit klar ist, was die Lösung ist.
Goedson
1

Debian / Ubuntu hat ein eigenes Programm, um Server beim Booten zu verwalten.

Versuchen update-rc.d STARTUP-SCRIPT defaults

Suchen Sie nach dem spezifischen Skript für eth0 und aktivieren Sie es damit.

Sie können jederzeit ein eigenes Skript erstellen, es in init.d platzieren und mit dem vorherigen Befehl beim Booten laden.

oder füge einfach diese Befehle (ifconfig up, dhcpcd) in /etc/rc.local ein (diese Datei wird jedes Mal beim Booten gelesen)

Sonnenlicht Reiter
quelle
Ich habe zuvor update-rc.d verwendet, aber das Problem besteht darin, das für eth0 spezifische STARTUP-SCRIPT zu finden. Zumindest in Ubuntu 9.10 DE gibt es keine. Es gibt nur das Skript /etc/init.d/networking, das eigentlich nur einen Startjob aufruft (/ lib / init / update-job network start wird speziell aufgerufen). Wie oben erwähnt, wird durch Aufrufen von /etc/init.d/networking start, / lib / init / update-job network start und / oder service network start / restart die Schnittstelle nicht viel weniger aufgerufen, um eine IP zu erhalten. Ich konnte mein eigenes Skript schreiben, hoffte aber auf eine elegantere Lösung.
Burly
Das Einfügen von dhclient eth0 in rc.local ist möglicherweise meine einzige Option. Ich muss das versuchen, um zu sehen, ob es überhaupt funktioniert. Das Problem dabei ist, dass andere Startdienste (wie ssh) nicht wirklich davon abhängen können, da rc.local erst ausgeführt wird, nachdem alle Systemdienste gestartet wurden.
Burly
1
Abhilfe: Durch Hinzufügen dhclient eth0zu /etc/rc.local wird die eth0-Schnittstelle beim Start ordnungsgemäß aufgerufen und eine IP über DHCP abgerufen. Zumindest für mich ist SSH jetzt auch verfügbar, bevor sich jemand lokal anmeldet, da openssh-server so eingestellt ist, dass es auf Runlevel 234 startet. Ich weiß nicht, ob alle netzwerkfähigen Dienste erfolgreich funktionieren, wenn die Schnittstelle in rc.local ( zB ntpdate), da rc.local nach Systemdiensten ausgeführt wird.
Burly