Las redes no se inicializan correctamente cuando pxebooting Linux Mint (live CD) usa cifs, pero funciona con nfs

9

Tengo un servidor TFTP / DHCP / NFS / SMB (servidor Ubuntu 12.04 LTS) en 192.168.26.1. Utilizo pxelinux para mostrar un menú que contiene las opciones de inicio e instalación para Windows, un instalador de red Ubuntu y el CD en vivo Linux Mint 17 MATE. Hacer que funcionara así ya era desagradable y me estoy quedando sin vapor ...

Para Linux Mint, proporcioné 2 opciones de arranque de red: NFS y CIFS. Lo conseguí trabajando completamente con NFS: el usuario puede seleccionarlo en el menú de arranque y, poco después, aterriza en el escritorio del CD de Linux Mint live. Pero con CIFS, las redes no se inicializan correctamente. Cuando se inicia Linux Mint, la red se bloquea durante 120 segundos. Luego, continúa iniciando en el Escritorio, pero net network-managerno se inicia (y no se inicia). Sospeché que podría ser un problema con el servidor DHCP que no responde, sin embargo, en el registro del servidor DHCP puedo ver la solicitud DHCP y la respuesta exitosa.

Una vez en el escritorio de Linux Mint, ifconfiginforma una dirección IP asignada por el DHCP y funciona el ping del servidor.

Mi configuración de pxelinux es (todo después APPENDestá en una línea, simplemente la dividí para facilitar la lectura en este sitio):

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

Tenga en cuenta que tuve que insertar la ip=dhcpopción en el menú CIFS. Si no hago eso, el proceso de arranque se bloquea durante 120 segundos cuando se inicializa la red, pero luego no continúa. Si agrego esa línea, todavía se cuelga, pero después de 120 segundos continúa arrancando.

La puesta en marcha:

Las máquinas virtuales cliente y servidor solo están conectadas entre sí (red interna). No hay otras máquinas en la red en absoluto.

El servidor tiene todos los archivos de arranque pxe debajo /var/lib/tftpboot/. El Linux Mint ISO (sin modificar) está montado debajo /var/lib/tftpboot/linux-mint-17/image. vmlinuzy initrdestán adentro /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/es una exportación NFS. Hay un recurso compartido de samba llamado tftpshareque se asigna a /var/lib/tftpboot/(solo lectura, permite el acceso a todos).

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

Esta es una extraña brecha de 2 minutos en la syslogmáquina del cliente después de un inicio exitoso en el entorno de escritorio en vivo:

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

(Brecha de 2 minutos sin ninguna entrada, aproximadamente en el momento en que se produce el retraso de arranque de 120 segundos)

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

Esto es lo que sucede en ambos casos cuando se usa CIFS:

Cuelga

En el servidor:

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

La IP que se asigna al cliente en caso de un inicio exitoso en el escritorio, de acuerdo con ifconfig, es de hecho ...14.

Esto es lo que sucede sin el ip=dhcp:

nodhcp1 nodhcp2

Esto es lo que sucede con el ip=dhcp, inmediatamente antes de que el escritorio muestre:

éxito

Estoy agradecido por cualquier idea. Si algún otro registro (¿cuál?) Ayudaría, puedo proporcionarlo.

marcador
fuente
así es como se debe escribir una pregunta :)
warren
¿Intentó tcpdump en el servidor para ver si obtiene algo del cliente?
lacasitos
1
Echa un vistazo a los guiones de arranque de casper. Creo que el problema está ahí. ¿Regeneraste tus initramfs? Supongo que tienes BOOT = casper set?
Matt
1
Matt, puedes ver claramente que el OP tiene boot = casper set. ¿Regenerar initramfs para qué?
Pat
1
@warren Lo probé y funcionó. @Sneetsher Me conecto eth0a mi puerta de enlace si necesito acceso a Internet.
marcador

Respuestas:

3

Este problema ha sido resuelto por Serva (estoy relacionado con el desarrollo de Serva)

Aquí puede encontrar el núcleo completo y las líneas anexas más el initrd.gz adicional requerido para el arranque PXE de las versiones actuales de Ubuntu / Mint live con CIFS

Básicamente, el problema es un error de Casper (AFAIK nunca se informó / solucionó antes) que en el caso de un CIFS netmount olvida exportar un parámetro del kernel que luego afecta los scripts de configuración de red que terminan recreando con retrasos y errores el archivo / etc / network / interfaces.

Si vemos la línea de "agregar" 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

encontramos que la variable incrustada "initrd" está hecha de 2 archivos initrd "cargados consecutivamente" (initrd.lz e INITRD_N11.GZ)

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

El primero (initrd.lz) es el que viene con Ubuntu / Mint, mientras que el segundo (INITRD_N11.GZ) es un pequeño initrd personalizado de 8K (desarrollado originalmente por Serva) que incluye los componentes parcheados. Este enfoque evita la necesidad de recrear el gran initrd.lz original (20 MB). INITRD_N11.GZ se puede descargar libremente desde el sitio de Serva (no publique enlaces directos aquí)

Si continuamos analizando la línea "agregar", vemos la necesidad de agregar las opciones de montaje CIFS (el OP olvida este paso) que se llevan en este caso por la variable de alguna manera engañosa "NFSOPTS"

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

En este ejemplo, el recurso compartido SMB tiene un usuario = serva con contraseña = avres y se montará como "Solo lectura", los parámetros de usuario / pase fuera de curso deben editarse en consecuencia.

Las rutas TFTP y el localizador CIFS son los requeridos por la estructura del repositorio Serva; cuando el servidor PXE no es Serva, esos parámetros deben editarse en consecuencia.

Si inician PXE de esta manera, las versiones de Ubuntu / Mint Live desde un recurso compartido CIFS no habrá demoras relacionadas con la red e Internet / Networking funcionará inmediatamente después del inicio

Editar:

Error ya informado a Ubuntu Launchpad y confirmado

Palmadita
fuente
Anexar el INITRD_N11.GZsitio de Serva como lo mencionaste lo hizo. No he incluido ninguno NFSOPTSporque mi servidor samba no usa autenticación.
marcador
Bueno; solo para mencionar que cuando se inicia usando CIFS sin un NFSOPS específico en la línea de comando, Casper por defecto es CIFSOPTS = "- ouser = root, password =" pero no especifica "ro" que podría tener algunos efectos secundarios más adelante; En su caso, especificaría, es decir, NFSOPTS = "- ouser = root, password =, ro"
Pat
1
¿La imagen initrd modificada se originó en el equipo de desarrollo de Serva? ¿O alguien más ha reparado este error antes?
marcador
INITRD_N11.GZ es un desarrollo de Serva, vea la respuesta editada, encontrará el enlace al informe de error que he realizado. Si tiene una cuenta de Ubuntu Launchpad, puede "verificar" el error; eso ayudará a solucionar esto en futuras versiones.
Pat