что такое pxe device
Что такое сетевая загрузка (PXE) и как ей можно пользоваться
Оригинал: What Is Network Booting (PXE) and How Can You Use It?
Автор: Aviad Raviv
Дата публикации: 14 апреля 2011
Перевод: Н.Ромоданов
Дата перевода: март 2014 г.
Требовалось ли вам когда-либо устранять проблемы или диагностировать проблемный компьютер, а вы при этом забыли, куда положили компакт диск с утилитами? Мы покажем вам, как пользоваться сетевой загрузкой (PXE) и пакетом FOG для того, чтобы эта проблема ушла в прошлое.
Обзор технологии PXE
Когда используется подход PXE, процесс загрузки изменяется с обычного на следующий:
Примечание: В этом видео в качестве основы для сервера используется устаревший проект UDA, и аннотации были предназначены для того, чтобы объяснить, что в него были внесены самые новые (на тот момент) дополнения.
Это руководство будет первым из серии руководств, посвященных PXE. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.
Рекомендации, допущения и предварительные требования
Установка — трудное начало с использованием системы FOG
FOG является свободным решением, предназначенным для клонирования компьютеров и имеющая открытый исходный код, которое было создано Чаком Суперски и Цзянь Чжаном ( Chuck Syperski и Jian Zhang ). FOG берет обычно используемое программное обеспечение (например, Apache, MySQL и tftpd-hpa упомянуть некоторые из них) и упаковывает их в виде свободного и самодостаточного решения PCLM (PC Lifecycle management), предназначенного для управления жизненным циклом ПК. Нужно упомянуть, что с помощью такого свободного решения PCLM можно с помощью единого центральный веб-интерфейса выполнять резервное копирование состояния компьютера путем создания его образа, развертывать программы и настройки (например, Firefox, Office, принтеры и т. д.), а также политики конфигурирования (например, настроек автоматического завершения сессии и экранной заставки).
Использование FOG в качестве основы для вашего сервера PXE является хорошим способом иметь в наличии все необходимые составляющие, например, TFTP и, если требуется, DHCP без необходимости устанавливать и настраивать их вручную, при одновременном предоставлении вам в качестве бонуса всех функций пакета FOG.
Изображение взято из FOG wiki.
Это все, что нужно сделать во время установки пакета FOG. Опять же, поскольку FOG представляет собой большую систему, ее использование не входит в круг рассмотрения данного руководства, и для того, чтобы вы могли лучше разобраться с возможностями системы FOG и с тем, как она может помочь вам управлять жизненным циклом ваших компьютеров-клиентов, мы призываем вас обратиться к вики-страницам с описанием этой системы.
Если все пройдет так, как надо, у вас должна быть возможность выполнить загрузку вашей клиентской машине в режиме PXE (обычно с помощью F12) и получить меню-приглашение, используемое в системе FOG по умолчанию.
Изображение получено с помощью Hotfortech.
Файлы и каталоги
Как отмечалось ранее, наша цель заключается в расширении возможности системы FOG и с этой целью мы должны добавить некоторые файлы и каталоги.
Создайте следующие подкаталоги:
Эти подкаталоги будут служить в качестве шаблонов для всех изображений, программ и конфигураций, которыми мы будем пользоваться для того, чтобы расширить систему FOG.
Настройте конфигурационный файл default, используемый по умолчанию
Мы создадим новое главное меню и поместим в свое собственное подменю все функции системы FOG.
Скопируйте конфигурационный файл /tftpboot/pxelinux.cfg/default в howtogeek/menus/fog.cfg.
Теперь отредактируйте содержимое исходного файла default, используемого по умолчанию:
Сделайте так, чтобы его содержимое выглядело следующим образом:
Когда мы закончим, эта конфигурация позволит вам получить следующие 3 подменю: Utilities (Утилиты), Manual FOGing (Ручное управление системой FOG), Linux stuff (Linux).
Создайте мастер-файл
Мастер-файл позволит делать глобальные изменения во внешнем виде меню без повторного ввода их в отдельном порядке снова и снова. Такие особенности, как фоновый рисунок, используемый по умолчанию, стили границ, позиции и т.д., все это будет объединено в этом файле master.cfg.
Сделайте так, чтобы его содержание было следующим:
В конфигурации, приведенной выше, будут созданы фиолетовые границы и выделение текста;, если вы хотите, чтобы внешний вид был другой, просто измените значения.
Чтобы задать фоновый рисунок, поместите картину в каталог /tftproot и укажите для MENU BACKGROUND относительный путь к рисунку (мы рекомендуем использовать изображения с разрешением 640*480). Например полный путь к рисунку, сконфигурированному выше, будет /tftproot/fog/bg.png.
Подключите подменю FOG к основному меню
Т.к. мы сделали простую копию оригинального конфигурационного файла в подкаталог меню (сохранив цветовую схему, тайм-ауты и прочее), то если вы теперь перейдете в это подменю из загруженного клиента PXE, оно будет работать, но вы не сможете вернуться в главное меню без перезагрузки машины.
Поэтому отредактируйте файл /tftpboot/howtogeek/menus/fog.cfg:
Добавьте следующую запись после записи «menu color title» и перед функциями FOG:
Создайте заготовки для подменю
Мы создали 4 подменю, три из которых будут нами заполнены. Для этого давайте создадим шаблон, которым мы будем пользоваться в дальнейшем.
Создайте файл шаблона:
Его содержимое должно быть следующим:
Давайте зададим заготовки для дополнительных подменю, которые нам потребуются в следующих статьях:
Вот и все, базовая компоновка теперь готова и теперь нам нужно будет ей пользоваться, что мы будем делать в следующих статьях. Поскольку эти статьи еще не опубликованы, мы рекомендуем ознакомиться с системой FOG, т.к. эта система сама по себе исключительно интересная.
Понимание загрузки PXE в диспетчере конфигурации
В этой статье описываются основные процессы загрузки среды выполнения пребута (PXE) в Диспетчер конфигурации, их работа и их межобъемлютная работа.
Оригинальная версия продукта: Configuration Manager (текущая ветвь), Microsoft System Center R2 Configuration Manager 2012, Microsoft System Center 2012
Исходный номер КБ: 4468601
Общие сведения
Загрузка среды предварительного выполнения (PXE) в System Center 2012 года (ConfigMgr 2012 или ConfigMgr 2012 R2) и более поздних версиях позволяет администраторам легко получить доступ к среде предварительной Windows (WinPE) через сеть с помощью PXE. PXE — это отраслевый стандарт, созданный корпорацией Intel, который предоставляет службы предварительной загрузки в прошивке устройств, что позволяет устройствам загружать сетевые программы загрузки на клиентские компьютеры.
Диспетчер конфигурации использует роль Windows служб развертывания (WDS) через поставщика WDS PXE. В configMgr 2012 и более поздних версиях поставщик SMS PXE (SMSPXE) регистрируется в службе WDS и обеспечивает логику запросов клиентов PXE.
Перед устранением проблем, связанных с PXE в Configuration Manager, важно понять основные процессы, связанные с ними, их работу и их работу.
Во всех случаях в этом документе мы используем System Center 2012 configuration Manager R2 Cumulative Update 2 (ConfigMgr 2012 R2 CU2) и систему удаленного сайта, установленную на Windows Server 2012 с установленной ролью точки рассылки (DP).
Установка точеки службы PXE
Сначала мы посмотрим на процессы, связанные с установкой поставщика SMSPXE.
Установка инициировалась путем выбора опции Включить поддержку PXE для клиентов на вкладке PXE в свойствах точеки распределения. При включенной поддержке PXE создается SMS_SCI_SysResUse экземпляр класса.
В пространстве имен WMI (где RR2 — код сайта сайта) класс содержит все роли систем сайта на Root\SMS\Site_RR2 SMS_SCI_SYSResUse основном сервере сайта. Вы можете выполнить следующий запрос в WBEMTEST, чтобы определить все DPs на этом сервере сайта:
Изменение свойств этих ролей с помощью SDK изменит файл управления сайтом и настроит DP. Имя свойства является членом свойства реквизита и устанавливается до 1 при включенной IsPXE DP PXE.
Компонент мониторинга базы данных SMS обнаруживает изменения в таблицы и таблицы и сбрасывает DPNotificaiton DistributionPoints файлы в distmgr.box:
Компонент Диспетчер рассылки на основном сервере сайта затем инициирует конфигурацию удаленного DP:
В журнале поставщика DP SMS на удаленном DP можно увидеть следующую информацию об установке PXE, где изначально не найден ключ PxeInstalled реестра:
Установлен Распространяемый компонент Visual C++:
Фильтры чтения TFTP настроены:
Создается REMINST доля и настраивается WDS:
На удаленном DP теперь можно увидеть следующие значения, добавленные HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\DP в:
PxeInstalled и IsPXE настроены на 1.
Если мы посмотрим на файловую систему удаленного DP, будет новый C:\SMS_DP$\sms\logs вход:
Теперь точка рассылки должна быть включена в PXE и готова принимать входящие запросы.
Добавление изображений загрузки в DP с поддержкой PXE
При настройке новой точки распространения с поддержкой PXE необходимо завершить дополнительные действия, чтобы включить полную функциональность. Одним из них является то, что необходимо распространить изображения загрузки x86 и x64 в новый DP с поддержкой PXE.
После этого диспетчер рассылки начнет обработку запроса и инициирует рассылку в удаленный DP:
Диспетчер переноса пакетов (DP удален) затем инициирует отправку контента:
Поставщик точеки рассылки SMS затем развертывает WIM в каталог удаленной установки:
SMSPXE открывает новое изображение:
Убедитесь, что эти изображения загрузки настроены для развертывания из DP с поддержкой PXE. Щелкните правой кнопкой мыши изображение загрузки и выберите источник данных свойств, а затем выберите Развертывание этого изображения загрузки из точки распространения с поддержкой > PXE.
Процесс загрузки PXE
Пример загрузки, описанный здесь, включает три машины: сервер DHCP, DP с поддержкой PXE и клиент (компьютер BIOS x64). Все они расположены в одной подсети.
Необходимо убедиться, что порты DHCP (67 и 68), TFTP (69) и BINL (4011) открыты между клиентом, сервером DHCP и включенной DP PXE.
В процессе загрузки PXE клиент должен сначала приобрести параметры TCP/IP и расположение сервера загрузки TFTP. После того как устройство включается и завершает POST, начинается процесс загрузки PXE (подсказывая с помощью меню выбора загрузки).
Первое, что делает прошивка PXE, — отправка DHCPDISCOVER (пакета UDP) для получения сведений о TCP/IP. Это включает список запросов параметров, а ниже приведен пример сетевого трассировки со списком параметров из пакета DHCPDISCOVER:
Клиент PXE затем идентифицирует поставщика и сведения, определенные для машины, чтобы запрашивать расположение и имя файла соответствующего файла изображений загрузки.
Затем сервер DHCP и DP с поддержкой PXE отправляют DHCPOFFER клиенту, содержащим все соответствующие параметры TCP/IP.
В приведенном ниже примере предложения DHCP в нем не содержится имя сервера или сведения о файле загрузки, так как это предложение с сервера DHCP, а не СДП с включенной поддержкой PXE.
Затем клиент отвечает DHCPREQUEST после выбора DHCPOFFER. Это содержит IP-адрес из выбранного предложения.
Сервер DHCP отвечает на DHCPREQUEST С помощью DHCPACK, который содержит те же сведения, что и DHCPOFFER. Имя хозяина сервера и имя файла загрузки здесь не предоставляются:
На данный момент у нас по-прежнему нет сведений о файле загрузки, однако теперь у клиента есть IP-адрес. Далее клиент PXE отправляет новый DHCPREQUEST в DP с поддержкой PXE после получения DHCPOFFER из предыдущей трансляции DHCPDISCOVER.
DP с поддержкой PXE отправляет DHCPACK, содержащий расположение BootFileName и программу загрузки сети WDS (NBP).
Загрузка файлов загрузки
После завершения беседы DHCP клиент запустит сеанс TFTP с запросом на чтение:
Сервер отвечает с помощью tsize, а затем blksize. Затем клиент будет передавать файл с сервера.
Размер этих блоков — blksize, и в этом случае он установлен до 1456 bytes. Blksize настраивается на Windows Server 2008 и более поздних версиях. См. в руб. Развертывание операционной системы по сети с помощью WDS сбой в Windows Server 2008 и в Windows Server 2008 R2.
Здесь можно увидеть конец беседы по DHCP и начало передачи TFTP:
NBPs являются как архитектурой, так и конкретными микропрограммами (BIOS или UEFI). На компьютерах BIOS NBP — это 16-битное приложение в реальном режиме, поэтому можно использовать один и тот же NBP для операционных систем на основе x86 и x64.
В нашем случае (машина BIOS x64) NBP расположен в следующем каталоге включенной DP PXE: \\remotedp\c$\RemoteInstall\SMSBoot\x64
Файлы выполняют следующие функции:
NBP загружает загрузчик операционной системы и файлы загрузки через TFTP, которые включают следующие:
RamDISK создается с помощью этих файлов и WIM-файла WinPE в памяти.
Клиентские сапоги из RAMDISK.
Загрузка WinPE
Чтобы получить доступ к этому входу WinPE, впейте командную подсказку на изображении загрузки. Для этого щелкните правой кнопкой мыши настройка свойств boot Image, а затем проверьте включить поддержку команды > > (только тестирование). Затем можно получить доступ к командной подсказке, нажав F8 в WinPE.
Вот начальный процесс оболочки загрузки TS:
После этого загрузочный ремень Task Sequence Manager:
После загрузки TSPXE она загружает переменные TS с помощью TFTP:
На этом этапе TSPXE находит пункт управления (MP) и скачивает политику перед тем, как представить пользовательский интерфейс для пользователя, чтобы выбрать необязательный последовательность задач:
Наконец, загружаются переменные коллекции и машины и активируется страница Welcome:
Дополнительные сведения
Дополнительные сведения о устранении неполадок с загрузкой PXE см. в следующих статьях:
PXE — грузим всё! Осваиваем мультизагрузку по локальной сети
Содержание статьи
Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.
Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера. Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8. В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).
Xakep #201. Как стать киборгом
У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.
LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE — инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».
Главное меню загрузки PXE, графический режим
Что будем реализовывать?
Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.
Собираем все в кучу и взлетаем
В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:
Обрати внимание, параметр TFTP_DIRECTORY=»/var/lib/tftpboot» указывает место расположения корневого каталога TFTP-сервера. После сохранения перезапускаем удобным для себя способом:
Далее настроим DHCP-сервер. Приведу простую конфигурацию файла /etc/dhcp/dhcpd.conf:
Данная конфигурация говорит о том, что DHCP-сервер работает в локальной сети 192.168.0.0/24. Клиенту присваиваются адреса из диапазона 192.168.0.150–192.168.0.200, им будут присвоены параметры шлюза — 192.168.0.1, DNS-сервера — 192.168.0.2 и 192.168.0.5. Класс pxeclients, а именно параметр filename — это имя файла загрузчика, расположенного в корневой папке TFTP-сервера, в нашем случае /var/lib/tftpboot/pxelinux.0, на сервере с адресом 192.168.0.10.
Syslinux. Ставим загрузчик
В качестве загрузчика будем использовать Syslinux. Последнюю версию можно взять здесь. Распаковываем и кладем в /var/lib/tftpboot следующие файлы: ldlinux.c32, libcom32.c32, pxelinux.0 и lpxelinux.0 и каталог boot, в который складываем chain.c32, ldlinux.c32, libcom32.c32, libcom32.elf, libutil.c32, linux.c32, memdisk, menu.c32, vesamenu.c32 (menu.c32 — только текстовое меню, vesamenu.c32 позволяет украсить меню, например добавив фон). Файл меню загрузки по умолчанию должен находиться в /var/lib/tftpboot/pxelinux.cfg/default и иметь вид
На этом этапе загрузчик должен работать и иметь единственный пункт меню «Загрузка с первого жесткого диска». Далее необходимо создать подменю. Чтобы не путаться и не городить огромные файлы, рекомендую вынести подпункты в отдельные файлы меню, например так:
Все, что относится к разделу меню Install/Boot Linux, вынесем в отдельный файл /var/lib/tftpboot/linux. Аналогично выносятся другие пункты меню. Остальные параметры загрузки рассмотрим при добавлении каждого пункта/продукта.
Раздел Linux. Готовим на примере Ubuntu 14.04
Тонкие клиенты / Thinstation Linux
Acronis
Продукты Acronis загружаются аналогично инсталляторам Linux-систем. Скачал в Сети первый попавшийся образ Acronis, исключительно в научных целях. Распаковал. Нас интересуют только два каталога: ADD12 и ATI2015. Внутри каждого каталога видим по два файла с одинаковым именем и разным расширением. Это сделано для загрузки на 32-битных и x64-системах. Если открыть файл menu.lst того же образа, можно посмотреть, что чему соответствует. Для удобства складываем True Image и Disk Director аналогичным образом. Создаем папку acronis в рабочем каталоге ( /var/lib/tftpboot ). В него копируем ADD12 и ATI2015 со всем содержимым. Для удобства продукты Acronis выносим в отдельный раздел меню, так же как и раздел Linux. В pxelinux.cfg/default добавляем:
Файл acronis приводим к такому виду:
Windows PE
Заключение
На этом всё. В следующей статье мы научимся подготавливать и добавлять Windows-образы, сетевой установке в ручном и автоматическом режимах. Добавим Kaspersky Rescue v10, ERD Commander, именуемый MSDaRT. Разберемся, как запускать диагностические утилиты на примере memtest, а также покажем, как украсить меню загрузки.
Александр «Plus» Рак
Участник сообщества OmskLUG. Инженер отдела электронного взаимодействия МКУ «Информационно-технического управления».
Что такое pxe device
На данной странице детально описывается процесс загрузки бездисковых Linux-станций с помощью PXE, а также рассказывается как с помощью программ проекта LTSP подготовить Linux-систему для использования в качестве сервера загрузки таких станций. Рассматривается процесс настройки всех необходимых компонентов (TFTP, DHCP, NFS-серверов), а также приводятся примеры их конфигурационных файлов.
Содержание
[править] Что такое PXE?
PXE (англ. Preboot Execution Environment, произносится пикси) — среда для загрузки компьютеров с помощью сетевой карты без использования жёстких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы. Для организации загрузки системы в PXE используются протоколы IP, UDP, DHCP и TFTP. PXE-код, прописанный в сетевой карте, получает загрузчик из сети, после чего передаёт ему управление.
[править] Загрузка Linux-системы с использованием PXE
Загрузку Linux-системы с помощью PXE можно выполнить с помощью загрузчика PXELINUX, созданного на базе SYSLINUX. PXELINUX загружается с помощью PXE-кода в сетевой карте, а затем ему передаётся управление. Код PXELINUX не нужно прописывать в чип на сетевой карте (если нужно именно это, см. проект etherboot).
[править] Предварительные данные
[править] Сетевые настройки
Сетевые интерфейсы настраиваются автоматически согласно файлу /etc/network/interfaces:
Интерфейс eth0 подключен к сети 10.0.0.0/8 и через него осуществляется выход в интернет.
Интерфейс eth1 подключен к сети 192.168.15.0/24, в которую подключаются тонкие клиенты.
Аллиас на интерфейсе eth1 eth1:1 необходим для соединения с терминальным сервером Windows.
Для осуществления возможности выхода в интернет, всем студентам с тонких клиентов настраивается firewall в таблице nat цепочки POSTROUTING (о чем говорит соответствующая строка в конфигурационном файле настройки сетевых интерфейсов):
Кроме настройки firewall необходимо включить forwarding. Иными словами, необходимо разрешить ядру операционной системы осуществлять проброс трафика с одного интерфейса на другой. Это можно сделать несколькими способами:
1. Строка в файле /etc/network/interfaces
Приведённый выше способ годится для ОС Debian/Linux и основанных на нём и может не работать в других ОС.
2. Строка в файле /etc/sysctl.conf
Но этот способ включения forwarding действует до первой перезагрузки, а для автоматического включения на этапе старта системы необходимо использовать первый или второй методы.
4. Файл /etc/network/options:
Приведённый выше способ годится для ОС Debian/Linux и основанных на нём и может не работать в других ОС.
Подходит к многим (если не всем) Linux, но также как и третий способ (см. выше) работает только до перезагрузки, для чего рекомендуется к помещению в стартовые скрипты. С другой стороны, большинство дистрибутивов предполагают свой способ включить forwarding пакетов и использовать лучше именно его.
[править] Операционная система
[править] Инсталляция и настройка DHCP-сервера
[править] Инсталляция DHCP-сервера
Анализ лог-файла /var/log/daemon.log говорит, что не описана сеть 192.168.15.0/24. Указанная сеть была определена автоматически, исходя из адреса интерфейса, на котором DHCP-сервер прослушивает запросы. По умолчанию этот интерфейс eth0. Конфигурационный файл dhcpd.conf не содержит описания этой сети.
Ниже мы отредактируем этот файл и опишем в нём названную сеть.
Сейчас этого делать не нужно.
[править] Настройка DHCP-сервера
Далее можно приступать к непосредственной настройке DHCP-сервера:
Вы можете ещё указать опцию:
для того случая, когда TFTP-сервер и DHCP-сервер разные. В противном случае TFTP-сервер ищется на самом DHCP-сервере.
Если загрузка не выполняется, попробуйте явным образом указать в качестве next-server машину, на которой расположен TFTP-сервер и файл pxelinux.cfg/default.
Конфигурационный файл практически ничем не отличается от файла по умолчанию. Клиентам будут выделяться IP-адреса из диапазона 192.168.15.200-192.168.15.220, указанного в range dynamic-bootp. В качестве DNS-сервера и шлюза используется хост 192.168.15.254.
Опции, имеющие непосредственно отношение к бездисковой загрузке:
[править] Запуск DHCP-сервера
[править] Инсталляция и настройка TFTP-сервера
[править] Инсталляция TFTP-сервера
Установите пакет tftpd-hpa (другие TFTP-серверы могут работать некорректно):
[править] Настройка TFTP-сервера
В момент завершения установки нам было сообщено о том, что TFTP-сервер по-умолчанию не работает в режиме демона, а будет запускаться через интернет-суперсервер inetd. Проверим на наличие строки его настройки в конфигурационном файле inetd:
Перезапустим интернет суперсервер:
И проверим выполняет ли интернет-суперсервер прослушивание порта 69 (порт TFTP):
На этом настройка TFTP-сервера завершена.
Я установил TFTP-server (apt-get install tftp-server), который умеет работать в режиме демона, запускается он так:
[править] Настройка pxelinux
[править] Настройка LTSP (Linux Terminal Server Project)
[править] Установка серверной части ltsp
Необходимо установить пакет ltsp-server. В качестве зависимостей от этого компонента, будет скачан и установлен сервер NFS (при условии, что он не был установлен ранее).
После установки нам рекомендовано добавить строку
в файл экспортирования файловых систем /etc/exports.
Корневая файловая система, которую будут использовать клиенты, находится в подкаталоге каталог /opt/ltsp. Она должна быть доступна через NFS. Можно изменить файл /etc/exports сейчас, а можно позже. Мы изменим позже.
[править] Настройка шлюза
Если нужно чтобы бездисковые клиенты могли получить доступ в Интернет через наш шлюз, необходимо настроить на этом шлюзе iptables и включить forwarding пакетов между интерфейсами.
Добавляем строки в /etc/network/interfaces
[править] Создание клиентского образа ltsp
Образ создаётся с помощью скрипта ltsp-build-client. В качестве аргументов скрипту необходимо указать:
В каталог, который будет для бездисковой станции корневым, проинсталлируется дистрибутив etch. В качестве источника пакетов указан локальный apt-proxy. Вместо него нужно указать соответствующее зеркало.
Необходимо экспортировать каталог, в котором находится корневая файловая система бездисковых клиентов.
Рекомендуется делать доступ к файловой системе в режиме read-only, дабы избежать конфликтов при совместном доступе.
Мы для экспериментов сделаем файловую систему доступной в режиме read-write. В режиме нормальной эксплуатации никогда не экспортируйте корневую систему бездисковых станций в режиме read-write, если точно не знаете к каким последствиям это приведёт!
Добавьте в файл /etc/exports строку:
Теперь, необходимо указать nfs-kernel-server демону чтобы он перечитал этот файл:
В ходе выполнения команды ltsp-build-client был также создан каталог /var/lib/tftpboot/ltsp/i386/ :
Конфигурационный файл сетевого загрузчика pxelinux находится в pxelinux.cfg/default корневого каталога дистрибутива.
Проверяется не только имя default/
Необходимо создать файл /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default:
В документации сказано, что использование initrd.img необязательно при использовании nfs. На практике же, далеко не всегда получается примонтировать nfs-систему из initrd.img. Желательно предоставить пользователю возможность выбора.
Не забудте создать файл /var/lib/tftpboot/ltsp/i386/boot.msg произвольного содержания. Он будет отображаться при загрузке. Его содержание, например, может быть таким:
Измените версию ядра и initrd образа, посмотреть какая у Вас версия можно тут: /var/lib/tftpboot/ltsp/i386
[править] Альтернатива LTSP (без привлечения сторонних пакетов)
Данный раздел позволяет создать клоны целевой системы. Данный раздел предоставляет сведения, полученные эмпирическим путём. Он довольно прост и опробован на практике, но не доведён до конца.
[править] Создание «базовой площадки»
Для работы операционки все необходимые файлы можно разбить на 3 категории:
Мы создадим «базовую площадку», которая инициализирует файловую систему с учётом вышеописанных принципов. Для упрощения, корневую файловую систему разместим в /ltsp
Для начала экспортируем всё необходимое. Затем возьмём за основу содержимое локального initrd.img. Мы экономить не будем, а поэтому закинем необходимые бинарники, а позже библиотеки к ним. Так же возьмём busybox в качестве шелла — вы сможете использовать /bin/ash в /init для отладочных целей. Так же нам необходима часть его функций для развёртывания. ifconfig нам нужен только для того, чтобы убедится в правильности назначения IP-адреса ядром. С помощью mount.nfs будем монтировать необходимое для работы, т.к. больше ничто не может нормально работать с nfs. Так же нам необходим FIFO-файл initctl в каталоге устройств для «общения» с init’ом.
Проверить, какие библиотеки используют скопированные бинарники можно командой ldd (ldd /sbin/ifconfig). У меня получилось всего 2:
/sbin/init запускается первым и остаётся первым всё время. При своём запуске он читает inittab, секцию sysinit. там у нас указано выполнение нашего /init. Это сделано, по большей части, для удобства редактирования.
При загрузке необходимы «свои» конфигурационные файлы. «Выстрелим из бочки» и cнимем копию с рабочей системы скопировав /etc, подправим его. Оригинальный inittab заменит наш файл и загрузка продолжится в исходном режиме. Для уменьшения размеров и ускорения его загрузки по сети, запакуем его и будем распаковывать при каждой загрузке. Так же при загрузке у нас уже, наверняка, будет сконфигурирована сеть, поэтому удалим соответствующие файлы.
Конечный результат выглядит так:
Далее нам остаётся настроить /init.
После загрузки у нас должна оказаться примонтированная /ltsp в качестве корневой системы, назначен IP-адрес (должна быть досягаема донорная система) и запущен на выполнение /sbin/init, а соответственно и /init.
Т.к. у нас всё изначально ro, то мы создадим временную (tmpfs) rw-систему в /sysroot и будем далее работать уже с ней. Создаём на ней необходимые каталоги для неизменяемых файлов и монтируем соответствующие экспортированные разделы донорной системы. Далее — распаковываем туда наш etc.tar.gz. Копируем туда же каталог с устройствами. После этого, переходим на /sysroot и делаем pivot-root тем самым подменяя файловую систему. После этого монтируем /proc и /sys системы. С этого момента дальнейшая загрузка возможна в теории, но многим программам необходим rw-доступ в определённые места. Есть так же ряд тонкостей, которые необходимо подправить; переменная PATH — одна из них. Нам так же надо привести в соответствие файл /etc/mtab с текущим состоянием системы. В конце файла мы передаём управление скрипту, который подменили собой.
Данный метод опробирован на VMWare и Linux Mandiva 2008 DVD. Система загружается и работает, но процесс загрузки всё ещё имеет шероховатости. Завершение работы так же не блещет изяществом.
Если у вас что-либо не получится — можете вынести этот вопрос здесь на страницу обсуждения. Я постараюсь вам ответить.
[править] Подготовка клиентского ядра и initrd
Необходимо подготовить ядро, под управлением которого будут работать клиентские станции.
При конфигурировании клиентского ядра обязательно нужно включить:
Ниже будет рассмотренно, как это осуществить
Для начала необходимо выяснить, какой модуль ответственнен за сетевую карту. На работающей машине сделайте:
допустим, мы получили alias eth0 pcnet32. После этого, нам необходимо выяснить, как она включается в ядро.
Так мы узнаем, в каком каталоге лежат файлы, ответственные за модуль. Для драйверов сетевых карт это
Осталось только узнать define-variable для модуля.
В выводе будет что-то похожее на CONFIG_PCNET32. Далеко не у всех модулей имя define-variable совпадает с именем модуля. Осталось только
Заодно можно выставить оптимизацию под конкретный процессор и отключить неиспользуемые модули. Например IrDA, BlueTooth или IDE-через-LPT.
В том случае, если какой-либо из необходимых для загрузки и монтирования корневой файловой системы, драйвер нельзя (или не хочется) по какой-либо причине включить в ядро, необходимо подготовить виртуальный загрузочный диск initrd.
Если бездисковый клиент будет загружать не только ядро Linux, но и initrd, нужно сделать соответствующие изменения в конфигурационном файле pxelinux.cfg/:
[править] Дополнительная информация
Установка операционной системы через PXE:
[править] Материалы на Xgu.ru посвящённые загрузке системы
[править] Приложения
[править] Конфигурационные файлы
[править] /etc/dhcp.conf
[править] /etc/exports
Вместо rw, лучше использовать ro, в противном случае возможны ошибки при совместном доступе.
[править] /etc/inetd.conf
[править] /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
Пример конфигурационного файла PXELINUX.
В этом примере в загрузке есть три пункта меню: