Il networking non si inizializza correttamente quando si avvia pxeboot Linux Mint (live CD) usando cifs, ma funziona con nfs


9

Ho un server TFTP / DHCP / NFS / SMB (server Ubuntu 12.04 LTS) su 192.168.26.1. Uso pxelinux per visualizzare un menu contenente opzioni di avvio e installazione per Windows, un programma di installazione di rete Ubuntu e il CD live MATE di Linux Mint 17. Farla funzionare in questo modo era già brutta e sto finendo il vapore ...

Per Linux Mint, ho fornito 2 opzioni di netboot: NFS e CIFS. L'ho funzionato perfettamente con NFS: l'utente può selezionarlo nel menu di avvio e, poco dopo, arriva sul desktop del CD live di Linux Mint. Ma con CIFS, la rete non si inizializza correttamente. All'avvio di Linux Mint, la rete si blocca per 120 secondi. Quindi, continua ad avviarsi sul desktop, ma net network-managernon viene avviato (e non si avvia). Sospettavo che potesse trattarsi di un problema con il server DHCP che non rispondeva, tuttavia nel registro del server DHCP posso vedere la richiesta DHCP e la risposta corretta.

Una volta sul desktop di Linux Mint, ifconfigriporta un indirizzo IP assegnato dal DHCP e il ping funziona correttamente.

La mia configurazione di pxelinux è (tutto dopo APPENDè su una riga, l'ho appena diviso per leggibilità su questo sito):

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

Si noti che ho dovuto inserire l' ip=dhcpopzione nel menu CIFS. Se non lo faccio, il processo di avvio si blocca per 120 secondi durante l'inizializzazione della rete, ma non continua. Se aggiungo quella linea, si blocca ancora, ma dopo 120 secondi continua ad avviarsi.

Il set up:

Le macchine virtuali client e server sono connesse solo tra loro (rete interna). Non ci sono altre macchine nella rete.

Il server ha tutti i file di avvio pxe sotto /var/lib/tftpboot/. Linux Mint ISO (non modificato) è montato sotto /var/lib/tftpboot/linux-mint-17/image. vmlinuze initrdsono dentro /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/è un'esportazione NFS. C'è una condivisione di samba chiamata tftpshareche mappa a /var/lib/tftpboot/(sola lettura, consente l'accesso a tutti).

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

Questo è uno strano gap di 2 minuti nella syslogmacchina client dopo un avvio riuscito nell'ambiente desktop live:

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

(Intervallo di 2 minuti senza voci, circa nel momento in cui si verifica il ritardo di avvio di 120 secondi)

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

Questo è ciò che accade in entrambi i casi quando si utilizza CIFS:

si blocca

Sul 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

L'IP assegnato al client in caso di avvio riuscito sul desktop, in ifconfigeffetti, lo è ...14.

Questo è ciò che accade , senza il ip=dhcp:

nodhcp1 nodhcp2

Questo è ciò che accade con il ip=dhcp, immediatamente prima che il desktop mostri:

successo

Sono grato per qualsiasi idea. Se qualche altro registro (quale?) Sarebbe di aiuto, posso fornirli.


ecco come si dovrebbe scrivere una domanda :)
warren,

Hai provato a tcpdump sul server per vedere se ottieni qualcosa dal client?
Lacasitos,

1
Dai un'occhiata agli script di avvio casper. Penso che il problema sia lì. Hai rigenerato i tuoi initramfs? Presumo che tu abbia BOOT = casper impostato?
Matt,

1
Matt, puoi vedere chiaramente che l'OP ha boot = casper impostato. Rigenera initramfs per cosa ??
Pat

1
@warren L'ho appena provato e ha funzionato. @Sneetsher Mi collego eth0al mio gateway se ho bisogno di un accesso a Internet.
dialer

Risposte:


3

Questo problema è stato risolto da Serva (sono legato allo sviluppo di Serva)

Il kernel completo e le linee di aggiunta oltre al initrd.gz aggiuntivo richiesto per l'avvio PXE delle attuali versioni live di Ubuntu / Mint con CIFS sono disponibili qui

Fondamentalmente il problema è un bug Casper (AFAIK mai segnalato / risolto prima) che nel caso di un Cmox netmount dimentica di esportare un parametro del kernel che successivamente influenza gli script di configurazione della rete che finiscono per ricreare con ritardi ed errori il file / etc / network interfacce /.

Se vediamo la riga "append" di Ubuntu / Mint di 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

troviamo che la variabile "initrd" incorporata è composta da 2 file initrd "caricati consecutivamente" (initrd.lz e INITRD_N11.GZ)

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

Il primo (initrd.lz) è quello in arrivo con Ubuntu / Mint mentre il secondo (INITRD_N11.GZ) è un piccolo initrd personalizzato 8K (originariamente sviluppato da Serva) che include i componenti patchati. Questo approccio evita la necessità di ricreare il grande initrd.lz originale (20 MB). INITRD_N11.GZ può essere scaricato liberamente dal sito di Serva (non pubblicare qui collegamenti diretti)

Se continuiamo ad analizzare la riga "append" vediamo la necessità di aggiungere le opzioni di montaggio CIFS (l'OP dimentica questo passaggio) che sono portate in questo caso dalla variabile in qualche modo fuorviante "NFSOPTS"

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

In questo esempio la condivisione SMB ha un utente = serva con password = avres e verrà montata come "Sola lettura", i parametri utente / passaggio fuori rotta devono essere modificati di conseguenza.

I percorsi TFTP e il localizzatore CIFS sono quelli richiesti dalla struttura del repository Serva; quando il server PXE non è Serva, tali parametri devono essere modificati di conseguenza.

Se voi ragazzi lanciate PXE in questo modo versioni Ubuntu / Mint Live da una condivisione CIFS non ci saranno ritardi relativi alla rete e Internet / Networking funzionerà subito dopo l'avvio

Modificare:

Bug già segnalato a Ubuntu Launchpad e confermato


Aggiungendo il INITRD_N11.GZdal sito di Serva come si mentioded fatto. Non ne ho incluso nessuno NFSOPTSperché il mio server samba non utilizza l'autenticazione.
dialer

Buona; solo per menzionare quando si avvia utilizzando CIFS senza uno specifico NFSOPS nella riga di comando, Casper imposta automaticamente CIFSOPTS = "- ouser = root, password =" ma non specifica "ro" che potrebbe avere alcuni effetti collaterali in seguito; Nel tuo caso, specificarei NFSOPTS = "- ouser = root, password =, ro"
Pat

1
L'immagine initrd modificata ha avuto origine dal team di sviluppo di Serva? O qualcun altro ha effettivamente riparato questo bug prima?
dialer

INITRD_N11.GZ è uno sviluppo Serva, vedi la risposta modificata, troverai il link alla segnalazione di bug che ho eseguito. Se hai un account Ubuntu Launchpad potresti "verificare" il bug; ciò contribuirà a risolvere questo problema nelle versioni future.
Pat
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.