La mise en réseau ne s'initialise pas correctement lors du démarrage de pxeb Linux Mint (live CD) à l'aide de cifs, mais fonctionne avec nfs

9

J'ai un serveur TFTP / DHCP / NFS / SMB (serveur Ubuntu 12.04 LTS) sur 192.168.26.1. J'utilise pxelinux pour afficher un menu contenant les options de démarrage et d'installation pour Windows, un programme d'installation réseau Ubuntu et le live CD Linux Mint 17 MATE. Le faire fonctionner comme ça était déjà méchant et je suis à bout de souffle ...

Pour Linux Mint, j'ai fourni 2 options de netboot: NFS et CIFS. Je l'ai fait fonctionner pleinement avec NFS: l'utilisateur peut le sélectionner dans le menu de démarrage, et peu de temps après, atterrit sur le bureau du CD live Linux Mint. Mais avec CIFS, la mise en réseau ne s'initialise pas correctement. Lorsque Linux Mint démarre, la mise en réseau se bloque pendant 120 secondes. Ensuite, il continue de démarrer sur le bureau, mais net network-managern'est pas démarré (et ne démarre pas). Je soupçonne que cela pourrait être un problème avec le serveur DHCP ne répondant pas, cependant, dans le journal du serveur DHCP, je peux voir la demande DHCP et la réponse réussie.

Une fois dans le bureau Linux Mint, ifconfigsignale une adresse IP qui est attribuée par le DHCP et le ping du serveur fonctionne.

Ma configuration pxelinux est (tout ce qui suit APPENDest sur une seule ligne, je viens de le diviser pour plus de lisibilité sur ce site):

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

Notez que j'ai dû insérer l' ip=dhcpoption dans le menu CIFS. Si je ne fais pas cela, le processus de démarrage se bloque pendant 120 secondes lors de l'initialisation de la mise en réseau, mais il ne continue pas. Si j'ajoute cette ligne, elle se bloque toujours, mais après 120 secondes, elle continue de démarrer.

La mise en place:

Les machines virtuelles client et serveur sont uniquement connectées entre elles (réseau interne). Il n'y a aucune autre machine sur le réseau.

Le serveur a tous les fichiers de démarrage pxe sous /var/lib/tftpboot/. Le Linux Mint ISO (non modifié) est monté sous /var/lib/tftpboot/linux-mint-17/image. vmlinuzet initrdsont /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/est une exportation NFS. Il existe un partage samba appelé tftpsharequi est mappé /var/lib/tftpboot/(en lecture seule, permet l'accès à tout le monde).

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";
}

Il s'agit d'un étrange écart de 2 minutes dans la syslogmachine cliente après un démarrage réussi de l'environnement de bureau en direct:

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

(Écart de 2 minutes sans aucune entrée, à peu près au moment où le délai de démarrage de 120 secondes se produit)

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

C'est ce qui se produit dans les deux cas lors de l'utilisation de CIFS:

Bloque

Sur le serveur:

...
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

L'IP qui est attribuée au client en cas de démarrage réussi sur le bureau, selon ifconfig, l'est en effet ...14.

Voilà ce qui arrive sans le ip=dhcp:

nodhcp1 nodhcp2

Voici ce qui se passe avec le ip=dhcp, juste avant l'affichage du bureau:

Succès

Je suis reconnaissant pour toutes les idées. Si d'autres journaux (lesquels?) Pourraient aider, je peux les fournir.

composeur
la source
voici comment rédiger une question :)
warren
Avez-vous essayé de tcpdump sur le serveur pour voir si vous obtenez quelque chose du client?
lacasitos
1
Jetez un œil aux scripts de démarrage de casper. Je pense que le problème est là. Avez-vous régénéré vos initramfs? Je suppose que vous avez BOOT = casper set?
Matt
1
Matt, vous pouvez clairement voir que l'OP a boot = casper set. Régénérer les initramfs pour quoi ??
Pat
1
@warren Je viens de l'essayer et cela a fonctionné. @Sneetsher Je me connecte eth0à ma passerelle si j'ai besoin d'un accès Internet.
composeur le

Réponses:

3

Ce problème a été résolu par Serva (je suis lié au développement de Serva)

Le noyau complet et les lignes d'ajout ainsi que l'initrd.gz supplémentaire requis pour le démarrage PXE des versions actuelles d'Ubuntu / Mint avec CIFS peuvent être trouvés ici

Fondamentalement, le problème est un bogue Casper (AFAIK jamais signalé / corrigé auparavant) qui, dans le cas d'un netmount CIFS, oublie d'exporter un paramètre du noyau qui affecte plus tard les scripts de configuration de réseau qui finissent par recréer avec des retards et des erreurs le fichier / etc / network / interfaces.

Si nous voyons la ligne "append" Ubuntu / Mint de Serva

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

nous constatons que la variable "initrd" incorporée est constituée de 2 fichiers initrd "chargés consécutivement" (initrd.lz et INITRD_N11.GZ)

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

Le premier (initrd.lz) est celui fourni avec Ubuntu / Mint tandis que le second (INITRD_N11.GZ) est un petit initrd personnalisé 8K (développé à l'origine par Serva) comprenant les composants corrigés. Cette approche évite d'avoir à recréer le grand initrd.lz original (20 Mo). INITRD_N11.GZ peut être téléchargé gratuitement sur le site de Serva (veuillez ne pas publier de liens directs ici)

Si nous continuons d'analyser la ligne "append", nous voyons la nécessité d'ajouter les options de montage CIFS (l'OP oublie cette étape) qui sont portées dans ce cas par la variable trompeuse "NFSOPTS"

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

Dans cet exemple, le partage SMB a un utilisateur = serva avec un mot de passe = avres et il sera monté en "lecture seule", les paramètres utilisateur / passe bien sûr doivent être modifiés en conséquence.

Les chemins TFTP et le localisateur CIFS sont ceux requis par la structure du référentiel Serva; lorsque le serveur PXE n'est pas Serva, ces paramètres doivent être modifiés en conséquence.

Si vous, les gars, PXE démarrez de cette façon, les versions Ubuntu / Mint Live à partir d'un partage CIFS, il n'y aura pas de retards liés au réseau et Internet / Networking fonctionnera immédiatement après le démarrage

Éditer:

Bogue déjà signalé à Ubuntu Launchpad et confirmé

Tapoter
la source
L'ajout INITRD_N11.GZdu site de Serva comme vous l' avez fait mentioded. Je n'en ai pas inclus NFSOPTScar mon serveur samba n'utilise pas d'authentification.
composeur le
Bien; juste pour mentionner que lorsque vous démarrez en utilisant CIFS sans NFSOPS spécifique dans la ligne de commande, Casper prend par défaut CIFSOPTS = "- ouser = root, password =" mais il ne spécifie pas "ro" qui pourrait avoir des effets secondaires plus tard; Dans votre cas, je spécifierais par exemple NFSOPTS = "- ouser = root, password =, ro"
Pat
1
L'image initrd modifiée provient-elle de l'équipe de développement de Serva? Ou quelqu'un d'autre a-t-il déjà réparé ce bug avant?
composeur le
INITRD_N11.GZ est un développement Serva, voir la réponse modifiée, vous trouverez le lien vers le rapport de bug que j'ai effectué. Si vous avez un compte Ubuntu Launchpad, vous pouvez "vérifier" le bogue; cela aidera à résoudre ce problème dans les versions futures.
Pat