Поддерживает ли сетевая карта pxe
Оригинал: What Is Network Booting (PXE) and How Can You Use It?
Автор: Aviad Raviv
Дата публикации: 14 апреля 2011
Перевод: Н.Ромоданов
Дата перевода: март 2014 г.
Требовалось ли вам когда-либо устранять проблемы или диагностировать проблемный компьютер, а вы при этом забыли, куда положили компакт диск с утилитами? Мы покажем вам, как пользоваться сетевой загрузкой (PXE) и пакетом FOG для того, чтобы эта проблема ушла в прошлое.
Рекомендации, допущения и предварительные требования
- Клиентская машина, на которой вы тестируете, поддерживает загрузку PXE и вы знаете, как ее включить.
- Это руководство было написано и протестировано с использованием Debian Squeeze, Ubuntu Server 9.10 и Linux Mint10. Поэтому предполагается, что у вас также есть система на основе Debian.
- У вас есть возможность посмотреть статью «Как настроит программный RAID» для «Простого файл-сервера» и «Как настроить всю сеть (802.3ad)» , поскольку скорость работы диска и пропускная способность для этого варианта сервера должны быть очень высокими. Настоятельно рекомендуется собирать такую сеть с использованием сервера с высокоотказоустойчивыми сетевыми и дисковыми подсистемами.
- Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему . Вы можете пользоваться любым другим редактором, который вам нравится.
Подключите подменю FOG к основному меню
Т.к. мы сделали простую копию оригинального конфигурационного файла в подкаталог меню (сохранив цветовую схему, тайм-ауты и прочее), то если вы теперь перейдете в это подменю из загруженного клиента PXE, оно будет работать, но вы не сможете вернуться в главное меню без перезагрузки машины.
Поэтому отредактируйте файл /tftpboot/howtogeek/menus/fog.cfg:
Добавьте следующую запись после записи «menu color title» и перед функциями FOG:
Настройте конфигурационный файл default, используемый по умолчанию
Мы создадим новое главное меню и поместим в свое собственное подменю все функции системы FOG.
Скопируйте конфигурационный файл /tftpboot/pxelinux.cfg/default в howtogeek/menus/fog.cfg.
Теперь отредактируйте содержимое исходного файла default, используемого по умолчанию:
Сделайте так, чтобы его содержимое выглядело следующим образом:
Когда мы закончим, эта конфигурация позволит вам получить следующие 3 подменю: Utilities (Утилиты), Manual FOGing (Ручное управление системой FOG), Linux stuff (Linux).
Обзор технологии PXE
Технология PXE (Pre Execution Environment — Среда предварительного исполнения), которая произносится как «Пикси» (Pixie - волшебная пыль), является подходом, который позволяет компьютеру (клиентскому компьютеру) загружаться, используя только свою сетевую карту. Этот метод загрузки был создан еще в 1999 году и если компьютер подключен к сети (и поддерживает этот стандарт), то можно обойти обычную процедуру загрузки (т. е. включение питания -> BIOS -> HD / CD) и сделать некоторые изящные вещи, начиная с поиска и устранения неисправностей, для чего обычно используется живая ОС liveOS, и даже снять образ машины …, но мы забегаем вперед - давайте вернемся к началу.
Когда используется подход PXE, процесс загрузки изменяется с обычного на следующий:
Включение питания -> BIOS -> стек PXE сетевой карты -> программа сетевой загрузки Network Boot Program (NBP), загружаемая с помощью TFTP с сервера в память клиентской машины -> ответственность за выполнение следующего шага возлагается на программу NBP (2-й этап загрузки).
Если использовать программу « PXElinux » NBP, то можно настроить сервер больше, чем просто для загрузки одной программы PXE для наших клиентов. В некотором смысле, это секретный ингредиент, который позволит нам выполнить все вышеперечисленное и даже больше. Для более подробного объяснения всего процесса, его истории и некоторые из имеющихся параметров настройки этой программы и программы gPXE (которая является более развитым клоном первой программы) смотрите эту лекцию на YouTube , предложенную разработчиками этих программ. Кроме того, ниже представлено видео, датированное 2008 годом, рассказывающее о настройке, что позволит быстро перейти к некоторым возможностям загрузки.
Примечание: В этом видео в качестве основы для сервера используется устаревший проект UDA, и аннотации были предназначены для того, чтобы объяснить, что в него были внесены самые новые (на тот момент) дополнения.
Это руководство будет первым из серии руководств, посвященных PXE. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.
Создайте заготовки для подменю
Мы создали 4 подменю, три из которых будут нами заполнены. Для этого давайте создадим шаблон, которым мы будем пользоваться в дальнейшем.
Создайте файл шаблона:
Его содержимое должно быть следующим:
Давайте зададим заготовки для дополнительных подменю, которые нам потребуются в следующих статьях:
Вот и все, базовая компоновка теперь готова и теперь нам нужно будет ей пользоваться, что мы будем делать в следующих статьях. Поскольку эти статьи еще не опубликованы, мы рекомендуем ознакомиться с системой FOG, т.к. эта система сама по себе исключительно интересная.
Конфигурация компьютера | |
Процессор: Intel Core 2 Duo E6750 (2.66GHz@3.0GHz) + кулер Thermaltake "TMG i1" CL-P0370 | |
Материнская плата: GIGABYTE GA-P35-S3 | |
Память: Patriot 2x1024Mb (800MHz) + Kinqston 2x1024Mb (800MHz) | |
HDD: WD 400Gb (7200,16MB) Sata-II + 2xWD 500Gb (7200, 16Mb) Sata-II (RAID-0) + Seagate (7200, 250Gb) | |
Видеокарта: Leadtek PX8800GT 512MB WinFast | |
Звук: Creative SB Audigy SE + Microlab Pro 2 | |
Блок питания: Hiper 580W сентябрь 2007 | |
CD/DVD: Asus 1814BLT | |
Монитор: ACER AL2016W (20") 16:10 | |
ОС: Windows 7 x86 Professional | |
Индекс производительности Windows: 5.9 | |
Прочее: UPS Ippon 800ВА |
volodja1966, обычно если карта поддерживает PXE (я так понимаю, речь идет о дискретной карте), то после POST'а такая карта сканирует сеть на предмет сервера RIS. Этот процесс довольно долгий и глазами заметить легко. Обычно это выглядит как мигающий курсор и за ним точки типа прогресс-бара досовского)))
Что касается материнок, то тут не все так гладко, т.к. функция LAN BOOT может просто быть выключена в БИОСе и тогда сетевушка PXE не использует. Тут только спецификации читать.
А вообще, правда
Если не приобретались отдельно какие-то древние убогие карточки, PXE будет везде, где есть загрузка с USB. » |
-------
Не все то windows, что висит.
Пока ты продолжаешь делать то, что делаешь, ты продолжаешь получать то, что получаешь.
Конфигурация компьютера | |
Процессор: Intel Core 2 Duo E6750 (2.66GHz@3.0GHz) + кулер Thermaltake "TMG i1" CL-P0370 | |
Материнская плата: GIGABYTE GA-P35-S3 | |
Память: Patriot 2x1024Mb (800MHz) + Kinqston 2x1024Mb (800MHz) | |
HDD: WD 400Gb (7200,16MB) Sata-II + 2xWD 500Gb (7200, 16Mb) Sata-II (RAID-0) + Seagate (7200, 250Gb) | |
Видеокарта: Leadtek PX8800GT 512MB WinFast | |
Звук: Creative SB Audigy SE + Microlab Pro 2 | |
Блок питания: Hiper 580W сентябрь 2007 | |
CD/DVD: Asus 1814BLT | |
Монитор: ACER AL2016W (20") 16:10 | |
ОС: Windows 7 x86 Professional | |
Индекс производительности Windows: 5.9 | |
Прочее: UPS Ippon 800ВА |
volodja1966, обычно если карта поддерживает PXE (я так понимаю, речь идет о дискретной карте), то после POST'а такая карта сканирует сеть на предмет сервера RIS. Этот процесс довольно долгий и глазами заметить легко. Обычно это выглядит как мигающий курсор и за ним точки типа прогресс-бара досовского)))
Что касается материнок, то тут не все так гладко, т.к. функция LAN BOOT может просто быть выключена в БИОСе и тогда сетевушка PXE не использует. Тут только спецификации читать.
А вообще, правда
Если не приобретались отдельно какие-то древние убогие карточки, PXE будет везде, где есть загрузка с USB. » |
-------
Не все то windows, что висит.
Пока ты продолжаешь делать то, что делаешь, ты продолжаешь получать то, что получаешь.
Конфигурация компьютера | |
Процессор: Intel Core 2 Duo E6750 (2.66GHz@3.0GHz) + кулер Thermaltake "TMG i1" CL-P0370 | |
Материнская плата: GIGABYTE GA-P35-S3 | |
Память: Patriot 2x1024Mb (800MHz) + Kinqston 2x1024Mb (800MHz) | |
HDD: WD 400Gb (7200,16MB) Sata-II + 2xWD 500Gb (7200, 16Mb) Sata-II (RAID-0) + Seagate (7200, 250Gb) | |
Видеокарта: Leadtek PX8800GT 512MB WinFast | |
Звук: Creative SB Audigy SE + Microlab Pro 2 | |
Блок питания: Hiper 580W сентябрь 2007 | |
CD/DVD: Asus 1814BLT | |
Монитор: ACER AL2016W (20") 16:10 | |
ОС: Windows 7 x86 Professional | |
Индекс производительности Windows: 5.9 | |
Прочее: UPS Ippon 800ВА |
volodja1966, обычно если карта поддерживает PXE (я так понимаю, речь идет о дискретной карте), то после POST'а такая карта сканирует сеть на предмет сервера RIS. Этот процесс довольно долгий и глазами заметить легко. Обычно это выглядит как мигающий курсор и за ним точки типа прогресс-бара досовского)))
Что касается материнок, то тут не все так гладко, т.к. функция LAN BOOT может просто быть выключена в БИОСе и тогда сетевушка PXE не использует. Тут только спецификации читать.
А вообще, правда
Если не приобретались отдельно какие-то древние убогие карточки, PXE будет везде, где есть загрузка с USB. » |
-------
Не все то windows, что висит.
Пока ты продолжаешь делать то, что делаешь, ты продолжаешь получать то, что получаешь.
Ядро собираю при помощи genkernel --no-clean --mdadm --lvm --disklabel --symlink all
--netboot не добавляю, потому что насколько я понял - это для загрузки с iso-образов дисков
dhclient initrd сам догадается выполнить?
А нормально ответить слабо? Я не понял, что нужно сделать.
Вообще говоря, для этого включена опция CONFIG_IP_PNP_DHCP=y
Вообще говоря, для этого включена опция CONFIG_IP_PNP_DHCP=y
Поиск по $KERNEL_SRC/Documentation показал, что для получения IP по DHCP надо передать ядру параметр ip=dhcp. Как именно это сделать я не знаю, т.к. никогда подобное не настраивал.
+ см. $KERNEL_SRC/Documentation/kernel-parameters.txt, $KERNEL_SRC/Documentation/filesystems/nfsroot.txt
Нормально это разжевать до минимальных понятий и всё такое? Это не линуксфорум и не форум убунты. Тут скажут куда копать, минимальное умственное усилие приложить придётся.
Я с этой темой знаком слабо. В tinycore, загрузку которого я обустроил по сети, dhclient вызывается в загрузочных скриптах внутри initrd.
для получения IP по DHCP надо передать ядру параметр ip=dhcp
Извиняюсь, не заметил.
А ты пробовал прописать статический IP-адрес, «в обход» DHCP?
А ты пробовал прописать статический IP-адрес
так же пробовал это делать одновременно
Это не линуксфорум и не форум убунты.
А мне кажется, что основная причина такая:
Блин, я похоже ещё не до конца проснулся.
А может попробовать собрать ядро полностью монолитно и без initramfs-образа? А то возможно какие-то скрипты оттуда сбрасывают настройки сети. Или сделать наоборот - заставить скрипты из initramfs запускать dhcp-клиент и выкинуть поддержку DHCP из ядра.
заставить скрипты из initramfs запускать dhcp-клиент
Как это сделать в gentoo ?
Возьми уже нормальный дистрибутив.
В общем, текущее состояние:
- без initramfs загружается, если строчка такая:
APPEND root=/dev/nfs ip=dhcp nfsroot=192.168.9.220:/var/tftp/preinstall,tcp rw
- если надо запускать с initramfs, то мне пока не удалось.
Использую строчки
в процессе загрузки запускается udhcpc (v1.7.4)
и говорит, что
На самом деле, root-path задан на dhcp сервере:
option root-path «192.168.9.220:/var/tftp/preinstall»;
кроме того, я вижу в wireshark, что он реально отдается по запросу:
Option: (t=17,l=34) Root Path = «192.168.9.220:/var/tftp/preinstall»
это не говоря о том, что прописан параметр ядра
Пока больше идей нет.
Ну зачем так делать? Тебе ж написали - сделай свой инитрд, там и монтируй. Эти все монтирования nfs из ядра - седая неподдерживаямая древность, которую написали до появления initrd. Ну не задача это ядра монтировать загадочные файловые системы. Ты б еще с cryptfs поверх obexfs попытался загрузиться через ядро.
1. взять любой минидистрибутив, в котором PXE из-коробки
2. посмотреть конфиги
3. поблагодарить анонимуса
сделай свой инитрд, там и монтируй.
3. поблагодарить анонимуса
Не за что его благодарить. Если бы он конкретно для gentoo сказал - было бы. А смотрение конфигов требует особых уличных скриптописательских навыков.
Тред не читал, читал начало, потому что пришел из другого топика, в который ты наспамил.
оказалось, строки, которые ты кидал - это ваши гентушные строки
Тебе уже предлагали взять другой дистр, в этом треде. Не хочешь - дебажь скрипт. Найди, как в него брейкнутся, и попробуй в шелле сделать то, что ты от него хочешь. Найди ошибку, багрепорт отправь в свой любимый генту.
А насчет того треда - сходи и поправься, вместо linux напиши gentoo, потому linux к твоим проблемам не имеет никакого отношения.
> Найди, как в него брейкнутся, и попробуй в шелле сделать то, что ты от него хочешь.
В настоящий момент у меня получилось загрузиться с initramfs.
Объединил все строки APPEND в одну в меню syslinux,
возможно дело было в этом.
В итоге pxelinux.cfg/default выглядит так:
Однако загрузка происходит не всегда.
Осталось два типа глюков:
1) иногда возникает такая ошибка:
rpcbind: server 192.168.9.220 not responding, timed out
Root-NFS: Unable to get nfsd port number from server, using default
.
Root-NFS: Unable to get mountd port number from server, using default
.
Root-NFS: Server returned error -5 while mounting /var/tftp/preinstall
2) загрузка по PXE работает для физической машины и не работает для виртуальной (виртуальная просто не видит DHCP сервер и не грузит syslinux)
На сервере:
net-misc/dhcp-3.1.2_p1
net-ftp/tftp-hpa-5.0
net-fs/nfs-utils-1.1.4-r1
На клиенте:
sys-boot/syslinux-3.71
sys-kernel/gentoo-sources-2.6.32
sys-kernel/genkernel-3.4.10.907
sys-apps/sysvinit-2.87-r3
sys-apps/openrc-0.6.0
sys-apps/baselayout-2.0.1
> 2) загрузка по PXE работает для физической машины и не работает для виртуальной (виртуальная просто не видит DHCP сервер и не грузит syslinux)
Так настрой сеть в виртуальной машине.
Скрипты для рамфс лежат здесь: /usr/share/genkernel
Скрипты для рамфс лежат здесь: /usr/share/genkernel
Зачем они нужны?
Запускаю серверную виртуальную машину так:
start-stop-daemon --start --quiet --pidfile «» --exec /usr/bin/screen — -dmS «dhcp_tftp_nfs» /bin/bash -c «/usr/bin/kvm -monitor tcp:192.168.9.194:9219,server,nowait -pidfile /var/run/kvm-dhcp_tftp_nfs.pid -m 2048 -smp 3 -vnc 192.168.9.194:5 -usb -usbdevice tablet -name dhcp_tftp_nfs -boot c -hda /mnt/store2T/VirtKVM/dhcp_tftp_nfs/disk.qcow2 -net nic,macaddr=52:54:00:12:17:05,vlan=0 -net tap,ifname=tap_dtn0,vlan=0,script=/etc/kvm/kvm-ifup-br3,downscript=/etc/kvm/kvm-ifdown-br3»
Запускаю клиентскую виртуальную машину так:
start-stop-daemon --start --quiet --pidfile «» --exec /usr/bin/screen — -dmS «diskless» /bin/bash -c «/usr/bin/kvm -monitor tcp:192.168.9.194:9264,server,nowait -pidfile /var/run/kvm-diskless.pid -m 512 -smp 3 -vnc 192.168.9.194:6 -usb -usbdevice tablet -name diskless -boot n -net nic,macaddr=52:54:00:12:77:06,vlan=0 -net tap,ifname=tap_diskless0,vlan=0,script=/etc/kvm/kvm-ifup-br3,downscript=/etc/kvm/kvm-ifdown-br3»
MAC адреса у этих машин разные, они добавляются в бридж:
Почему не грузится - мне не ясно. Пробовал менять номер виртуальной сети на клиентской машине - не помогает.
Установка — трудное начало с использованием системы FOG
FOG является свободным решением, предназначенным для клонирования компьютеров и имеющая открытый исходный код, которое было создано Чаком Суперски и Цзянь Чжаном ( Chuck Syperski и Jian Zhang ). FOG берет обычно используемое программное обеспечение (например, Apache, MySQL и tftpd-hpa упомянуть некоторые из них) и упаковывает их в виде свободного и самодостаточного решения PCLM (PC Lifecycle management), предназначенного для управления жизненным циклом ПК. Нужно упомянуть, что с помощью такого свободного решения PCLM можно с помощью единого центральный веб-интерфейса выполнять резервное копирование состояния компьютера путем создания его образа, развертывать программы и настройки (например, Firefox, Office, принтеры и т. д.), а также политики конфигурирования (например, настроек автоматического завершения сессии и экранной заставки).
Примечание: интервью с Чаком Суперски и Цзянь Чжаном о FOG доступно на Tightwad Tech .
Использование FOG в качестве основы для вашего сервера PXE является хорошим способом иметь в наличии все необходимые составляющие, например, TFTP и, если требуется, DHCP без необходимости устанавливать и настраивать их вручную, при одновременном предоставлении вам в качестве бонуса всех функций пакета FOG.
Поскольку наша цель состоит в том, чтобы добавить новые функции к этой уже большой системе, мы не будем вдаваться в детали того, как пользоваться самим пакетом FOG и не будем рассматривать процедуру его установки. Вики пакета FOG , причем как текст, так и видео how-tos , является достаточным для получения подробной информации в том случае, если вы хотите разобраться детально. В общем, шаги следующие:
- Загрузите последнюю версию пакета FOG из sourceforge в каталог, созданный на предыдущем шаге.
- Разархивируйте пакет и начните установку.
- Установщик задаст вам несколько вопросов:
- What version of Linux would you like to run the installation for? (Для какой версии вы хотите запустить инсталляцию?) – 2 (опять же, при условии, что используется система, базирующаяся на Debian)
- What type of installation would you like to do? (Какой вариант инсталляции вы хотите выполнить?) [N] – Нажмите Enter
- What is the IP address to be used by this FOG Server? (Какой адрес IP будет использоваться сервером FOG?) [адрес IP сервера, обнаруженного на eth0] – Нажмите Enter.
- Would you like to setup a router address for the DHCP server? (Хотели бы вы настроить адрес маршрутизатора для сервера DHCP) [Y/n] – Нажмите Enter.
- Would you like to setup a DNS address for the DHCP server and client boot image? (Хотели бы вы настроить адрес DNS для сервера DHCP и клиента загружаемого образа?) [Y/n] – Нажмите Enter.
- Would you like to change the default network interface from eth0? If you are not sure, select No. (Хотели бы вы изменить используемый по умолчанию сетевой интерфейс eth0? Если не уверены, то выберите вариант No) [y/N] – Нажмите Enter.
- Would you like to use the FOG server for dhcp service? (Хотели бы вы использовать сервер FOG в качестве сервиса dhcp?) [Y/n] – Нажмите Enter (* - см. примечание ниже).
- This version of FOG has internationalization support, would you like to install the additional language packs? (В настоящей версии FOG имеется поддержка интернационализации, хотели бы вы , чтобы установить дополнительные языковые пакеты?) [Y/n] – Нажмите n.
- Are you sure you wish to continue? (Вы уверены, что хотите продолжить?) (Y/N) – Нажмите Y.
- Acknowledge and follow the on screen instructions for “MySQL“. (Подтвердите и следуйте инструкциям пакета «MySQL»)
- Leave the MySQL password blank for the root account. (Для аккаунта root оставьте пароль для MySQL пустым)
- Would you like to notify the FOG group about this installation? (Хотели бы вы уведомить группу FOG об этой инсталляции?) – Нажмите Y (рекомендуется)
Изображение взято из FOG wiki.
* Примечание: Предполагается, что у вас нет другого DHCP или он не настроен для использования PXE. Если вы хотите сконфигурировать существующий DHCP, то смотрите описание Конфигурирование DHCP для PXE .
Это все, что нужно сделать во время установки пакета FOG. Опять же, поскольку FOG представляет собой большую систему, ее использование не входит в круг рассмотрения данного руководства, и для того, чтобы вы могли лучше разобраться с возможностями системы FOG и с тем, как она может помочь вам управлять жизненным циклом ваших компьютеров-клиентов, мы призываем вас обратиться к вики-страницам с описанием этой системы.
Если все пройдет так, как надо, у вас должна быть возможность выполнить загрузку вашей клиентской машине в режиме PXE (обычно с помощью F12) и получить меню-приглашение, используемое в системе FOG по умолчанию.
Изображение получено с помощью Hotfortech.
Чтобы сразу почувствовать вкус возможностей, вы можете выбрать вариант «Run Memtest86+» (выполнить тест Memtest86 +) и получить приглашение программы Memtest, которую мы рассматриваем в нашей статье «Диагностика аппаратных проблем ПК с помощью Ubuntu Live CD» .
Создайте мастер-файл
Мастер-файл позволит делать глобальные изменения во внешнем виде меню без повторного ввода их в отдельном порядке снова и снова. Такие особенности, как фоновый рисунок, используемый по умолчанию, стили границ, позиции и т.д., все это будет объединено в этом файле master.cfg.
Сделайте так, чтобы его содержание было следующим:
В конфигурации, приведенной выше, будут созданы фиолетовые границы и выделение текста;, если вы хотите, чтобы внешний вид был другой, просто измените значения.
Чтобы задать фоновый рисунок, поместите картину в каталог /tftproot и укажите для MENU BACKGROUND относительный путь к рисунку (мы рекомендуем использовать изображения с разрешением 640*480). Например полный путь к рисунку, сконфигурированному выше, будет /tftproot/fog/bg.jpg.
Файлы и каталоги
Как отмечалось ранее, наша цель заключается в расширении возможности системы FOG и с этой целью мы должны добавить некоторые файлы и каталоги.
Создайте следующие подкаталоги:
Эти подкаталоги будут служить в качестве шаблонов для всех изображений, программ и конфигураций, которыми мы будем пользоваться для того, чтобы расширить систему FOG.
Читайте также: