У PXE есть одна очень полезная особенность, все что в нем настроено довольно трудно потерять т.к. все это хранится на сервере, а не на съемном носителе, которые имеют обыкновение теряться, вороваться, забываться в приводах DVD/дома, даваться попользоваться и «с концами», так что, вероятность что у вас возьмут попользоваться и «заиграют» стремится к нулю, ну разве что вместе с сервером… Подключив устройство имеющее возможность загрузки PXE, можно делать довольно много полезных вещей, а именно: производить диагностику оборудования, развертывать операционные системы, загрузить Live систему и т.п. на что хватит знаний и фантазии.
Для этого нам понадобится настроить DHCP сервер и TFTP сервер.
Ранее я уже писал о том как настроить сервер для , крайне рекомендую для ознакомления, основные моменты перекочевали из нее.
Что мы получим на выходе?!
А получим меню загрузки с возможностью выбора приложения которое мы будем загружать на клиентскую машину, а также действия, по умолчанию, которые будут произведены системой-если не поступит команд от пользователей.
Для работы нам понадобится:
1) Установленный Ubuntu server2) Настроенный DHCP сервер, пример настройки можно взять в статье:
3) Диск или ISO-образ, установочного дистрибутива Ubuntu - разрядность значения не имеет, а вот версию лучше брать посвежее.
Все остальное мы установим по ходу дела… Я не буду останавливаться на настройках DHCP, предполагая что он у вас настроен, согласно статье, ссылка на которую представлена в требованиях к системе.
Установка tftp сервера
Установим необходимый пакет:Поднимаем права до root:
sudo su
Установим необходимый пакет
aptitude install tftpd-hpa
Теперь все файлы которые относятся к нашему tfpt серверу, должны находиться в директории /var/lib/tftpboot/ , все пути указываются относительно нее.
Переходим к созданию меню загрузки
Первым делом, нам нужно добыть зам загрузчик, как это сделать?! Его можно найти на любом диске с ubuntu, в остальных дистрибутивах Linux, расположение почти всегда такое же. Нам потребуется установочный ISO образ или диск вставленный в привод DVD, в котором мы идем в следующею директорию:Если установочный диск х86 архитектуры:
/install/netboot/ubuntu-installer/i386
Нас интересует файл pxelinux.0 это и есть загрузчик, забираем его и копируем в директорию:
/var/lib/tftpboot/
Тогда путь к нему выглядит:
/var/lib/tftpboot/pxelinux.0
Также, нам понадобится, само boot-меню, которое можно взять на том же диске, в директории boot-sccreens нас интересует файл с именем vesamenu.c32
Копируем его в туже директорию что и загрузчик чтобы путь выглядел:
/var/lib/tftpboot/vesamenu.c32
Настраиваем содержимое PXE меню
В качестве примера, мы сделаем меню загрузки, состоящее из 2х пунктов.
Пункт первый:
Загрузка с локального жесткого диска. Этот пункт будет пунктом по умолчанию, если пользователь загрузил ПК по PXE и в течении 15 сек. не выполнил никаких действий, то система автоматически загрузится с локального диска.
Пункт второй:
назовем его Testing
Внутри данного меню будет находиться, пункт с возможностью загрузки Memtest x86+. Данная программа всегда будет полезна в диагностике проблем рабочих станций и серверов, в общем, вещь нужная, в хозяйстве пригодится всем…
Для начала, нам нужно создать директорию для конфигурационных файлов с именем pxelinux.cfg
- имя критично для работы!
mkdir /var/lib/tftpboot/pxelinux.cfg
Теперь создадим конфигурационный файл с параметрами пунктов меню, с именем default
nano /var/lib/tftpboot/pxelinux.cfg/default
Со следующим содержимым:
default vesamenu.c32
prompt 0
menu title PXE Boot Menu
MENU AUTOBOOT Starting Local System in # seconds
label Boot from local drive
menu label ^Boot from local drive
menu default
localboot 0
timeout 150
TOTALTIMEOUT 9000
LABEL Testing
MENU LABEL ^Testing
KERNEL vesamenu.c32
APPEND pxelinux.cfg/testing.menu
Наиболее наблюдательные, заметили что в предыдущем файле у нас появилась запись которая касается другого файла testing.menu
, в нем у нас будут находиться параметры настройки пункта Testing
Создадим данный файл:
Со следующим содержимым:
MENU TITLE Testing
LABEL Test software
MENU LABEL ^Return to Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
label Memory Test
menu label ^Memory Test: Memtest86+ v4.20
kernel memtest/mt86plus
Первый пункт меню, будет отвечать за возврат в предыдущее меню, а второй за загрузку Memtest86+ v4.20
Все ничего, но мы не создали директорию где хранится файл Memtest, это мы сейчас исправим, давайте создадим соответствующую директорию.
Сделаем это:
mkdir /var/lib/tftpboot/memtest
Нам осталось добавить исполняемый файл самого Memtest86+, его можно найти на установочном диске, в директории /install/
нас интересует файл mt86plus
нам него необходимо скопировать в директорию memtest, чтобы путь к нему выглядел:
/var/lib/tftpboot/memtest/mt86plus
На этом мы закончили с tftp сервером, нам осталось немного допилить DHCP сервер.
Настриваем DHCP сервер
Этот пункт, настройкой можно назвать только с натяжкой, если вы настроили DHCP сервер по статье, то вам необходимо добавить только одну запись в:
nano /etc/dhcp/dhcpd.conf
Находим пункт с настройками пула IP адресов, который имеет вид:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name-servers 192.168.10.1;
option domain-name "example.org";
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 604800;
max-lease-time 604800;
}
И в него добавляем запись указывающую на наш PXE загрузчик:
ping-check = 1;
filename = "pxelinux.0";
Путь к файлу указан относительно директории /var/lib/tftpboot/
т.е. она считается корневой директорией, о чем я писал ранее…
Вся запись имеет вид:
ping-check = 1;
filename = "pxelinux.0";
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.10 192.168.10.254;
option domain-name-servers 192.168.10.1;
option domain-name "example.org";
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 604800;
max-lease-time 604800;
}
Сохраняем изменения и перезагружаем DHCP сервер:
/etc/init.d/isc-dhcp-server restart
Теперь мы можем подключить к нашей локальной сети устройство которое поддерживает загрузку PXE и в котором эта функция включена(смотрите документацию к своему оборудованию) или подключить виртуальную машину, а адаптометром подключенным в режиме моста и без загрузочного носителя.
Если вы все сделали правильно, то меню будет иметь следующий вид:
А если зайти в меню Testing
:
Если выбрать пункт с Memtest то запустится тест памяти.
Другие пункты меню добавляются соответствующим образом.
Представим ситуацию, что вам требуется предоставить доступ к одному из меню, ограниченному кругу лиц, например там у вас лежит дистрибутив, который стоит кучу денег. С этой целью на пункт меню можно установить пароль, как это сделать?!
Представим ситуацию, вам нужно установить пароль (например: password
) на Memory Test, делается это просто
Nano /var/lib/tftpboot/pxelinux.cfg/testing.menu
Нам необходимо добавить запись:
MENU PASSWD password
Тогда файл принимает вид:
MENU TITLE Testing
LABEL Test software
MENU LABEL ^Return to Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
label memtest
MENU PASSWD password
menu label ^Memory Test: Memtest86+ v4.20
kernel memtest/mt86plus
Защита конечно, так себе, но от обычных пользователей может помочь.
Тогда при попытке запуска выйдет окно:
если ввести правильный пароль, то запустится Memtest.
Таким способом можно скрывать целые меню или блокировать доступ к отдельным его пунктам.
В случае внесения изменения в эти конфигурационные файлы, DHCP сервер перезапускать нет необходимости, достаточно перезагрузить клиентский ПК если он загрузился по PXE.
По поводу скорости работы tftp, скорость работы не высока, и если вы решите перекачивать большие объемы информации, сторайтесь использовать для этого WEB или FTP сервер, готовьтесь затратить на это некоторое количество времени. Если есть необходимость загрузить какой-то дистрибутив, то лучше загрузить ОС небольшого размера, примером может служить Windows PE
, ну или миниатюрный дистрибутив Linux.
На этом я пожалуй и закончу…
Загрузочная флешка с набором нужного софта - замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
О том как подготовить Windows к установке с PXE мы писали ранее.
Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/ , где содержаться файлы для установки ОС от Microsoft:
ls -l /srv/tftp/images/
total 8
drwxr-xr-x 6 root root 4096 Фев 17 22:19 w2k12r2
drwxr-xr-x 7 tftp tftp 4096 Фев 17 19:05 w2k8r2
и запускаем нужный инсталятор.
Для автоматизации, через startnet.cmd, я набросал вот такое меню:
Теперь осталось разобраться с VMware.
Как вы заметили, конфиг для установки гипервизоров несколько отличается от остальных - именно тут нам и понадобится HTTP сервер.
В /var/www создадим папки vmw5.5, vmw5.0, а в папках сделаем симлинки на конфиг
# cd /var/www
# mkdir vmw5.5
# cd vmw5.5/
# ln -s /srv/tftp/vmw/5.5/ks.cfg
# mkdir ../vmw5.0
# cd ../vmw5.0/
# ln -s /srv/tftp/vmw/5.0/ks.cfg
О том как подготовить, например, Debian к установке с PXE написано , но я на этом останавливаться не стану.
Добавим способность загружать различные дисковые утилиты и тест памяти
Данный раздел будет содержать:- Memtest86+
- Clonezilla-live
- SystemRescueCD
Конфиги разместились здесь
default
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120000
TEXT HELP
The system will boot after time is up.
ENDTEXT
LABEL Windows ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/windows
LABEL Linux ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/linux
LABEL FreeBSD ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/bsd
LABEL VMvare ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/vmware
LABEL HDD and RAM utils ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/du
du
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE HDD and RAM utils
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
LABEL Memtest86+
kernel memtest/memtest
label Clonezilla-live
MENU LABEL Clonezilla Live
KERNEL clonezilla/vmlinuz
APPEND initrd=clonezilla/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts="" ocs_live_batch="no" locales="" vga=788 nosplash noprompt fetch=tftp://10.0.10.1/clonezilla/filesystem.squashfs
label SystemRescueCD
kernel SystemRescueCD/isolinux/rescue64
append initrd=SystemRescueCD/isolinux/initram.igz dodhcp nfsboot=10.0.10.1:/srv/tftp/SystemRescueCD
LABEL MHDD
kernel memdisk
initrd mhdd/mhdd32ver4.6.iso
append iso raw
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
А я расскажу зачем мы ставили еще и NFS сервер.
Как видно из конфига загрузки SystemRescueCD, необходимые этому LiveCD файлы он подтягивает монтируя каталог по протоколу NFS. Сервер уже установлен, остается только отредактировать /etc/exports и перезапустить серверный демон.
# cat >> /etc/exports /srv/tftp/SystemRescueCD/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000) # service nfs-kernel-server restart
Предполагаю у вас возник резонный вопрос - «Что тут делает LiveCD, если для них есть отдельный пункт?»
SystemRescueCD содержит массу полезных программ для работы с диском(например таких как GParted и testdisk) и поэтому он доступен и здесь и в LiveCD.
LiveCD
В набор наших LiveCD войдут:- Debian 7 LiveCD
- HirensBootCD
- Trinity Rescue Kit CD
- SystemRescueCD
- Plop Live
Конфиги
в конец default
добавилось
LABEL LiveCDs ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/livecds
livecds
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE LiveCDs
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
LABEL Debian LiveCD
KERNEL Debian7live/vmlinuz
APPEND initrd=Debian7live/initrd boot=live fetch=tftp://10.0.10.1/Debian7live/filesystem.squashfs root=/dev/ram0 rw
LABEL HirensBootCD
MENU LABEL Hiren"s Boot CD
KERNEL memdisk
APPEND iso initrd=hirens/hirens.iso
LABEL Trinity Rescue Kit CD
kernel trk/kernel.trk
append initrd=trk/initrd.trk ramdisk_size=65536 root=/dev/ram0 vga=788 splash=verbose pci=conf1 trkmenu timeout 100 trknfs=10.0.10.1:/srv/tftp/trk ip=dhcp
LABEL SystemRescueCD
kernel SystemRescueCD/isolinux/rescue64
append initrd=SystemRescueCD/isolinux/initram.igz dodhcp nfsboot=10.0.10.1:/srv/tftp/SystemRescueCD
LABEL Plop Live
KERNEL plop/bzImage
APPEND initrd=plop/initramfs.gz vga=normal nfsmount=10.0.10.1:/srv/tftp/plop
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
Для загрузки Trinity Rescue Kit CD и Plop Live в /etc/exports нужно добавить строки:
/srv/tftp/trk/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
/srv/tftp/plop/ 10.0.10.1/255.255.255.0(ro,no_subtree_check,all_squash,insecure,anonuid=1000,anongid=1000)
и отправить команду рестарта NFS демону.
Несколько слов о выбраных LiveCD.
Debian 7 LiveCD
Этот CD - сборка одного из наших инженеров, включающая в себя следующее:
Логин / пароль: root / ServerClub
HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться .
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.
Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее .
SystemRescueCD
Основан на Gentoo, предназначен для восстановления Linux систем.
Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке .
Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом .
Итоговый конфигурационный файл основного меню, а так же файл меню антивирусов
default
ui vesamenu.c32
PROMPT 0
menu background background.jpg
menu title ServerClub PXE boot menu
LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120000
TEXT HELP
The system will boot after time is up.
ENDTEXT
LABEL Windows ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/windows
LABEL Linux ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/linux
LABEL FreeBSD ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/bsd
LABEL VMvare ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/vmware
LABEL HDD and RAM utils ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/du
LABEL LiveCDs ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/livecds
LABEL Antiviruses ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/av
av
PROMPT 0
UI vesamenu.c32
MENU BACKGROUND background.jpg
MENU TITLE Antivirues
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
LABEL Kaspersky Antivirus
KERNEL kav/rescue
APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset
LABEL Kaspersky Antivirus (text mode)
KERNEL kav/rescue
APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg nox kavshell noresume doscsi nomodeset
label AVG
menu label AVG Rescue CD
kernel avg/vmlinuz
append max_loop=255 vga=791 initrd=avg/initrd.lzm init=linuxrc reboot=bios
label AVG nofb
menu label AVG Rescue CD with Disabled Framebuffer
kernel avg/vmlinuz
append max_loop=255 video=vesafb:off initrd=avg/initrd.lzm init=linuxrc reboot=bios
label AVG vgask
menu label AVG Rescue CD with Resolution Selection
kernel avg/vmlinuz
append max_loop=255 initrd=avg/initrd.lzm init=linuxrc vga=ask reboot=bios
LABEL <- Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default
Заключение, оно же и сюрприз
На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.В качестве сюрприза предлагаю вам два варианта нашей сборки, доступные по ссылкам ниже:
- Архив со всем контентом /srv/tftp (ссылка на торрент файл , прямая ссылка)
- Архив всей ОС (ссылка на торрент файл , прямая ссылка)
Второй случай подразумевает установку на голое железо или виртуальную машину.
Вкратце шаги по развертыванию сборки из полного архива ОС будут такими:
1. Загрузиться с Linux LiveCD.
2. Разметить диск и отформатировать разделы.
3. Примонтировать "/" раздел.
4. Распаковать архив.
5. Установить загрузчик.
6. Перезагрузиться.
7. Настроить ОС в соответствии вашей сети и начать пользоваться.
Логин / пароль: root / ServerClub.
ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.
За сим заканчиваю, благодарю за внимание!
Для тех, у кого нет аккаунта на Хабре.Если у вас возникнут вопросы/замечания, то пишите мне на почту - erserverclub.com.
PXE
Исполнительное окружение предварительной загрузки (Preboot Execution Environment , PXE , произносится “пикси”) представляет собой процесс загрузки операционной системы по сети. Его можно сравнить с загрузкой LiveCD с удаленного CD-привода.
Данный метод загрузки требует:
сервер для хранения файлов, работающий по протоколам DHCP и TFTP (можно запустить каждый протокол на отдельном сервере);
клиент с загрузчиком PXE в BIOS. Может не иметь жесткого диска.
Шаг 1. Настраиваем сервер PXE
PXE-сервер включает:
DHCP-сервер для соединения с клиентами;
файл загрузки DHCP для настройки клиентов;
TFTP-сервер для загрузки операционной системы.
SliTaz LiveCD можно использовать в качестве PXE-сервера. Для этого запустите приложение Netbox (из меню Система).
Появится окно DHCP-сервера, который не может использовать DHCP для получения информации об IP.
На вкладке Statip IP нажмите Start .
Запустится сервер TFTP, который будет загружать SliTaz LiveCD по сети.
На вкладке Server выберите вкладку INETD и удостоверьтесь, что строка tftpd в файле /etc/initd.conf не закомментирована . Это настройки по умолчанию. Нажмите Start .
На той же вкладке Server выберите вкладку PXE .
Этим вы автоматически обновите конфигурацию DHCP-сервера.
Отредактируйте настройки согласно вашим опциям загрузки.
Запустится DHCP-сервер. Если клиенты не могут получить IP-адрес, проверьте настройки этого сервера.
На вкладке Server выберите вкладку DHCP . Приведите настройки в соответствие с конфигурацией вашей сети. Перед этим мы добавили строки boot_file и siaddr . Нажмите Start .
Убедитесь, что файлы bzImage и rootfs.gz находятся в директории /boot на LiveCD.
Шаг 2. Настраиваем клиент PXE
Компьютеры последних поколений со встроенной поддержкой Ethernet имеют BIOS, поддерживающий PXE. Проверьте эту опцию в меню BIOS и убедитесь, что она активирована. Для перехода в настройки BIOS понадобится нажать соответствующую клавишу после включения компьютера (например, F12).
Если ваш компьютер не поддерживает загрузку через PXE, вы можете использовать на нем SliTaz в качестве клиента. Создайте загрузочный CD-ROM или дискету утилитой Boot Floppy/CDROM в меню Система .
На вкладке PXE Network выберите Write floppy. Тем самым вы сможете загружать систему на компьютере клиента.
SliTaz LiveCD содержит настройки для загрузки операционной системы через Интернет. Это может быть полезно при использовании более новой версии SliTaz со старого носителя.
Чтобы начать сетевую загрузку, в момент вывода начального приглашения SliTaz введите команду
Только и всего!
Дальнейшую информацию об использовании Интернет-соединения при загрузке SliTaz см. на домашней странице сетевой загрузки SliTaz .
Вам также понадобится DHCP-сервер для получения IP-адреса, маски подсети и адреса шлюза, как и при настройке обычного соединения - для этого подойдет обычный домашний роутер.
Если у вас нет устройства, которое можно приспособить под DHCP-сервер, вам все равно понадобятся IP-адрес, маска подсети, адрес шлюза и, возможно, адрес DNS .
Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0
Title Slitaz Web kernel /boot/gpxe ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=ip=192.168.0.12/24 gw=192.168.0.1 dns=192.168.0.1 url=http://mirror.slitaz.org/pxe/pxelinux.0
При таком способе загрузки доступны исключительно следующие опции:
nodhcp (поможет избежать ошибку таймаута по DHCP)
Дополнительная настройка процесса загрузки
Процесс загрузки по сети можно настраивать и распределять по роутерам и другим устройствам.
Распределенная загрузка через PXE и PROM (предшествует PXE)
установите gpxe.exe в /jffs/boot
Запустите сервер tftp для вашей локальной сети (например, 192.168.0.1/24):
# /jffs/usr/sbin/tftpd 192.168.0.1 /jffs/boot
Изменяем домашнюю страницу GPXE-загрузки
$ dd bs=1 skip=519 count=255 if=gpxe 2> /dev/null | strings $ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ echo -n "ip=192.168.0.10/24 gw=192.168.0.1 dns=192.168.0.1 url=http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe $ dd if=/dev/zero conv=notrunc bs=1 seek=519 count=255 of=gpxeМеняем домашнюю страницу для gpxe.exe
$ dd bs=1 skip=5 count=255 if=gpxe.pxe 2> /dev/null | strings
$ echo -n "http://myurl.org/myboot" | cat - /dev/zero | dd conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe
$ dd if=/dev/zero conv=notrunc bs=1 seek=5 count=255 of=gpxe.pxe
Использование нескольких ссылок при работе с загрузочными серверами
Вот пример для текущих загрузочных серверов SliTaz:
$ echo -n "http://mirror.slitaz.org/pxe/pxelinux.0,http://mirror.switch.ch/ftp/mirror/pxe/pxelinux.0,http: download.tuxfamily.org/slitaz/pxe/pxelinux.0" | cat - /dev/zero | dd conv=notrunc bs=1 seek=519 count=255 of=gpxe
Обзор технологии 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. В настоящем руководстве мы заложим основы, на которые мы будет опираться в последующих статьях.
- Клиентская машина, на которой вы тестируете, поддерживает загрузку PXE и вы знаете, как ее включить.
- Это руководство было написано и протестировано с использованием Debian Squeeze, Ubuntu Server 9.10 и Linux Mint10. Поэтому предполагается, что у вас также есть система на основе Debian.
- У вас есть возможность посмотреть статью «Как настроит программный RAID» для «Простого файл-сервера» и «Как настроить всю сеть (802.3ad)» , поскольку скорость работы диска и пропускная способность для этого варианта сервера должны быть очень высокими. Настоятельно рекомендуется собирать такую сеть с использованием сервера с высокоотказоустойчивыми сетевыми и дисковыми подсистемами.
- Вы увидите, что в качестве редактора мы используем VIM, это только потому, что я привык к нему... Вы можете пользоваться любым другим редактором, который вам нравится.
Установка — трудное начало с использованием системы FOG
Использование FOG в качестве основы для вашего сервера PXE является хорошим способом иметь в наличии все необходимые составляющие, например, TFTP и, если требуется, DHCP без необходимости устанавливать и настраивать их вручную, при одновременном предоставлении вам в качестве бонуса всех функций пакета FOG.
Поскольку наша цель состоит в том, чтобы добавить новые функции к этой уже большой системе, мы не будем вдаваться в детали того, как пользоваться самим пакетом FOG и не будем рассматривать процедуру его установки. Вики пакета FOG , причем как текст, так и видео how-tos , является достаточным для получения подробной информации в том случае, если вы хотите разобраться детально. В общем, шаги следующие:
Это все, что нужно сделать во время установки пакета FOG. Опять же, поскольку FOG представляет собой большую систему, ее использование не входит в круг рассмотрения данного руководства, и для того, чтобы вы могли лучше разобраться с возможностями системы FOG и с тем, как она может помочь вам управлять жизненным циклом ваших компьютеров-клиентов, мы призываем вас обратиться к вики-страницам с описанием этой системы.
Если все пройдет так, как надо, у вас должна быть возможность выполнить загрузку вашей клиентской машине в режиме PXE (обычно с помощью F12) и получить меню-приглашение, используемое в системе FOG по умолчанию.
Изображение получено с помощью Hotfortech.
Чтобы сразу почувствовать вкус возможностей, вы можете выбрать вариант «Run Memtest86+» (выполнить тест Memtest86 +) и получить приглашение программы Memtest, которую мы рассматриваем в нашей статье «Диагностика аппаратных проблем ПК с помощью Ubuntu Live CD» .
Файлы и каталоги
Как отмечалось ранее, наша цель заключается в расширении возможности системы FOG и с этой целью мы должны добавить некоторые файлы и каталоги.
Создайте следующие подкаталоги:
Sudo mkdir -p /tftpboot/howtogeek/menus sudo mkdir -p /tftpboot/howtogeek/linux sudo mkdir -p /tftpboot/howtogeek/pics sudo mkdir -p /tftpboot/howtogeek/utils
Эти подкаталоги будут служить в качестве шаблонов для всех изображений, программ и конфигураций, которыми мы будем пользоваться для того, чтобы расширить систему FOG.
Настройте конфигурационный файл default, используемый по умолчанию
Мы создадим новое главное меню и поместим в свое собственное подменю все функции системы FOG.
Скопируйте конфигурационный файл /tftpboot/pxelinux.cfg/default в howtogeek/menus/fog.cfg.
Sudo cp /tftpboot/pxelinux.cfg/default /tftpboot/howtogeek/menus/fog.cfg
Теперь отредактируйте содержимое исходного файла default, используемого по умолчанию:
Sudo vim /tftpboot/pxelinux.cfg/default
Сделайте так, чтобы его содержимое выглядело следующим образом:
DEFAULT vesamenu.c32 MENU TITLE FOG 0.32 + HowToGeek"s enhancements MENU INCLUDE /pxelinux.cfg/master.cfg menu color title 1;36;44 #ff8c00 #00000000 std LABEL FOG MENU LABEL Manual FOG MENU DEFAULT KERNEL vesamenu.c32 APPEND howtogeek/menus/fog.cfg LABEL Utils MENULABEL Utilities KERNEL vesamenu.c32 APPEND howtogeek/menus/utils.cfg LABEL Linux MENU LABEL Linux stuff KERNEL vesamenu.c32 APPEND howtogeek/menus/linux.cfg LABEL fog.local localboot 0 MENU LABEL Boot from hard disk TEXT HELP Boot from the local hard drive. If you are unsure, select this option. ENDTEXT PROMPT 0 TIMEOUT 300 ONTIMEOUT fog.local
Когда мы закончим, эта конфигурация позволит вам получить следующие 3 подменю: Utilities (Утилиты), Manual FOGing (Ручное управление системой FOG), Linux stuff (Linux).
Создайте мастер-файл
Мастер-файл позволит делать глобальные изменения во внешнем виде меню без повторного ввода их в отдельном порядке снова и снова. Такие особенности, как фоновый рисунок, используемый по умолчанию, стили границ, позиции и т.д., все это будет объединено в этом файле master.cfg.
Создайте файл:
Sudo vim /tftpboot/pxelinux.cfg/master.cfg
Сделайте так, чтобы его содержание было следующим:
MENU BACKGROUND fog/genie.png menu color screen 37;40 #80ffffff #00000000 std menu color border 30;44 #9370db #00000000 std menu color title 1;36;44 #ff8c00 #00000000 std menu color unsel 37;44 #ffffffff #00000000 std menu color hotkey 1;37;44 #ffffffff #00000000 std menu color sel 7;37;40 #4eee94 #9370db all menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all menu color disabled 1;30;44 #60cccccc #00000000 std menu color scrollbar 30;44 #40000000 #00000000 std menu color tabmsg 31;40 #90ffff00 #00000000 std menu color cmdmark 1;36;40 #c000ffff #00000000 std menu color cmdline 37;40 #c0ffffff #00000000 std menu color pwdborder 30;47 #80ffffff #20ffffff std menu color pwdheader 31;47 #80ff8080 #20ffffff std menu color pwdentry 30;47 #80ffffff #20ffffff std menu color timeout_msg 37;40 #80ffffff #00000000 std menu color timeout 1;37;40 #c0ffffff #00000000 std menu color help 37;40 #c0ffffff #00000000 std menu color msg07 37;40 #90ffffff #00000000 std MENU MARGIN 0 MENU PASSWORDMARGIN 3 MENU ROWS 15 MENU TABMSGROW 21 MENU CMDLINEROW 20 MENU PASSWORDROW 11 MENU TIMEOUTROW 20 MENU HSHIFT 0 MENU VSHIFT 0
В конфигурации, приведенной выше, будут созданы фиолетовые границы и выделение текста;, если вы хотите, чтобы внешний вид был другой, просто измените значения.
Чтобы задать фоновый рисунок, поместите картину в каталог /tftproot и укажите для MENU BACKGROUND относительный путь к рисунку (мы рекомендуем использовать изображения с разрешением 640*480). Например полный путь к рисунку, сконфигурированному выше, будет /tftproot/fog/bg.png .
Подключите подменю FOG к основному меню
Т.к. мы сделали простую копию оригинального конфигурационного файла в подкаталог меню (сохранив цветовую схему, тайм-ауты и прочее), то если вы теперь перейдете в это подменю из загруженного клиента PXE, оно будет работать, но вы не сможете вернуться в главное меню без перезагрузки машины.
Поэтому отредактируйте файл /tftpboot/howtogeek/menus/fog.cfg :
Sudo vim /tftpboot/howtogeek/menus/fog.cfg
Добавьте следующую запись после записи «menu color title» и перед функциями FOG:
LABEL back MENU LABEL .. KERNEL vesamenu.c32 APPEND pxelinux.cfg/default
Создайте заготовки для подменю
Мы создали 4 подменю, три из которых будут нами заполнены. Для этого давайте создадим шаблон, которым мы будем пользоваться в дальнейшем.
Создайте файл шаблона:
Sudo vim /tftpboot/howtogeek/menus/template.cfg
Его содержимое должно быть следующим:
MENU INCLUDE /pxelinux.cfg/master.cfg #MENU BACKGROUND howtogeek/pics/fog-sub.jpgLABEL back MENU LABEL .. KERNEL vesamenu.c32 APPEND pxelinux.cfg/default
Давайте зададим заготовки для дополнительных подменю, которые нам потребуются в следующих статьях:
Cd /tftpboot/howtogeek/menus/ sudo cp template.cfg ./utils.cfg sudo cp template.cfg ./linux.cfg
Вот и все, базовая компоновка теперь готова и теперь нам нужно будет ей пользоваться, что мы будем делать в следующих статьях. Поскольку эти статьи еще не опубликованы, мы рекомендуем ознакомиться с системой FOG, т.к. эта система сама по себе исключительно интересная.
AOMEI PXE Boot представляет собой свободное программное обеспечение для загрузки компьютеров с ISO по локальной сети. Будучи очень простой в использовании, эта программа позволяет использовать загрузочный образ диска (ISO) для удаленной загрузки нескольких компьютеров, при условии, что они подключены к одной локальной сети. Это делает AOMEI PXE Boot чрезвычайно полезным инструментом для таких задач, как удаленное развертывание и сопровождение приложений, особенно на предприятиях.
Работать с AOMEI PXE Boot довольно просто: вы устанавливаете программу на систему, которая будет использоваться в качестве сервера, монтируете ISO и ждете загрузки клиентских машин. И лучшая часть заключается в том, что AOMEI PXE Boot поддерживает синхронную загрузку нескольких компьютеров одновременно. Давайте узнаем больше об этой замечательной программе, и выясним, как вы можете использовать ее для загрузки компьютеров с ISO по проводной локальной сети.
AOMEI PXE Boot: основное назначение и несколько слов о Windows PE
Важно отметить, что AOMEI PXE Boot в первую очередь предназначен для устранения проблем с компьютерами в сети. Вы можете использовать программу для загрузки нефункционирующей системы в ограниченной среде. Для этой цели AOMEI PXE Boot лучше всего работает с загрузочными образами дисков Linux, или Windows PE. Последняя является операционной системой с ограниченными службами, которая используется для загрузки компьютера в восстановительных или установочных целях. Основанная на ядре Vista, Windows PE не является полноценной операционной системой. Вместо этого она предоставляет безопасную среду для устранения неполадок с компьютером и восстановления его рабочего состояния.
Нет абсолютно никаких оснований полагать, что AOMEI PXE Boot не будет работать с любым другим образом диска. Во время тестирования я смог удаленно загрузить на клиентской системе Damn Small Linux (DSL), используя загрузочный ISO-образ.
Как загрузить компьютеры с помощью ISO по локальной сети
Теперь, когда вы знаете о AOMEI PXE Boot достаточно много, пришло время увидеть, как эта штука работает. Процесс, по сути, состоит из двух этапов. Первая часть включает в себя настройку клиентского компьютера для загрузки по сети, а вторая состоит из настройки и запуска приложения на системе, действующей в качестве сервера.
Обратите внимание, что оба компьютера должны быть подключены к одной сети. В моем случае сервер был подключен к сети по беспроводному каналу, но клиентская машина была подключена проводом.
Часть 1: Настройка клиентского компьютера(ов) для сетевой загрузки
Как и предполагает название, первое, что необходимо сделать, это настроить клиентский компьютер или компьютеры для загрузки через проводную сеть. Чтобы сделать это, вам нужно получить доступ к меню BIOS компьютера. Ниже говорится о том, как это сделать (процесс более или менее такой же, независимо от производителя компьютера):
1. Включите клиентский компьютер и нажмите клавишу для доступа к меню BIOS (обычно Del, Esc, F8 или F12). В BIOS перейдите в подменю «Boot» и в разделе «Boot Options Priorities» выберите «PXE» (на некоторых компьютерах «Legacy LAN», «Realtek PXE B02 D00», «Network boot from Intel» и т.д.) в качестве первого загрузочного устройства. Вам также может потребоваться включить опцию PXE ROM, если она отключена.
2. AOMEI PXE Boot поддерживает только режим загрузки Legacy, поэтому вам также нужно отключить опцию UEFI Boot, если она поддерживается материнской платой компьютера. Эта опция может быть найдена в подменю Boot.
Это все, что нужно сделать на клиентском компьютере. Не забудьте сохранить изменения, внесенные в конфигурацию BIOS. Теперь давайте перейдем к серверу.
Часть 2: Загрузка ISO и запуск приложения на компьютере-сервере
Эта часть на самом деле еще проще. Для начала, скачайте и установите AOMEI PXE Boot (около 5 МБ) на компьютер, который будет использоваться в качестве сервера. В дополнение к этому вы также должны скачать загрузочный образ диска для загрузки клиентского компьютера или компьютеров. Шаги ниже объясняют, что от вас требуется:
1. Запустите AOMEI PXE Boot. На первом экране программы выберите опцию «Boot from custom image file» и перейдите к вашему ISO-файлу (вы также можете использовать другой вариант для загрузки Windows PE или Linux ISO с сайта компании AOMEI, если вы хотите). Когда образ будет выбран, нажмите на кнопку «Start Service», чтобы запустить службу.
2. Теперь в окне AOMEI PXE Boot будет отображаться информация об активности, происходящей на сервере и клиентских компьютерах. Больше на сервере делать ничего не нужно. Чтобы увидеть реальные действия, давайте переместимся дальше. И, само собой разумеется, приложение и, конечно, сервер, должны быть запущены.
Вам только остается запустить клиентский компьютер и дождаться, пока он загрузится по сети, используя ISO-образ, который был выбран вами через AOMEI PXE Boot на компьютере-сервере. Вот полностью рабочий дистрибутив Damn Small Linux, работающий на клиентском компьютере:
Заключительные слова
Если вы администратор сети, и ищите простой и эффективный способ (и без излишеств) для удаленного развертывания и управления ОС, AOMEI PXE Boot может быть именно тем, что вам нужно. Это качественный инструмент, который до смешного прост в настройке и работает на удивление хорошо.
Отличного Вам дня!
Что такое OLED-дисплеи: преимущества и особенности Лучшие смартфоны с AMOLED-дисплеем премиум класса
Удаление вируса Safari redirect (Инструкции по удалению вируса) - Бесплатные инструкции Как разблокировать Сафари без потери данных
Программа для удаления неудаляемых файлов и программ с компьютера
Не запускается Skyforge? Тормозит игра? Вылетает? Глючит?Решение самых распространенных проблем. Первые шаги в Skyforge Как поставить русский язык в skyforge
Системные требования Diablo III на ПК Системные требования diablo 3 reaper of