Различия между версиями 1 и 2
Версия 1 от 2008-07-23 12:29:02
Размер: 10367
Редактор: eSyr
Комментарий:
Версия 2 от 2008-08-06 11:29:25
Размер: 20942
Редактор: ConstantinYershow
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
Мы перебираемся к такой большй теме, как развертывание класса, и рассказ об этом будет организован послойно.
Строка 3: Строка 4:
Перебираемся к сетевой загрузке. Мы перебиаремся к такй бльшй теме, как орг. класса, и расск. будет вестить послйно. ==== Отступление: терминальный сервер ====
Терминал-сервер. Лектор вспоминает его, просто чтобы его упомянуть. В состав ПСПО входит 4 дистрибутива: мастер (большой), юниор (средний), лайт (маленький, для дохлых компьютеров) и терминал-сервер для ситуации, когда одна машина нормальная, а остальные никакие. Терминал-сервер содержит в себе концепцию класса, но специфическую, когда никакого администрирования на клиентских машинах не производится, более того, на локальных машинах можно даже не иметь винчестера, главное - научить их загружаться через сеть. Это можно сделать путём сетевой загрузки, по протоколу PXE, а можно подсунуть дискету/сидюк, лишь бы это приводило к тому, что они хотят загружаться из сети. Далее на клиентских машинах разворачивается только х-сервер (та часть графической оболочки, которая умеет рисовать и работает с мышью и клавиатурой) и больше ничего, за исключением всяких хитростей по доступу к флешкам и т.п. После чего эти машины подключаются по протколу взаимодействия графических подсистем, который называется xdmcp, к серверу, и запуск всех приложений происходит на сервере. Сервер должен быть хорошей машиной; лектор полагает, что любая современная машина подойдёт для класса из 10 компьютеров. 256 мб памяти на одного пользователя (полноценный развесистый терминальный сеанс) хватает с запасом. Если вы ограничены в средствах, считается так: 256 мб на сам сервер + 128 мб на каждый терминальный сеанс. 8 машин на гигабайте работают легко, 10 машин на гигабайте работают уже с некоим скрипом. Если 16 машин работают на 2 гб, начинаются проблемы с быстродействием дисковой подсистемы, когда у вас во столько же раз больше процессов, во сколько раз больше пользователей, и каждый из них чего-то в каком-то месте хочет. Оптимальный вариант - машина с двумя винчестерами, которые работают как один большой, и, соответственно, в два раза быстрее. Другой вариант - увеличить объём памяти и, соответственно, дискового кэша, чтобы всё это в памяти болталось. Чем хорош терминальный сервер - вы не администрируете локальные машины в принципе. Это - просто железяка, она включается и работает. Когда-нибудь в будущем вы воовще можете их выбросить и купить не полноценные компьютеры, а так называемые терминалы. У которых есть монитор (хороший), клавиатура (тоже хорошая) и сисблок без винчестера, с минимальной памятью, лишь бы он работал. Администрирование сокращается во столько раз, во сколько раз у вас меньше компьютеров: ну, сгорит один, из запасника можно достать другой, воткнуть - и всё продолжит работать.
(конец отступления)
Строка 5: Строка 8:
Терминал-сервер. Мы возвращаемся к ситуации, когда необходимо, чтобы на локальных машинах была установлена операционная система. Что нужно для того, чтобы происходила сетевая установка (написанное здесь специфично для альтлинукса): нужно организовать сетевую загрузку машины. Для этого нужно, прежде всего, установить DHCPD (Dynamic Host Configuring Protocol Daemon), пакет называется dhcp-server. Он есть в дистрибутиве "мастер". Dynamic Host Configuring Protocol значит - "протокол динамической настройки компьютера". По включении компьютера по определённым правилам вы ему скармливаете набор настроек. Вообще говоря, пртокол очень сложный, он позволяет передавать сотни настроек, причём настройки разного уровня, в том числе и с точки зрения сетевых протоколов. Например, раздача IP может быть организована динамически (каждому новому компьютеру будет выдаваться очередной IP адрес из набора) - если вас не очень волнует, что в вашу сеть включится кто-то лишний, либо по MAC-адресам (каждому MAC-адресу соответствует свой жёстко определённый IPшник). Бывают и другие варианты, всё зависит от того, насколько возможно решить задачу административным путём. В любом случае dhcp не помешает в классе. Даже если вы не планируете сетевую загрузку, в особенности, если в вашем учреждении не один сегмент сети и вы хотите, чтобы с пользовательской машины был доступ не только до сервера, но и куда-то дальше, было бы неплохо настроить на них IP-адреса. Либо это делается руками при установке, либо с помощью DHCP.
Строка 7: Строка 10:
В состав ПСПО входлит 4 дистрибутива: мастер, юниор, лайт и терминал-сервер для ситуции, когда одна машина нрмальная, а остальные никакие. Эта ситуация позв. не адм. клиентские машины, ни загружаются по либо совсем по сети (PXE), мжно подсунуть дискету/сидюк, чтбы в итге оно пдтягивало вё по сети. Потом на кл. машинах разв. тольк х-сервер и больше ничего. После чего эти машины подкл. по протколу xdmcp, и вся рабта происх. на сервере. При этом основные проблемы с памятью и дисковой подсистемой. Конфигурационный файл dhcpd лежит в /etc/dhcpd.conf. Обратим внимание на две вещи: все сети, которыев вашей машине есть, должны быть описаны. Дело в том, что DHCPD - капризный демон, если он видит сеть, которая в нём не описана, отказывается работать. Кстати, в одной локальной сети должен быть только один DHCP сервер. Какие настройки он умеет отдавать?
 * IP-адрес. В данном случае мы видим пример динамической отдачи IP-адреса. Другой вариант - написать "машина такая-то" (указывать MAC-адрес) и указать, какой ip выдавать ему.
 * Маршрутизатор по умолчанию
 * Сервер dns, он называется неймсервер, служба, которая преобразует IP-адреса в доменные имена и обратно, она устроена как распределённая база данных.
 * Все настройки вроде сетевой маски.
 * Имя домена по умолчанию.
Строка 9: Строка 17:
Чем он хорош --- не адм. клиентские машины в принципе. Если выпустить из внимания две другие настройки, filename и nextserver, которые нужны именно для сетевой загрузки, то машина будет раздавать всем компьютерам в локальной сети адреса из указанного диапазона. Любая машина с установленным альтом, если ей сказать "настроить сеть автоматически", запускет клиент к dhcp, который назвается dhcpcd.
Строка 11: Строка 19:
Возвр. к архитектуре без терм. сервера. Возвращаемся к настройке. Итак, dhcp настроен. Есть ещё две волшебных настройки, связанных с сетевой загрузкой: чтобы она работала (то есть передача по сети не только каких-то настроек, но и файлов на компьютер), со стороны компьютеров необходимо, чтобы в них работала сетевая загрузка. Как правило, об этом свидетельствуют слова в настройках биоса о том, что загрузочным устройством является сеть, int 18 или там 19, либо вы покупаете сетевую карту, на которой есть бутром, то есть прошивка для сетевой загрузки. При включении компьютера с такой сетевой картой вам говорят: "нажмите, там, Alt+B, Shift+F10 или какое-то ещё волшебное сочетание, чтобы настроить параметры сетевой загрузки". В этй сетевой загрузке может быть много вариантов, правильно выбирать PXE. Оно включает в себя и получение настроек по dhcp, и ещё кое-чего, о чём будет сказано ниже. Итак, чтобы работали сетевая загрузка и установка, нужно, чтобы на клиентах поддерживался протокол pxe, они должны быть подключены к локальной сети и к серверу, где есть dhcp, и на сервере должен быть специальный демон, называемый tftp (trivial file transfer potocol) сервер (специальный протокол передачи файлов, крайне упрощённый, чтобы его клиентскую часть (то есть программу, которая умеет скачивать файлы согласно этому протоколу) можно было запихать в память сетевой карточки). Собственно, пресловутый бутром и есть программа, записанная в пзу сетевой карты, которая загружается в оперативную память и заниимается ровно одной вещью: по протоколу pxe получает настройки по dhcp/bootp, потом сообразно этим настройкам получает информацию о том, откуда брать специальный файл - загрузчик, скачивает его, загружает в память и запускает его. В отличие от ситуации, когда у вас передаётся только сетевая настройка, в протокол pxe входит стадия скачивания некое программы и запуска её. Это всё делает прошивка в сетевой карте. На сервере должен быть некий демон, tftp, которому и подкладывается эта специальная программа. Тем самым организёется каталог /var/lib/tftp/boot, в который можно помещать файлы, кторые будут скчиваться по протоколу tftp, как если бы они лежали в корне. Дальше есть множество разных вариантов. Здесь требуется поставить пакет syslinux. Лектор напоминает, пакет syslinux - пакет загрузчиков, который позволяет загружать linux с разных ностителей, в частности, загрузчик pxelinux, и некоторые программы, которые сопутствуют этому делу.
Строка 13: Строка 21:
Необх., чтбы на лок. машинах была уст. перационная система. Что нужно для того, чтбы происх. сетевая установка (установка альтлинукса): нужно орг. сетевую загрузку машины. Для этого нужно установить пакет dhcp-server. DHCP-сервер ---- Dynamic Host Configuring Protocol --- речь вт о чём ---- при вкл. кмпьютера по пр. правилам скармливаете набр настроек. Вообще говоря, пртокол очень сложный, он выдаёт сотни настроек, причём настройки разного уровня. Например, раздача IP может быть как динамически из пула, либо по MAC-адресам. В любом случае dhcp не помешает в классе. Даже если не планируете сетевую загрузку, то в случае развестистй сети ... . Посмотрим некоторые из них. Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть файлы нескольких форматов: .bin, .com, .c32, .0 ... которые предназначены для загрузки в разные среды. В частности, те, которые загружаются прямо в сетевую карточку называются .0 и .c32. Есть документация, её формат назыается .doc, но если вы думаете, что она в формате microsoft document, вы ошибаетесь. Memdisk - очень хорошая штука, позволяет по сети подгрузить memdisk, а к нему образ дискеты, то есть, фактически сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал menu и vesamenu. Что такое menu - файл syslinux.conf (похожий на lilo.conf) можно подгрузить по сети, чтобы пользователь при сетевой загрузке выбрал, какой вариант он хочет загрузить. То есть, подгрузить по сети сначала меню, а потом уже настоящую сетевую загрузку. Если же сетевая карта поддерживает vbe1, то можно сделать графическое меню с разными красивостями. Вот это и есть vesamenu.
Строка 15: Строка 23:
Псмотрим /etc/dhcpd.conf: Нас, конечно, будет в первую очередь интересовать загручзчик pxelinux.0. В терминологии последовательности загрузки это - вторичный загрузчик, то есть тот, который должен загружаться не из пзу, а непосредственно с устройства. Основная его задача - подгрузить откуда-то ядро и стартовый виртуальный диск. Загрузка этих двух файлов - это то, с чего начитнается загрузка linux. Ядро - это ядро, а в стартовом виртуальном диске находится очень маленький линукс, который содержит все модули, нужные для дальнейшей загрузки и работы системы. У него (pxelinux) есть конфигурационный файл, загружаемый прежде всего, в котором написано, что грузить дальше. В нём можно сделать несколько разных вариантов выбора.
Строка 17: Строка 25:
Обратим внимание, что все подсети должны быть описаны. Для удобства работы с сетью, pxelinux.0 загружает конфигурационный файл по определённым правилам. pxelinux сначала пытается загрузить конфигурационный файл, который по имени совпадает с шестнадцатеричным представлением полученного по pxe IP-адреса. Если на вашей машине это не работает, значит, бутром у вас просто выключен. Зачем так сделано? Есть жёсткая привязка к mac-адресу машины; для каждой машины можно иметь собственную настройку, есть привязка к IP адресу компьютера или целой сети, и можно машины с одними IP адресами загружать по одной конфигурации, а другие, у которых сеть другая, по другой конфигурации.
Строка 19: Строка 27:
Какие настройки он умеет отдавать? IP-адрес. В данном случае тдаётся динамический. Другой вариант --- указывать мак и ip в нём. Маршрутизатор по умолчанию. Неймсервер. Все настройки, вроде сетевой маски. Имя домена. Рассмотрим конфигурационный файл default.
{{{
timeout 0
prompt 1
default install
label install
 kernel install/vmlinuz
 append initrd=install/full.cz fastboot automatic=method:nfs,network:dhcp,server:10.30.2.1,directory:/srv/boot/lite ai live stagename=altinst
}}}
Синтаксис слегка замороченный, но ничего сложного нет. prompt означает, ожидать ли подсказки, timeout 0 означает ждать, пока пользователь не нажмёт enter. Тут есть один хак: если включён num lock, он будет ждать, а если выключен - нет. Дальше идут настройки для конкретной загрузки. label означает некое имя загрузки. Его, кстати, можно в ответ на подсказку написать - не то, которое по умолчанию, а какое-то. Дальше нужно указать, как называется ядро. Дальше нам нужно указать, какие у этого ядра параметры, параметр initrd=файл - его разбирает сам syslinux, он загружает этот файл тоже, потому что это стартовый виртуальный диск, остальные параметры, которые он не понимает, он передаёт ядру. Всё это документированно на сайте freesourseinfo.
Строка 21: Строка 38:
Если выпустить из внемания две другие настр., которые как раз нужны для сетевой загрузки, то нормальн будут раздаваться настройки сети. Любая машина с уст. альтм, если ей сказать "настр. сеть автоматически", запускет dhcpcd.

Возвр. к настр. Итак, dhcp настрен. Есть ещё 2 волшебных натр., связанных с сетевой загр.: чтобы на работала (передача файлов на компьютер). С стороны компьюетров необх., чтобы работала сетевая загрузка. В этй сетевой загр. мжет быть много вариантов, правильно выбирать PXE. Оно включает в себя и включение настроек по dhcp, и ещё кое-чего. Итк, тчобы работали сетевая загр. и устнновка, нужно, чобы на клиентах поддерживался протокол pxe, и на сервере должен быть tftp сервер, специальный протокол передачи файлов, крайне упрщённый, чтобы ег клиентскую часть можно было запихать в память сетевой картчки. СобственноЫ, пресловутый бутром и есть программа, записанная в пзу сетевй карты, загр., работает, плучает настрйки по dhcp/bootp, потом сообразно этим настрйкам понимает, откуда брать специальный файл щагрузчик, чтобы скачать и запустить его. Это всё делает прошивка в сетевой карте. На сервере должен быть некий демон, tftp, которому и пдкл. спец. программу. Тем самым рог. каталог в /var/lib/tftp/boot, в который можн помещать файлы, кторый будут скчиваться файлы п tftp, как если бы ни лежали в корне. Дальше есть мн-во разных вариантов. Здесь требуется поставить акет syslinux. Лектор напоминает, пакет syslibux --- пакет згрузчиков, позв. загружать linux с разных ностиелей, в частнсти, pxelinux, и некоторых прграмм, которые сопутствуют этму делу. Псмотрим нек-рые из них. Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть неск. форматов файлы: bin, com, ..., кторые предн. для загрузки в разные среды . В частности, для сетевых карточек .0 и .c32. Есть документация. memdisk --- чень хорошая штука, позв. по сети подгрузить memdisk, а потом ему образ дискеты, факт. сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал... menu и vesamenu. menu --- в книжке по линуксу и по уст. будет написано про загр., про лило. В частнсти, lilo.conf., аналогичный фал можно подгр. п сети, чтбы польз. выбрал, какой вриант он хчет загрузить. Т есть подгр. по сети значала меню, а потом уже сотв сетевую загрузку. Если же сетевуха поддерж. vbe, то можно сделать граф. меню.

Нас, конечно, будет в перв. очередь инт .загручзчик pxelibux.0. В терм. згрузки эт вторичный. загрузчик. Осн. задача его --- подгрузить откуда-то ядро и стартовый вирт. диск. Это то, с чего начитнается загрузка linux. В загр. бразе содерж. всё небх. для загр. и нач. старта системы. У нег (pxelinux) есть конф. файл, который н первым делом загр., и смотрит, чт делать дальше. Моэжно сделать неск. разных вариантов выбора. Мы сейчас посм. и сделаем сетевую загр. чег-нибудь этакого. Напр., сделаем сетевую загр. livecd, и испр. в нём багу. Не будем делать.

Для удобства работы с сеть, pxelinux.0 загр. кнф. файл по опр. правилам.: видели, когда сетевая загрузка, т там такой треугольничек. pxelinux сначала прытается загрузить конфиг, соотв маку, птом начинает пробовать имена, сотв. разл. подсетям, в кторых лежит данный ip (отрезая за раз по 4 бита с конца)

Рассм. конфиг. файл default. Синтаксис довольн простой. (numlock!) Дальше идут настр. для конкр. загрузки. Имя, птом надо указать, как наз. ядро, дальше надо указать, какие у ядр параметры. Параметр initrd=file (его разб. и syslinux, поск. н его тоже подгружает, ост. не разбирает, а протсо передаёт) говорит, какой исп. загр. образа.

Как сделать на подсеть: подложить соотв. конфиг. На уровне dhcp можно выделить диапазон, внутри кторого будете отдавать pxe, а остальным не тдавать pxe
Как сделать установку на конкретный диапазон: создать соответствующий конфигурационный файл на конкретный диапазон IP адресов (с соответствующим именем) рядом с default'ом. На уровне dhcp можно выделить диапазон, внутри кторого вы будете отдавать pxe и другой диапазон, внутри кторого вы не будете отдавать pxe.
Строка 39: Строка 46:
|| 0 || 1 || 1 || 1 || || 1 || ConstantinYershow, VladimirLysikov, VsevolodKrishchenko || || || || 20 || 1 || 1 || 1 || || 1 || ConstantinYershow, VladimirLysikov, VsevolodKrishchenko || || ||

Сетевая загрузка

Мы перебираемся к такой большй теме, как развертывание класса, и рассказ об этом будет организован послойно.

Отступление: терминальный сервер

Терминал-сервер. Лектор вспоминает его, просто чтобы его упомянуть. В состав ПСПО входит 4 дистрибутива: мастер (большой), юниор (средний), лайт (маленький, для дохлых компьютеров) и терминал-сервер для ситуации, когда одна машина нормальная, а остальные никакие. Терминал-сервер содержит в себе концепцию класса, но специфическую, когда никакого администрирования на клиентских машинах не производится, более того, на локальных машинах можно даже не иметь винчестера, главное - научить их загружаться через сеть. Это можно сделать путём сетевой загрузки, по протоколу PXE, а можно подсунуть дискету/сидюк, лишь бы это приводило к тому, что они хотят загружаться из сети. Далее на клиентских машинах разворачивается только х-сервер (та часть графической оболочки, которая умеет рисовать и работает с мышью и клавиатурой) и больше ничего, за исключением всяких хитростей по доступу к флешкам и т.п. После чего эти машины подключаются по протколу взаимодействия графических подсистем, который называется xdmcp, к серверу, и запуск всех приложений происходит на сервере. Сервер должен быть хорошей машиной; лектор полагает, что любая современная машина подойдёт для класса из 10 компьютеров. 256 мб памяти на одного пользователя (полноценный развесистый терминальный сеанс) хватает с запасом. Если вы ограничены в средствах, считается так: 256 мб на сам сервер + 128 мб на каждый терминальный сеанс. 8 машин на гигабайте работают легко, 10 машин на гигабайте работают уже с некоим скрипом. Если 16 машин работают на 2 гб, начинаются проблемы с быстродействием дисковой подсистемы, когда у вас во столько же раз больше процессов, во сколько раз больше пользователей, и каждый из них чего-то в каком-то месте хочет. Оптимальный вариант - машина с двумя винчестерами, которые работают как один большой, и, соответственно, в два раза быстрее. Другой вариант - увеличить объём памяти и, соответственно, дискового кэша, чтобы всё это в памяти болталось. Чем хорош терминальный сервер - вы не администрируете локальные машины в принципе. Это - просто железяка, она включается и работает. Когда-нибудь в будущем вы воовще можете их выбросить и купить не полноценные компьютеры, а так называемые терминалы. У которых есть монитор (хороший), клавиатура (тоже хорошая) и сисблок без винчестера, с минимальной памятью, лишь бы он работал. Администрирование сокращается во столько раз, во сколько раз у вас меньше компьютеров: ну, сгорит один, из запасника можно достать другой, воткнуть - и всё продолжит работать. (конец отступления)

Мы возвращаемся к ситуации, когда необходимо, чтобы на локальных машинах была установлена операционная система. Что нужно для того, чтобы происходила сетевая установка (написанное здесь специфично для альтлинукса): нужно организовать сетевую загрузку машины. Для этого нужно, прежде всего, установить DHCPD (Dynamic Host Configuring Protocol Daemon), пакет называется dhcp-server. Он есть в дистрибутиве "мастер". Dynamic Host Configuring Protocol значит - "протокол динамической настройки компьютера". По включении компьютера по определённым правилам вы ему скармливаете набор настроек. Вообще говоря, пртокол очень сложный, он позволяет передавать сотни настроек, причём настройки разного уровня, в том числе и с точки зрения сетевых протоколов. Например, раздача IP может быть организована динамически (каждому новому компьютеру будет выдаваться очередной IP адрес из набора) - если вас не очень волнует, что в вашу сеть включится кто-то лишний, либо по MAC-адресам (каждому MAC-адресу соответствует свой жёстко определённый IPшник). Бывают и другие варианты, всё зависит от того, насколько возможно решить задачу административным путём. В любом случае dhcp не помешает в классе. Даже если вы не планируете сетевую загрузку, в особенности, если в вашем учреждении не один сегмент сети и вы хотите, чтобы с пользовательской машины был доступ не только до сервера, но и куда-то дальше, было бы неплохо настроить на них IP-адреса. Либо это делается руками при установке, либо с помощью DHCP.

Конфигурационный файл dhcpd лежит в /etc/dhcpd.conf. Обратим внимание на две вещи: все сети, которыев вашей машине есть, должны быть описаны. Дело в том, что DHCPD - капризный демон, если он видит сеть, которая в нём не описана, отказывается работать. Кстати, в одной локальной сети должен быть только один DHCP сервер. Какие настройки он умеет отдавать?

  • IP-адрес. В данном случае мы видим пример динамической отдачи IP-адреса. Другой вариант - написать "машина такая-то" (указывать MAC-адрес) и указать, какой ip выдавать ему.
  • Маршрутизатор по умолчанию
  • Сервер dns, он называется неймсервер, служба, которая преобразует IP-адреса в доменные имена и обратно, она устроена как распределённая база данных.
  • Все настройки вроде сетевой маски.
  • Имя домена по умолчанию.

Если выпустить из внимания две другие настройки, filename и nextserver, которые нужны именно для сетевой загрузки, то машина будет раздавать всем компьютерам в локальной сети адреса из указанного диапазона. Любая машина с установленным альтом, если ей сказать "настроить сеть автоматически", запускет клиент к dhcp, который назвается dhcpcd.

Возвращаемся к настройке. Итак, dhcp настроен. Есть ещё две волшебных настройки, связанных с сетевой загрузкой: чтобы она работала (то есть передача по сети не только каких-то настроек, но и файлов на компьютер), со стороны компьютеров необходимо, чтобы в них работала сетевая загрузка. Как правило, об этом свидетельствуют слова в настройках биоса о том, что загрузочным устройством является сеть, int 18 или там 19, либо вы покупаете сетевую карту, на которой есть бутром, то есть прошивка для сетевой загрузки. При включении компьютера с такой сетевой картой вам говорят: "нажмите, там, Alt+B, Shift+F10 или какое-то ещё волшебное сочетание, чтобы настроить параметры сетевой загрузки". В этй сетевой загрузке может быть много вариантов, правильно выбирать PXE. Оно включает в себя и получение настроек по dhcp, и ещё кое-чего, о чём будет сказано ниже. Итак, чтобы работали сетевая загрузка и установка, нужно, чтобы на клиентах поддерживался протокол pxe, они должны быть подключены к локальной сети и к серверу, где есть dhcp, и на сервере должен быть специальный демон, называемый tftp (trivial file transfer potocol) сервер (специальный протокол передачи файлов, крайне упрощённый, чтобы его клиентскую часть (то есть программу, которая умеет скачивать файлы согласно этому протоколу) можно было запихать в память сетевой карточки). Собственно, пресловутый бутром и есть программа, записанная в пзу сетевой карты, которая загружается в оперативную память и заниимается ровно одной вещью: по протоколу pxe получает настройки по dhcp/bootp, потом сообразно этим настройкам получает информацию о том, откуда брать специальный файл - загрузчик, скачивает его, загружает в память и запускает его. В отличие от ситуации, когда у вас передаётся только сетевая настройка, в протокол pxe входит стадия скачивания некое программы и запуска её. Это всё делает прошивка в сетевой карте. На сервере должен быть некий демон, tftp, которому и подкладывается эта специальная программа. Тем самым организёется каталог /var/lib/tftp/boot, в который можно помещать файлы, кторые будут скчиваться по протоколу tftp, как если бы они лежали в корне. Дальше есть множество разных вариантов. Здесь требуется поставить пакет syslinux. Лектор напоминает, пакет syslinux - пакет загрузчиков, который позволяет загружать linux с разных ностителей, в частности, загрузчик pxelinux, и некоторые программы, которые сопутствуют этому делу.

Посмотрим некоторые из них. Нас интересует содержимое каталога /usr/lib/syslinux/. Тут есть файлы нескольких форматов: .bin, .com, .c32, .0 ... которые предназначены для загрузки в разные среды. В частности, те, которые загружаются прямо в сетевую карточку называются .0 и .c32. Есть документация, её формат назыается .doc, но если вы думаете, что она в формате microsoft document, вы ошибаетесь. Memdisk - очень хорошая штука, позволяет по сети подгрузить memdisk, а к нему образ дискеты, то есть, фактически сэмулировать загрузку с дискетки на машине, где её нет. Ещё лектор использовал menu и vesamenu. Что такое menu - файл syslinux.conf (похожий на lilo.conf) можно подгрузить по сети, чтобы пользователь при сетевой загрузке выбрал, какой вариант он хочет загрузить. То есть, подгрузить по сети сначала меню, а потом уже настоящую сетевую загрузку. Если же сетевая карта поддерживает vbe1, то можно сделать графическое меню с разными красивостями. Вот это и есть vesamenu.

Нас, конечно, будет в первую очередь интересовать загручзчик pxelinux.0. В терминологии последовательности загрузки это - вторичный загрузчик, то есть тот, который должен загружаться не из пзу, а непосредственно с устройства. Основная его задача - подгрузить откуда-то ядро и стартовый виртуальный диск. Загрузка этих двух файлов - это то, с чего начитнается загрузка linux. Ядро - это ядро, а в стартовом виртуальном диске находится очень маленький линукс, который содержит все модули, нужные для дальнейшей загрузки и работы системы. У него (pxelinux) есть конфигурационный файл, загружаемый прежде всего, в котором написано, что грузить дальше. В нём можно сделать несколько разных вариантов выбора.

Для удобства работы с сетью, pxelinux.0 загружает конфигурационный файл по определённым правилам. pxelinux сначала пытается загрузить конфигурационный файл, который по имени совпадает с шестнадцатеричным представлением полученного по pxe IP-адреса. Если на вашей машине это не работает, значит, бутром у вас просто выключен. Зачем так сделано? Есть жёсткая привязка к mac-адресу машины; для каждой машины можно иметь собственную настройку, есть привязка к IP адресу компьютера или целой сети, и можно машины с одними IP адресами загружать по одной конфигурации, а другие, у которых сеть другая, по другой конфигурации.

Рассмотрим конфигурационный файл default.

timeout 0
prompt 1
default install
label install
 kernel install/vmlinuz
 append initrd=install/full.cz fastboot automatic=method:nfs,network:dhcp,server:10.30.2.1,directory:/srv/boot/lite ai live stagename=altinst

Синтаксис слегка замороченный, но ничего сложного нет. prompt означает, ожидать ли подсказки, timeout 0 означает ждать, пока пользователь не нажмёт enter. Тут есть один хак: если включён num lock, он будет ждать, а если выключен - нет. Дальше идут настройки для конкретной загрузки. label означает некое имя загрузки. Его, кстати, можно в ответ на подсказку написать - не то, которое по умолчанию, а какое-то. Дальше нужно указать, как называется ядро. Дальше нам нужно указать, какие у этого ядра параметры, параметр initrd=файл - его разбирает сам syslinux, он загружает этот файл тоже, потому что это стартовый виртуальный диск, остальные параметры, которые он не понимает, он передаёт ядру. Всё это документированно на сайте freesourseinfo.

Как сделать установку на конкретный диапазон: создать соответствующий конфигурационный файл на конкретный диапазон IP адресов (с соответствующим именем) рядом с default'ом. На уровне dhcp можно выделить диапазон, внутри кторого вы будете отдавать pxe и другой диапазон, внутри кторого вы не будете отдавать pxe.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

20

1

1

1

1

ConstantinYershow, VladimirLysikov, VsevolodKrishchenko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080722/02NetBoot (последним исправлял пользователь eSyr 2009-03-23 02:03:43)