Сеть не инициализируется должным образом, когда pxebooting Linux Mint (live CD) использует cifs, но работает с nfs
У меня есть сервер TFTP/DHCP/NFS/SMB (сервер Ubuntu 12.04 LTS) на 192.168.26.1. Я использую pxelinux, чтобы отобразить меню, содержащее параметры запуска и установки для Windows, сетевой установщик Ubuntu и live-диск Linux Mint 17 MATE. Работать так, как это, уже было противно, и у меня кончился пар...
Для Linux Mint я предоставил 2 варианта сетевой загрузки: NFS и CIFS. Он полностью работает с NFS: пользователь может выбрать его в меню загрузки, и через некоторое время он попадает на рабочий стол Linux Mint live CD. Но с CIFS сеть не инициализируется должным образом. Когда запускается Linux Mint, сеть зависает на 120 секунд. Затем он продолжает загружаться на рабочий стол, но нет network-manager
не запускается (и не запускается). Я подозревал, что это может быть связано с тем, что DHCP-сервер не отвечает, однако в журнале DHCP-сервера я вижу запрос DHCP и успешный ответ.
Однажды на рабочем столе Linux Mint, ifconfig
сообщает IP-адрес, который назначен DHCP, и пинг сервер работает.
Моя конфигурация pxelinux есть (все после APPEND
в одной строке, я просто разделил его для удобства чтения на этом сайте):
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
Обратите внимание, что мне пришлось вставить ip=dhcp
опция в меню CIFS. Если я этого не сделаю, процесс загрузки зависает на 120 секунд при инициализации сети, но затем он не продолжается. Если я добавлю эту строку, она все еще зависает, но через 120 секунд она продолжает загружаться.
Настройка:
Клиентские и серверные виртуальные машины подключены только друг к другу (внутренняя сеть). Других машин в сети нет вообще.
На сервере есть все загрузочные файлы pxe /var/lib/tftpboot/
, Linux Mint ISO (без изменений) монтируется под /var/lib/tftpboot/linux-mint-17/image
, vmlinuz
а также initrd
находятся в /var/lib/tftpboot/linux-mint-17/image/casper
, /var/lib/tftpboot/
это экспорт NFS Существует доля самбы под названием tftpshare
который отображается на /var/lib/tftpboot/
(только для чтения, позволяет доступ для всех).
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";
}
Это странный 2-минутный разрыв в syslog
клиентской машины после успешной загрузки в среду рабочего стола:
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-минутный интервал без каких-либо записей, примерно в то время, когда происходит 120-секундная задержка загрузки)
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
Вот что происходит в обоих случаях при использовании CIFS:
На сервере:
...
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-адрес, назначенный клиенту в случае успешной загрузки на рабочий стол, в соответствии с ifconfig
действительно ...14
,
Это то, что происходит без ip=dhcp
:
Это то, что происходит с ip=dhcp
непосредственно перед тем, как на рабочем столе появится:
Я благодарен за любые идеи. Если какие-либо другие журналы (которые?) Помогли бы, я могу предоставить их.
1 ответ
Эта проблема была решена Serva (я связан с развитием Serva)
Полные строки ядра и добавления, а также дополнительный файл initrd.gz, необходимый для загрузки PXE текущих живых версий Ubuntu/Mint с CIFS, можно найти здесь.
В основном проблема заключается в ошибке Каспера (AFAIK никогда не сообщалось / не исправлялось раньше), которая в случае с сетевым монтированием CIFS забывает экспортировать параметр ядра, который впоследствии влияет на сценарии конфигурации сети, которые в конечном итоге восстанавливают с задержками и ошибками файл /etc/network/ интерфейсы.
Если мы увидим строку "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
мы находим, что встроенная переменная "initrd" состоит из 2 "последовательно загруженных" файлов initrd (initrd.lz и INITRD_N11.GZ)
initrd=NWA_PXE/$HEAD_DIR$/casper/initrd.lz,NWA_PXE/$HEAD_DIR$/casper/INITRD_N11.GZ
Первый (initrd.lz) поставляется с Ubuntu/Mint, а второй (INITRD_N11.GZ) представляет собой крошечный 8K (первоначально разработанный Serva) пользовательский initrd, включающий исправленные компоненты. Этот подход избавляет от необходимости воссоздавать большой оригинальный файл initrd.lz (20 МБ). INITRD_N11.GZ можно свободно загрузить с сайта Serva (не размещайте здесь прямые ссылки)
Если мы продолжим анализировать строку "append", мы увидим необходимость добавить опции монтирования CIFS (OP забывает об этом шаге), которые в этом случае переносятся вводящей в заблуждение переменной "NFSOPTS".
NFSOPTS=-ouser=serva,pass=avres,ro
В этом примере общий ресурс SMB имеет user=serva с password=avres, и он будет смонтирован как "Только для чтения", поэтому параметры user/pass вне курса должны быть соответственно отредактированы.
Пути TFTP и локатор CIFS - те, которые требуются для структуры хранилища Serva; если PXE-сервер не Serva, эти параметры должны быть соответственно изменены.
Если вы, ребята, загружаете PXE таким способом, версии Ubuntu/Mint Live с общего ресурса CIFS не будут иметь никаких задержек, связанных с сетью, и Интернет / сеть будут работать сразу после загрузки.
Редактировать:
Об ошибке уже сообщили в Ubuntu Launchpad и подтвердили