Форум программистов, компьютерный форум, киберфорум
Ubuntu, Mint Linux
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
1

Сетевая загрузка. Выбор правильного дистрибутива

12.02.2017, 12:47. Показов 841. Ответов 16

Нужно сделать сервер для сетевой загрузки клиентов (PXE boot).
Я почти это сделал. Я поднял на Ubuntu Server 14.04
TFTP и DHCP

Процесс происходит следующим образом:
1) Сначала через DHCP клиент запрашивает адрес для соединения с сервером. Затем DHCP выдает адрес директории на сервер, обращаясь к которой клиент может загрузиться.
Работает все классно, до тех пор, пока клиент не обращается к папке, в которой лежит ядро для загрузки. После того, как клиент обращается к папке загрузки (а это происходит точно), он начинает инсталировать Ubuntu Server, а мне нужна загрузка LIVE CD Ubuntu.
Здесь, я уверен все дело в том, что лежит в загрузочной папке. Подскажите пожалуйста, что нужно скачать с оф. сайта Убунты http://releases.ubuntu.com/16.04/ и что нужно положить в папку загрузки.

Спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2017, 12:47
Ответы с готовыми решениями:

Выбор дистрибутива
Помогите с выбором дистрибутива для работы и отдыха. требуется: 1 возможность кодить как под...

Выбор дистрибутива
ообщем я перепробовал много дистрибутивов: - Ubuntu 12.04 LTS - Linux Mint 12 - Debian 6 - ...

Выбор дистрибутива
Хочу разбираться в Linux. Ставил убунту, быстро снес из за диких лагов, убунту не предлогать....

Выбор дистрибутива
Привет . Скажите пожалуйста какой дистрибутив линукса самый нормальный . Я работал под убунтой . Но...

16
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
12.02.2017, 17:36 2
Цитата Сообщение от Zigfrid Посмотреть сообщение
что нужно положить в папку загрузки.
Во-первых ядро, и при необходимости, initrd.
Во-вторых файл конфигурации (по умолчанию pxelinux.cfg/default, можно создать различные файлы, которые будут использоваться в зависимости от мак-адресов клиентов).
Цитата Сообщение от Zigfrid Посмотреть сообщение
Процесс происходит следующим образом:
Вы описали только начало процесса. Через tftp перадается обычно только ядро и фс инициализации (initrd). Потом на клиенте загружается ядро и в зависимости от его настроек цепляет корневую файловую систему либо по nfs, либо как nbd. Она может находиться и на другом сервере.
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
12.02.2017, 17:39  [ТС] 3
Цитата Сообщение от gng Посмотреть сообщение
Во-первых ядро, и при необходимости, initrd.
вот, загвоздка в том, какое ядро? Обычный iso Desktop-Image?

Добавлено через 16 секунд
Цитата Сообщение от gng Посмотреть сообщение
Она может находиться и на другом сервере.
это пока не нужно)
1
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
12.02.2017, 17:42 4
Цитата Сообщение от Zigfrid Посмотреть сообщение
вот, загвоздка в том, какое ядро? Обычный iso Desktop-Image?
Я же, вроде написал: ядро прописывается в файле конфигурации. Это тот же файл, что обычно лежит в /boot
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
12.02.2017, 17:49  [ТС] 5
Цитата Сообщение от gng Посмотреть сообщение
Это тот же файл, что обычно лежит в /boot
Простите мою неосведомленность. Вот у меня есть загрузочная папка tftpboot, именно к ней обращается клиент,
вот так выглядит ее дерево:
Bash
1
tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── boot.txt
├── debian
│ └── etch
│ └── i386
│ ├── initrd.gz
│ └── linux
├── pxelinux.0
└── pxelinux.cfg
└── default

Как я понимаю, в папку i386 я вместо тех двух файлов (initrd.gz , linux), которые начинают устанавливать Ubuntu Server, что мне НЕ нужно, должен положить какие-то другие файлы, для загрузки Ubuntu Live CD.
Я что-то упускаю?


p.s.
в папке /var/lib/tftpboot/pxelinux.cfg/default,

написано это:
Bash
1
2
3
4
5
6
DISPLAY boot.txt
 
DEFAULT etch_i386_install
LABEL etch_i386_install
kernel debian/etch/i386/linux
append vga=normal initrd=debian/etch/i386/initrd.gz
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
12.02.2017, 18:08 6
Цитата Сообщение от Zigfrid Посмотреть сообщение
DEFAULT etch_i386_install
LABEL etch_i386_install
kernel debian/etch/i386/linux append vga=normal
initrd=debian/etch/i386/initrd.gz
Вот у вас и загружается по tftp ядро дебиана старого дистрибутива. На этом функции tftp заканчиваются. Ядро загружается на клиенте и запускает установку Убунты ведомым ему способом.
Я в подобном случае ручками готовил nbd образ лив-системы, компилировал ядро с поддержкой nbd, помещал его в дерево tftp? и через nbd монтировал корень.
Но, говорят, возможно сразу по tftp грузить готовый iso образ. В статье приведен пример
1
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
12.02.2017, 18:14  [ТС] 7
gng, спасибо!
То есть, я правильно понимаю, что мне нужно создать в папке tftpboot директорию other и в нее поместить нужный мне .iso, например Ubuntu 14.04 Desktop, а затем в файле /var/lib/tftpboot/pxelinux.cfg/default просто прописать путь к моему iso?
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
12.02.2017, 18:41 8
Цитата Сообщение от Zigfrid Посмотреть сообщение
я правильно понимаю, что мне нужно создать в папке tftpboot директорию other и в нее поместить нужный мне .iso, например Ubuntu 14.04 Desktop, а затем в файле /var/lib/tftpboot/pxelinux.cfg/default просто прописать путь к моему iso?
Не только. В статье в качестве ядра грузится memdisk. А параметром ему передерается iso-файл.
Мемдиск можно установить пакетом syslinux-common. Он будет в каталоге /usr/lib/syslinux
1
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
12.02.2017, 20:08  [ТС] 9
Спасибо большое!
Я попробую и отпишусь Вам

Добавлено через 1 час 9 минут
Сделал один в один как в той статье.
Bash
1
2
3
4
5
6
7
[root]$ wget [url]https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.tar.gz[/url]
[root]$ tar -xzvf syslinux-*.tar.gz
[root]$ apt-get install nasm
[root]$ cd syslinux-*/memdisk
[root]$ make memdisk
[root]$ mkdir /var/lib/tftpboot/other
[root]$ cp /root/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
поместил iso в папку other
var/lib/tftpboot
├── boot.txt
├── debian
│** └── etch
│** └── i386
│** ├── initrd.gz
│** └── linux
├── ldlinux.c32
├── other
│** ├── memdisk
│** └── ubuntu-16.04.1-desktop-amd64 (1).iso
├── pxelinux.0
└── pxelinux.cfg
└── default

изменил /var/lib/tftpboot/pxelinux.cfg/default
на

Bash
1
2
3
4
5
6
7
8
9
10
DISPLAY boot.txt
 
label wde
    menu default
    menu label WDE Recovery
    root (hd0,0)
    kernel other/memdisk
    append iso initrd=other/ubuntu-16.04.1-desktop-amd64 (1).iso --
PROMPT 1
TIMEOUT 0
теперь естественно Ubuntu Server ставится не начинает, но вместе этого пишет
No DEFAULT or UI configuration directive found!

Не понимаю, в чем дело! TFTP и DHCP подняты и работают, нормальный iso лежит там, где надо, в конфиге прописан путь к iso....
В чем тут может быть проблема то??
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
12.02.2017, 20:42 10
Цитата Сообщение от Zigfrid Посмотреть сообщение
В чем тут может быть проблема то??
Для начала в имени файла (и в конфиге) пробелы и скобки уберите.
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
13.02.2017, 20:06  [ТС] 11
gng, все поменял.
Теперь конфиг выглядит так:
Bash
1
2
3
4
5
6
7
8
# DISPLAY boot.txt
 
label wde    #without the line tftp doesn't go (??)
 #   menu default
  #  menu label WDE Recovery
  #  root (hd0,0)
    kernel other/memdisk
    append iso initrd=other/ubuntu.iso raw
и имя самого файл iso в директории other я изменил на ubuntu.iso
Тот же результат!
Я пробовал в строчке
Bash
1
append iso initrd=other/ubuntu.iso raw
менять raw на --, эффекта не имеет, правда не знаю, на что это влияет..
В чем тут может быть дело...?

Добавлено через 5 минут
Я просто не понимаю, как он может не находить это! Путь ведь прописан, boot.txt я убрал, он все равно при загрузке предлагает ввести цифру и потом с удовольствием пишет no default of ui configuration directive found!
Почему он не обращается ни к чему? путь ведь четко прописан, где там ему плутать?
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
13.02.2017, 20:50 12
Цитата Сообщение от Zigfrid Посмотреть сообщение
Я просто не понимаю, как он может не находить это!
Только что попробовал - всё работает.
На всякий случай привожу свой файл целиком. Нас интересует только только последний пункт меню
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
ltsp# cat pxelinux.cfg/default
default menu.c32
timeout 170
prompt 0
menu title Boot Menu
 
label terminal
    menu label LTSP (Debian X Terminal)
    kernel stretch_i586/vmlinuz
#   append ro initrd=squeeze_i386/initrd.img quiet splash nbdport=2000
    append ro initrd=stretch_i586/initrd.img quiet splash nbdport=192.168.17.8:2000
 
label stretch
    menu label Debian Stretch LIVE Image from Network
    kernel stretch_i586/vmlinuz
    append ro initrd=stretch_i586/initrd.img quiet init=/sbin/init-ltsp root=/dev/nbd0 nbdroot=192.168.17.8:2003
    ipappend 2
 
label wheezy
    menu label Debian Wheezy LIVE Image from Network
    kernel wheezy_i386/vmlinuz
    append ro initrd=wheezy_i386/initrd.img quiet init=/sbin/init-ltsp root=/dev/nbd0 nbdroot=192.168.17.8:2002
    ipappend 2
 
label local
    menu DEFAULT
    menu label Boot from HDD 
    localboot 0
 
label iso   
    menu label ISO boot
  #  root (hd0,0)
    kernel other/memdisk
    append iso initrd=other/isoubuntu-14.04.4-server-amd64 raw
файлы memdisk и isoubuntu-14.04.4-server-amd64 лежат в other/
Система - debian wheezy
Файл memdisk установлен пакетом syslinux-common (через apt-get), затем скопирован из /usr/lib/syslinux/
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
13.02.2017, 21:02  [ТС] 13
А почему у Вас вот тут так странно
Bash
1
append iso initrd=other/isoubuntu-14.04.4-server-amd64. raw
iso вначале, а raw расширение и с пробелом?

почему, когда я меняю label wde в конфиге на label iso перестает подниматься tftp?

Добавлено через 8 минут
Цитата Сообщение от gng Посмотреть сообщение
Файл memdisk установлен пакетом syslinux-common (через apt-get), затем скопирован из /usr/lib/syslinux/
можете листинг привести? это странно, я ведь устанавливал как в статье:
Bash
1
2
3
4
5
6
7
8
9
10
  344  wget [url]https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.10.tar.gz[/url]
  345  tar -xzvf syslinux-*.tar.gz
  348  cd syslinux-*/memdisk
  351  cp /root/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  352  sudo cp /root/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  353  cp /root/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  354  sudo cp /root/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  356  sudo cp /ivan/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  357  sudo cp home/ivan/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
  359  sudo cp home/ivan/syslinux-*/memdisk/memdisk /var/lib/tftpboot/other/
может, так нельзя было? может, обязательно через apt-get...?
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
13.02.2017, 21:04 14
Цитата Сообщение от Zigfrid Посмотреть сообщение
А почему у Вас вот тут так странно
У меня точка после 64 - опечатка (после копипаста случайно нажал клавишу). Выше уже исправил.
Цитата Сообщение от Zigfrid Посмотреть сообщение
... листинг ...
Bash
1
2
# apt-get install syslinux-common
# cp /usr/lib/syslinux/memdisk other/
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
13.02.2017, 21:05  [ТС] 15
gng, то есть, у вас файл .raw, а должен ведь быть iso....?
0
919 / 636 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
13.02.2017, 21:08 16
Цитата Сообщение от Zigfrid Посмотреть сообщение
то есть, у вас файл .raw, а должен ведь быть iso....?
Файл iso. Строку я скопировал у вас и поменял имя файла.

Добавлено через 1 минуту
Bash
1
append iso initrd=other/ubuntu-14.04.4-server-amd64.iso raw
0
11 / 11 / 1
Регистрация: 24.11.2015
Сообщений: 359
13.02.2017, 21:29  [ТС] 17
Большое спасибо за ответы. Я вот сейчас исправил конфиг, сделал как у Вас и у меня перестало подниматься TFTP соединение...
Не знаю, в чем тут может быть причина? Вроде вещи то не связанные ...
Цитата Сообщение от Zigfrid Посмотреть сообщение
label wde в конфиге на label iso
Добавлено через 8 минут
Да.. Странно, но изменение этой строчки не позволяет работать tftp.... как вот так?
Все сделал по Вашему примеру..

Добавлено через 9 минут
Может быть, проблема то уже решена..
Не знаете, в чем может быть загвоздка и почему изменение строчки
Bash
1
label wde
на
Bash
1
 label iso
мешает TFTP ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2017, 21:29

Выбор дистрибутива
Доброго времени суток. Прошу подсказать, поднимал ли кто контроллер домена на SUSE или на чем-то...

Выбор дистрибутива
Нужно поставить Linux на виртуальную машину для изучения и программирования. Не знаю какой...

Выбор дистрибутива
Я новичек в Линуксе, но имею огромное желание его освоить... Ставил на виртуалки несколько...

Выбор дистрибутива
Совсем глупо) баян в н-ой степени. Не работал с Линуксом, однако хотелось бы узнать... какой дистр...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru