Sieć nie inicjuje się poprawnie, gdy pxebooting Linux Mint (live CD) używa cifs, ale działa z nfs

9

Mam serwer TFTP / DHCP / NFS / SMB (serwer Ubuntu 12.04 LTS) na 192.168.26.1. Korzystam z pxelinux, aby wyświetlić menu zawierające opcje uruchamiania i instalacji dla systemu Windows, instalatora sieciowego Ubuntu oraz Live CD Linux Mint 17 MATE. Sprawianie, żeby działało w ten sposób, było już paskudne, a kończy mi się para ...

Dla Linux Mint podałem 2 opcje netboot: NFS i CIFS. W pełni współpracuję z NFS: użytkownik może wybrać go w menu startowym, a chwilę później ląduje na pulpicie CD na żywo Linux Mint. Ale w przypadku CIFS sieci nie inicjują się poprawnie. Po uruchomieniu Linux Mint sieć zawiesza się na 120 sekund. Następnie nadal uruchamia się na pulpicie, ale sieć network-managernie jest uruchamiana (i nie uruchamia się). Podejrzewałem, że może to być problem z brakiem odpowiedzi serwera DHCP, jednak w dzienniku serwera DHCP widzę żądanie DHCP i pomyślną odpowiedź.

Będąc na pulpicie Linux Mint, ifconfigzgłasza adres IP przypisany przez DHCP i pingowanie serwera działa.

Moja konfiguracja pxelinux jest (wszystko potem APPENDjest w jednym wierszu, po prostu podzieliłem ją dla czytelności na tej stronie):

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

Zauważ, że musiałem wstawić ip=dhcpopcję do menu CIFS. Jeśli tego nie zrobię, proces uruchamiania zawiesi się na 120 sekund podczas inicjowania sieci, ale nie będzie kontynuowany. Jeśli dodam tę linię, nadal się zawiesza, ale po 120 sekundach nadal się uruchamia.

Ustawić:

Maszyny wirtualne klienta i serwera są połączone tylko ze sobą (sieć wewnętrzna). W sieci nie ma żadnych innych maszyn.

Serwer zawiera wszystkie pliki rozruchowe pxe /var/lib/tftpboot/. Linux Mint ISO (niezmodyfikowany) jest zamontowany pod /var/lib/tftpboot/linux-mint-17/image. vmlinuzi initrdsą w /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/jest eksportem NFS. Istnieje samba o nazwie tftpsharemapuje na /var/lib/tftpboot/(tylko do odczytu, umożliwia dostęp do wszystkich).

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

Jest to dziwna 2-minutowa przerwa w syslogkomputerze klienta po udanym rozruchu w środowisku pulpitu na żywo:

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-minutowa przerwa bez żadnych wpisów, mniej więcej w momencie wystąpienia 120-sekundowego opóźnienia rozruchu)

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

Tak dzieje się w obu przypadkach podczas korzystania z CIFS:

Zawiesza się

Na serwerze:

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

W rzeczywistości adres IP przypisany klientowi w przypadku udanego rozruchu na pulpicie ifconfigjest rzeczywiście ...14.

To co się dzieje bezip=dhcp :

nodhcp1 nodhcp2

Oto, co dzieje się z ip=dhcp, tuż przed wyświetleniem pulpitu:

sukces

Jestem wdzięczny za wszelkie pomysły. Jeśli pomogłyby jakieś inne logi (które?), Mogę je dostarczyć.

dialer
źródło
tak należy napisać pytanie :)
warren
Czy próbowałeś tcpdump na serwerze, aby sprawdzić, czy otrzymałeś coś od klienta?
lacasitos
1
Spójrz na skrypty bootowania Caspera. Myślę, że problem już istnieje. Czy zregenerowałeś swoje initramfs? Zakładam, że masz ustawiony BOOT = casper?
Matt
1
Matt, wyraźnie widać, że OP ma ustawiony boot = casper. Regeneruj initramfs po co?
Pat
1
@warren Właśnie próbowałem i zadziałało. @Sneetsher Łączę się eth0z bramą, jeśli potrzebuję dostępu do Internetu.
dialer

Odpowiedzi:

3

Ten problem został rozwiązany przez Serva (jestem związany z rozwojem Serva)

Kompletne linie jądra i dołączania oraz dodatkowe initrd.gz wymagane do rozruchu PXE aktualnych wersji Live Ubuntu / Mint z CIFS można znaleźć tutaj

Zasadniczo problem polega na błędzie Caspera (AFAIK nigdy wcześniej nie zgłaszał / nie naprawił), który w przypadku sieci CIFS zapomina wyeksportować parametr jądra, który później wpływa na skrypty konfiguracji sieci, które kończą się z opóźnieniem i błędami w pliku / etc / network / interfejsy.

Jeśli zobaczymy wiersz „append” Ubuntu / Mint firmy 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

stwierdzamy, że osadzona zmienna „initrd” składa się z 2 „kolejno ładowanych” plików initrd (initrd.lz i INITRD_N11.GZ)

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

Pierwszy (initrd.lz) to ten, który jest dostarczany z Ubuntu / Mint, podczas gdy drugi (INITRD_N11.GZ) to niewielki niestandardowy initrd 8K (pierwotnie opracowany przez Serva) zawierający poprawione komponenty. Takie podejście pozwala uniknąć konieczności odtwarzania dużego oryginalnego pliku initrd.lz (20 MB). INITRD_N11.GZ można bezpłatnie pobrać ze strony Serva (nie zamieszczaj tutaj bezpośrednich linków)

Jeśli nadal analizujemy wiersz „dołącz”, widzimy potrzebę dodania opcji montażu CIFS (OP zapomina o tym kroku), które są przenoszone w tym przypadku przez wprowadzającą w błąd zmienną „NFSOPTS”

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

W tym przykładzie udział SMB ma user = serva with password = avres i zostanie zamontowany jako „Tylko do odczytu”, poza tym parametry użytkownika / przejścia muszą zostać odpowiednio zmodyfikowane.

Ścieżki TFTP i lokalizator CIFS są wymagane przez strukturę repozytorium Serva; gdy serwer PXE nie jest serwerem, parametry te należy odpowiednio edytować.

Jeśli uruchomicie PXE w ten sposób, wersje Ubuntu / Mint Live z udziału CIFS nie będą miały opóźnień związanych z siecią, a Internet / sieć będzie działać natychmiast po uruchomieniu

Edytować:

Błąd został już zgłoszony do Ubuntu Launchpad i potwierdzony

Poklepać
źródło
INITRD_N11.GZZrobiłeś to dodając do strony Serva, jak to zrobiłeś. Nie dodałem żadnego, NFSOPTSponieważ mój serwer samby nie korzysta z uwierzytelniania.
dialer
Dobrze; żeby wspomnieć, kiedy uruchamiasz za pomocą CIFS bez określonego NFSOPS w wierszu poleceń, Casper domyślnie ustawiony jest na CIFSOPTS = "- ouser = root, password =", ale nie określa "ro", który może mieć później pewne skutki uboczne; W twoim przypadku podałbym np. NFSOPTS = "- ouser = root, password =, ro"
Pat
1
Czy zmodyfikowany obraz initrd pochodzi od zespołu programistów Serva? A może ktoś wcześniej naprawił wcześniej ten błąd?
dialer
INITRD_N11.GZ to rozwój Serva, zobacz edytowaną odpowiedź, znajdziesz link do raportu o błędzie, który wykonałem. Jeśli masz konto Ubuntu Launchpad, możesz „zweryfikować” błąd; pomoże to naprawić to w przyszłych wydaniach.
Pat