Das Netzwerk wird beim pxebooting von Linux Mint (Live-CD) mit cifs nicht ordnungsgemäß initialisiert, funktioniert jedoch mit nfs

9

Ich habe einen TFTP / DHCP / NFS / SMB-Server (Ubuntu-Server 12.04 LTS) unter 192.168.26.1. Ich verwende pxelinux, um ein Menü mit Start- und Installationsoptionen für Windows, ein Ubuntu-Netzwerkinstallationsprogramm und die Linux Mint 17 MATE-Live-CD anzuzeigen. Es war schon böse, es so zum Laufen zu bringen, und mir geht der Dampf aus ...

Für Linux Mint habe ich zwei Netboot-Optionen bereitgestellt: NFS und CIFS. Ich habe es mit NFS voll funktionsfähig gemacht: Der Benutzer kann es im Startmenü auswählen und landet kurze Zeit später auf dem Linux Mint Live-CD-Desktop. Bei CIFS wird das Netzwerk jedoch nicht ordnungsgemäß initialisiert. Wenn Linux Mint gestartet wird, bleibt das Netzwerk 120 Sekunden lang hängen. Dann wird weiterhin auf dem Desktop gebootet, aber das Netz network-managerwird nicht gestartet (und startet nicht). Ich habe vermutet, dass es ein Problem mit dem nicht antwortenden DHCP-Server sein könnte. Im DHCP-Serverprotokoll kann ich jedoch die DHCP-Anforderung und die erfolgreiche Antwort sehen.

Sobald Sie sich auf dem Linux Mint-Desktop befinden, ifconfigwird eine vom DHCP zugewiesene IP-Adresse gemeldet, und das Pingen des Servers funktioniert.

Meine pxelinux-Konfiguration lautet (alles danach APPENDist in einer Zeile, ich habe es nur zur besseren Lesbarkeit auf dieser Site aufgeteilt):

NFS:

LABEL linuxmint17
    MENU LABEL Linux Mint 17
    KERNEL linux-mint-17/image/casper/vmlinuz
    APPEND 
        root=/dev/nfs boot=casper netboot=nfs
        nfsroot=192.168.26.1:/var/lib/tftpboot/linux-mint-17/image
        initrd=/linux-mint-17/image/casper/initrd.lz

CIFS:

LABEL linuxmint17smb
    MENU LABEL Linux Mint 17 (SMB)
    KERNEL linux-mint-17/image/casper/vmlinuz
    APPEND
        root=/dev/cifs boot=casper netboot=cifs
        nfsroot=//192.168.26.1/tftpshare/linux-mint-17/image
        ip=dhcp
        initrd=/linux-mint-17/image/casper/initrd.lz

Beachten Sie, dass ich die ip=dhcpOption in das CIFS-Menü einfügen musste . Wenn ich das nicht mache, bleibt der Startvorgang beim Initialisieren des Netzwerks 120 Sekunden lang hängen, wird dann aber nicht fortgesetzt. Wenn ich diese Zeile hinzufüge, hängt sie immer noch, aber nach 120 Sekunden wird sie weiter gestartet.

Die Einrichtung:

Die virtuellen Client- und Servermaschinen sind nur miteinander verbunden (internes Netzwerk). Es gibt überhaupt keine anderen Computer im Netzwerk.

Der Server hat alle pxe-Boot-Dateien unter /var/lib/tftpboot/. Die Linux Mint ISO (unverändert) ist unter gemountet /var/lib/tftpboot/linux-mint-17/image. vmlinuzund initrdsind in /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/ist ein NFS-Export. Es gibt eine Samba-Freigabe tftpshare, die zugeordnet ist /var/lib/tftpboot/(schreibgeschützt, ermöglicht den Zugriff auf alle).

smb.conf

[tftpshare]
   comment = TFTP Root
   path = /var/lib/tftpboot
   browsable = yes
   guest ok = yes
   read only = no
   create mask = 0644

dhcpd.conf

authoritative;
subnet 192.168.26.0 netmask 255.255.255.0 {
  range 192.168.26.10 192.168.26.40;
  next-server 192.168.26.1;
  filename "pxelinux.0";
}

Dies ist eine seltsame Lücke syslogvon 2 Minuten auf dem Client-Computer nach einem erfolgreichen Start der Live-Desktop-Umgebung:

Jun 14 13:13:18 mint kernel: [   23.388873] intel_rapl: domain core energy ctr 0:0 not working, skip
Jun 14 13:13:18 mint kernel: [   23.528409] intel_rapl: domain uncore energy ctr 0:0 not working, skip
Jun 14 13:13:18 mint kernel: [   23.528453] intel_rapl: no valid rapl domains found in package 0
Jun 14 13:13:20 mint ntpdate[1198]: Can't find host ntp.ubuntu.com: Name or service not known (-2)
Jun 14 13:13:20 mint ntpdate[1198]: no servers can be used, exiting

(2 Minuten Pause ohne Einträge, ungefähr zu dem Zeitpunkt, zu dem die Startverzögerung von 120 Sekunden auftritt)

Jun 14 13:15:19 mint dbus[864]: [system] Activating service name='org.freedesktop.ConsoleKit' (using servicehelper)
Jun 14 13:15:19 mint dbus[864]: [system] Activating service name='org.freedesktop.PolicyKit1' (using servicehelper)
Jun 14 13:15:19 mint acpid: starting up with netlink and the input layer
Jun 14 13:15:19 mint acpid: 9 rules loaded
Jun 14 13:15:19 mint acpid: waiting for events: event logging is off

Dies geschieht in beiden Fällen bei Verwendung von CIFS:

Hängt

Auf dem Server:

...
Jun 14 13:12:52 ubuntu-netboot in.tftpd[2722]: RRQ from 192.168.26.13 filename /linux-mint-17/image/casper/initrd.lz
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPDISCOVER from 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPOFFER on 192.168.26.14 to 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPREQUEST for 192.168.26.14 (192.168.26.1) from 08:00:27:1c:c5:43 via eth1
Jun 14 13:13:14 ubuntu-netboot dhcpd: DHCPACK on 192.168.26.14 to 08:00:27:1c:c5:43 via eth1

Die IP, die dem Client im Falle eines erfolgreichen Starts des Desktops zugewiesen wird ifconfig, ist in der Tat ...14.

Dies geschieht , ohne das ip=dhcp:

nodhcp1 nodhcp2

Dies passiert mit dem ip=dhcp, unmittelbar bevor der Desktop zeigt:

Erfolg

Ich bin dankbar für alle Ideen. Wenn andere Protokolle (welche?) Helfen würden, kann ich sie bereitstellen.

Dialer
quelle
So sollte eine Frage geschrieben werden :)
Warren
Haben Sie versucht, tcpdump auf dem Server auszuführen, um festzustellen, ob Sie etwas vom Client erhalten?
Lacasitos
1
Schauen Sie sich die Casper-Boot-Skripte an. Ich denke, das Problem ist da. Haben Sie Ihre Initramfs neu generiert? Ich nehme an, Sie haben BOOT = Casper eingestellt?
Matt
1
Matt, Sie können deutlich sehen, dass im OP boot = casper eingestellt ist. Initramfs neu generieren, wofür?
Pat
1
@ Warren Ich habe es gerade versucht und es hat funktioniert. @Sneetsher Ich verbinde eth0mich mit meinem Gateway, wenn ich einen Internetzugang benötige.
Dialer

Antworten:

3

Dieses Problem wurde von Serva gelöst (ich bin mit der Serva-Entwicklung verwandt)

Die vollständigen Kernel- und Append-Zeilen sowie die zusätzliche initrd.gz, die für das PXE-Booten der aktuellen Ubuntu / Mint-Live-Versionen mit CIFS erforderlich ist, finden Sie hier

Grundsätzlich ist das Problem ein Casper-Fehler (AFAIK hat noch nie zuvor gemeldet / behoben), der im Fall eines CIFS-Netmount vergisst, einen Kernel-Parameter zu exportieren, der sich später auf die Netzwerkkonfigurationsskripte auswirkt, die mit Verzögerungen und Fehlern die Datei / etc / network neu erstellen / Schnittstellen.

Wenn wir Servas Ubuntu / Mint-Zeile "anhängen" sehen

append   = showmounts toram root=/dev/cifs initrd=NWA_PXE/$HEAD_DIR$/casper/initrd.lz,NWA_PXE/$HEAD_DIR$/casper/INITRD_N11.GZ boot=casper netboot=cifs nfsroot=//$IP_BSRV$/NWA_PXE_SHARE/$HEAD_DIR$ NFSOPTS=-ouser=serva,pass=avres,ro ip=dhcp ro

Wir stellen fest, dass die eingebettete "initrd" -Variable aus 2 "nacheinander geladenen" initrd-Dateien besteht (initrd.lz und INITRD_N11.GZ).

initrd=NWA_PXE/$HEAD_DIR$/casper/initrd.lz,NWA_PXE/$HEAD_DIR$/casper/INITRD_N11.GZ 

Die erste (initrd.lz) ist die mit Ubuntu / Mint gelieferte, während die zweite (INITRD_N11.GZ) eine winzige benutzerdefinierte 8K-Initiative (ursprünglich von Serva entwickelt) ist, die die gepatchten Komponenten enthält. Durch diesen Ansatz wird vermieden, dass das große Original initrd.lz (20 MB) neu erstellt werden muss. INITRD_N11.GZ kann kostenlos von Servas Website heruntergeladen werden (bitte posten Sie hier keine direkten Links)

Wenn wir die Zeile "Anhängen" weiter analysieren, sehen wir die Notwendigkeit, die CIFS-Montageoptionen hinzuzufügen (das OP vergisst diesen Schritt), die in diesem Fall von der irgendwie irreführenden Variablen "NFSOPTS" getragen werden.

NFSOPTS=-ouser=serva,pass=avres,ro

In diesem Beispiel hat die SMB-Freigabe ein user = serva mit password = avres und wird als "Read Only" gemountet. Natürlich müssen Benutzer- / Pass-Parameter entsprechend bearbeitet werden.

Die TFTP-Pfade und der CIFS-Locator werden von der Serva-Repository-Struktur benötigt. Wenn der PXE-Server nicht Serva ist, müssen diese Parameter entsprechend bearbeitet werden.

Wenn Sie PXE auf diese Weise booten Ubuntu / Mint Live-Versionen von einer CIFS-Freigabe, gibt es keine netzwerkbezogenen Verzögerungen und Internet / Netzwerk funktioniert sofort nach dem Booten

Bearbeiten:

Fehler bereits an Ubuntu Launchpad gemeldet und bestätigt

Klopfen
quelle
Das Anhängen der INITRD_N11.GZvon Servas Website, wie Sie es erwähnt haben, hat es getan. Ich habe keine aufgenommen, NFSOPTSda mein Samba-Server keine Authentifizierung verwendet.
Dialer
Gut; Nur um zu erwähnen, dass Casper beim Booten mit CIFS ohne ein bestimmtes NFSOPS in der Befehlszeile standardmäßig CIFSOPTS = "- ouser = root, password =" verwendet, jedoch kein "ro" angibt, das später einige Nebenwirkungen haben könnte. In Ihrem Fall würde ich dh NFSOPTS = "- ouser = root, password =, ro"
Pat
1
Wurde das geänderte initrd-Image vom Serva-Entwicklungsteam erstellt? Oder hat jemand anderes diesen Fehler schon einmal repariert?
Dialer
INITRD_N11.GZ ist eine Serva-Entwicklung. Siehe die bearbeitete Antwort. Dort finden Sie den Link zu dem von mir durchgeführten Fehlerbericht. Wenn Sie ein Ubuntu Launchpad-Konto haben, können Sie den Fehler "überprüfen". Dies wird dazu beitragen, dies in zukünftigen Versionen zu beheben.
Pat