Networking tidak menginisialisasi dengan benar ketika pxebooting Linux Mint (live CD) menggunakan cifs, tetapi bekerja dengan nfs

9

Saya memiliki server TFTP / DHCP / NFS / SMB (server Ubuntu 12.04 LTS) pada 192.168.26.1. Saya menggunakan pxelinux untuk menampilkan menu yang berisi opsi startup dan instalasi untuk Windows, installer jaringan Ubuntu, dan live CD Linux Mint 17 MATE. Menjalankannya seperti ini sudah tidak menyenangkan dan saya kehabisan tenaga ...

Untuk Linux Mint, saya telah menyediakan 2 opsi netboot: NFS dan CIFS. Saya sudah sepenuhnya bekerja dengan NFS: Pengguna dapat memilihnya di menu boot, dan beberapa saat kemudian, mendarat di desktop Linux Mint live CD. Tetapi dengan CIFS, jaringan tidak menginisialisasi dengan benar. Ketika Linux Mint dimulai, jaringan hang selama 120 detik. Kemudian, ia terus boot ke Desktop, tetapi net network-managerbelum dimulai (dan tidak mulai). Saya menduga bahwa mungkin ada masalah dengan server DHCP tidak merespons, namun, dalam log DHCP server saya bisa melihat permintaan DHCP dan respons berhasil.

Setelah di desktop Linux Mint, ifconfigmelaporkan alamat IP yang ditetapkan oleh DHCP, dan melakukan ping ke server.

Konfigurasi pxelinux saya adalah (semuanya setelah APPENDdalam satu baris, saya hanya membaginya untuk dibaca di situs ini):

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

Perhatikan bahwa saya harus memasukkan ip=dhcpopsi ke menu CIFS. Jika saya tidak melakukan itu, proses boot hang selama 120 detik ketika menginisialisasi Jaringan, tetapi kemudian tidak melanjutkan. Jika saya menambahkan baris itu, itu masih hang, tetapi setelah 120 detik itu terus boot.

Pengaturan:

Mesin virtual klien dan server hanya terhubung satu sama lain (jaringan internal). Tidak ada mesin lain di jaringan sama sekali.

Server memiliki semua file boot pxe /var/lib/tftpboot/. Linux Mint ISO (tidak dimodifikasi) dipasang di bawah /var/lib/tftpboot/linux-mint-17/image. vmlinuzdan initrdberada di /var/lib/tftpboot/linux-mint-17/image/casper. /var/lib/tftpboot/adalah ekspor NFS. Ada berbagi samba yang disebut tftpsharepeta /var/lib/tftpboot/(hanya baca, memungkinkan akses ke semua orang).

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

Ini adalah jeda 2 menit yang aneh di syslogmesin klien setelah boot berhasil ke lingkungan desktop langsung:

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 Menit gap tanpa ada entri, kira-kira pada saat 120 detik boot terjadi)

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

Inilah yang terjadi dalam kedua kasus ketika menggunakan CIFS:

Hang

Di 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

IP yang ditugaskan untuk klien jika memang berhasil boot ke desktop, menurut ifconfig, memang ...14.

Ini adalah apa yang terjadi tanpa yang ip=dhcp:

nodhcp1 nodhcp2

Inilah yang terjadi dengan ip=dhcp, segera sebelum Desktop menunjukkan:

keberhasilan

Saya berterima kasih atas ide. Jika ada log lain (yang mana?) Akan membantu, saya dapat menyediakannya.

dialer
sumber
beginilah seharusnya pertanyaan ditulis :)
warren
Apakah Anda mencoba tcpdump di server untuk melihat apakah Anda mendapatkan sesuatu dari klien?
lacasitos
1
Lihatlah skrip boot casper. Saya pikir masalahnya ada di sana. Apakah Anda membuat ulang initramf Anda? Saya menganggap Anda memiliki BOOT = set casper?
Matt
1
Matt, Anda dapat dengan jelas melihat OP memiliki set boot = casper. Regenerasi initramfs untuk apa ??
Pat
1
@warren Saya baru mencobanya dan berhasil. @Sneetsher saya terhubung eth0ke gateway saya jika saya membutuhkan akses internet.
dialer

Jawaban:

3

Masalah ini telah diselesaikan oleh Serva (saya terkait dengan pengembangan Serva)

Kernel lengkap dan baris append ditambah initrd.gz tambahan yang diperlukan untuk mem-boot versi live Ubuntu / Mint saat ini dengan CIFS dapat ditemukan di sini

Pada dasarnya masalahnya adalah bug Casper (AFAIK tidak pernah dilaporkan / diperbaiki sebelumnya) bahwa dalam kasus netmount CIFS lupa untuk mengekspor parameter kernel yang kemudian mempengaruhi skrip konfigurasi jaringan yang akhirnya menciptakan kembali dengan keterlambatan dan kesalahan file / etc / network / interface.

Jika kita melihat baris "append" Ubuntu / Mint 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

kami menemukan bahwa variabel "initrd" tertanam dibuat dari 2 file initrd "dimuat secara berurutan (initrd.lz dan INITRD_N11.GZ)

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

Yang pertama (initrd.lz) adalah yang datang dengan Ubuntu / Mint sedangkan yang kedua (INITRD_N11.GZ) adalah initrd kustom berukuran 8K (awalnya dikembangkan oleh Serva) termasuk komponen yang ditambal. Pendekatan ini menghindari perlunya membuat ulang initrd.lz asli yang besar (20 MB). INITRD_N11.GZ dapat diunduh secara bebas dari situs Serva (jangan posting tautan langsung di sini)

Jika kita terus menganalisis baris "tambahkan" kita melihat perlunya menambahkan opsi pemasangan CIFS (OP lupa langkah ini) yang dilakukan dalam kasus ini oleh variabel yang entah bagaimana menyesatkan "NFSOPTS"

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

Dalam contoh ini, bagian SMB memiliki user = serva dengan kata sandi = avres dan akan dipasang sebagai "Read Only", tentu saja parameter pengguna / pass harus diedit sesuai.

Jalur TFTP dan CIFS locator adalah yang diperlukan oleh struktur repositori Serva; ketika server PXE bukan Serva, parameter tersebut harus diedit sesuai.

Jika kalian melakukan booting PXE dengan cara ini versi Ubuntu / Mint Live dari share CIFS tidak akan ada penundaan terkait jaringan dan Internet / Jaringan akan bekerja segera setelah boot

Edit:

Bug sudah dilaporkan ke Ubuntu Launchpad dan dikonfirmasi

Menepuk
sumber
Menambahkan INITRD_N11.GZdari situs Serva saat Anda melakukannya melakukannya. Saya belum memasukkan apa pun NFSOPTSkarena server samba saya tidak menggunakan otentikasi.
dialer
Baik; hanya untuk menyebutkan ketika Anda boot menggunakan CIFS tanpa NFSOPS tertentu di baris perintah, Casper default ke CIFSOPTS = "- ouser = root, kata sandi =" tetapi tidak menentukan "ro" yang dapat memiliki beberapa efek samping nanti; Dalam kasus Anda, saya akan menentukan NFSOPTS = "- ouser = root, kata sandi =, ro"
Pat
1
Apakah gambar initrd yang dimodifikasi berasal dari tim pengembangan Serva? Atau ada orang lain yang benar-benar memperbaiki bug ini sebelumnya?
dialer
INITRD_N11.GZ adalah pengembangan Serva, lihat jawaban yang diedit, Anda akan menemukan tautan ke laporan bug yang telah saya lakukan. Jika Anda memiliki akun Ubuntu Launchpad, Anda dapat "memverifikasi" bug; yang akan membantu memperbaikinya di rilis mendatang.
Pat