Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине. А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
Начало
Возьмем за основу, что свежеустановленный Debian Wheezy уже весело подмигивает нам консолью. Подготовим базу для дальнейших манипуляций. Установить и настроить нам потребуется:
TFTP сервер
Samba
Syslinux
DHCP сервер
HTTP сервер
NFS сервер
1. TFTP
# aptitude install tftpd-hpa
приведем конфиг /etc/default/tftpd-hpa к виду
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"#пусть к корню tftp
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -v -m /etc/tftpd.remap"#файл для замены слешей в путях с windows style на linux style
и поместим в /etc/tftpd.remap вот такую строку
rg \\ /
UPD, дополнение от читателя Aleksey Shipilev
Повыдирал себе волос, пока отдебажил tftp. Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с: PXE-E32: TFTP Open timeout
Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением “-r blksize”: TFTP_OPTIONS=”–secure -l -v -r blksize”
2. Samba
# aptitude install samba
В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.
# mkdir /srv/tftp/images# chmod 777 /srv/tftp/images# service samba restart
3. Syslinux Скачиваем и заливаем в корень TFTP сервера все необходимое
# cd /tmp# wget https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.02.tar.gz #только с этой версией удалось подружить инсталлятор ESXi# tar -xf syslinux-4.02.tar.gz# cd syslinux-4.02/# find ./ -name "memdisk" -type f|xargs -I {} cp '{}' /srv/tftp/# find ./ -name "pxelinux.0"|xargs -I {} cp '{}' /srv/tftp/# find ./ -name "*.c32"|xargs -I {} cp '{}' /srv/tftp/
Перейдем к настройке
# cd /srv/tftp/# mkdir pxelinux.cfg# cd pxelinux.cfg
Создадим конфиг основного меню и внесем начальные настройки
# cat > 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 120
TEXT HELP
The system will boot after the time is up
ENDTEXT
4. DHCP
# aptitude install isc-dhcp-server
дефолтный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон
Под спойлером содержимое конфига каждого из подпунктов меню представленных выше
Пути к папкам, где лежат установочные файлы для каждой из ОС, описаны относительно корня TFTP сервера, т.е. /srv/tftp. Например для FreeBSD указано
LABEL FreeBSD-10.1-x64
kernel memdisk
initrd freebsd/10/mfsbsd-se-10.1-RELEASE-amd64.iso
append iso raw
следовательно в корне TFTP нужно создать папки freebsd/10/, при этом обратите внимание на права
ls -l /srv/tftp/freebsd/10/
total 193780
-rw-r--r-- 1 tftp tftp 198430720 Фев 17 18:17 mfsbsd-se-10.1-RELEASE-amd64.iso
У всех должно быть право на чтение — это правило справедливо для всех файлов отдаваемых по TFTP. И еще пара слов о установке FreeBSD. Логин / пароль для входа в загружаемый iso: root / mfsroot(либо root без пароля). Плюс пара примеров скриптов инсталяции FreeBSD на ZFS: 1. RAID6 из 4-х дисков. 2. RAID1 из 2-х дисков.
О том как подготовить Windows к установке с PXE мы писали ранее. Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/, где содержаться файлы для установки ОС от Microsoft:
и запускаем нужный инсталятор. Для автоматизации, через 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
MHDD
Конфиги разместились здесь
А я расскажу зачем мы ставили еще и 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
Конфиги
Несколько слов о выбраных LiveCD. Debian 7 LiveCD Этот CD — сборка одного из наших инженеров, включающая в себя следующее:
Логин / пароль: root / ServerClub
HirensBootCD Едва ли нуждается в представлении, содержит множество полезных утилит. Подробнее можно ознакомиться здесь. Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.
Trinity Rescue Kit CD Со слов разработчиков, создан для восстановления ОС Windows. Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое. Подробнее здесь.
SystemRescueCD Основан на Gentoo, предназначен для восстановления Linux систем. Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке.
Plop Live LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом.
Антивирусы
Kaspersky Rescue Disk 10
AVG Rescue CD
В отдельном представлении оба антивируса не нуждаются. О Kaspersky Rescue disk подробнее можно прочесть здесь. С описанием AVG Recsue CD вас ознакомит данный url.
Итоговый конфигурационный файл основного меню, а так же файл меню антивирусов:
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
Заключение, оно же и сюрприз
На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.
В качестве сюрприза предлагаю вам два варианта нашей сборки, доступные по ссылкам ниже:
В первом случае необходимо самостоятельно подготовить сервер(в этом поможет глава «Начало» данного эпоса), разархивировать содержимое архива и внести корректировки сообразно реалиям вашей среды.
Второй случай подразумевает установку на голое железо или виртуальную машину. Вкратце шаги по развертыванию сборки из полного архива ОС будут такими: 1. Загрузиться с Linux LiveCD. 2. Разметить диск и отформатировать разделы. 3. Примонтировать “/” раздел. 4. Распаковать архив. 5. Установить загрузчик. 6. Перезагрузиться. 7. Настроить ОС в соответствии вашей сети и начать пользоваться. Логин / пароль: root / ServerClub. ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.
Мы используем файлы cookie на нашем веб-сайте, запоминая ваши предпочтения и повторные посещения. Нажимая «Принять», вы соглашаетесь на использование ВСЕХ файлов cookie.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Мар 16 2017
Загрузочный сервер — как загрузочная флешка, только сервер и по сети
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
Начало
Возьмем за основу, что свежеустановленный Debian Wheezy уже весело подмигивает нам консолью.
Подготовим базу для дальнейших манипуляций. Установить и настроить нам потребуется:
1. TFTP
# aptitude install tftpd-hpa
приведем конфиг
/etc/default/tftpd-hpa
к видуTFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" #пусть к корню tftp TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure -l -v -m /etc/tftpd.remap" #файл для замены слешей в путях с windows style на linux style
и поместим в
/etc/tftpd.remap
вот такую строкуUPD, дополнение от читателя Aleksey Shipilev
2. Samba
# aptitude install samba
В конец файла
/etc/samba/smb.conf
добавим информацию о папке, где будут лежать инсталляционные файлы Windows.Cоздаем папку, даем права и рестартим самбу
# mkdir /srv/tftp/images # chmod 777 /srv/tftp/images # service samba restart
3. Syslinux
Скачиваем и заливаем в корень TFTP сервера все необходимое
# cd /tmp # wget https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.02.tar.gz #только с этой версией удалось подружить инсталлятор ESXi # tar -xf syslinux-4.02.tar.gz # cd syslinux-4.02/ # find ./ -name "memdisk" -type f|xargs -I {} cp '{}' /srv/tftp/ # find ./ -name "pxelinux.0"|xargs -I {} cp '{}' /srv/tftp/ # find ./ -name "*.c32"|xargs -I {} cp '{}' /srv/tftp/
Перейдем к настройке
# cd /srv/tftp/ # mkdir pxelinux.cfg # cd pxelinux.cfg
Создадим конфиг основного меню и внесем начальные настройки
# cat > 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 120 TEXT HELP The system will boot after the time is up ENDTEXT
4. DHCP
# aptitude install isc-dhcp-server
дефолтный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон
# mv /etc/dhcp/dhcpd.conf{,_orig} # cat > /etc/dhcp/dhcpd.conf option domain-name-servers 8.8.8.8, 8.8.4.4; option ip-forwarding on; default-lease-time 60; min-lease-time 120; max-lease-time 300; authoritative; ddns-update-style interim; log-facility local7; shared-network PXE-Netwotk { subnet 10.0.10.0 netmask 255.255.255.0 { range 10.0.10.10 10.0.10.254; option routers 10.0.10.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8, 8.8.4.4; filename "pxelinux.0"; next-server 10.0.10.1; option root-path "10.0.10.1:/srv/tftp/"; } } # service isc-dhcp-server restart
address=10.0.10.0/24 gateway=10.0.10.1 dns-server=8.8.8.8, 8.8.4.4 wins-server="" ntp-server=212.20.50.208 caps-manager="" domain="domain.local" next-server=10.0.10.1 boot-file-name="pxelinux.0" dhcp-option=""
network <ip сети> <маска>
ip dhcp pool <Имя пула>
bootfile pxelinux.0
next-server <IP сервера tftp>
default-router <Шлюз>
option 66 ascii «Имя сервера»
dns-server <DNS сервера>
option 150 <IP сервера tftp>
domain-name <доменное имя>
Так же стоит заметить, что в данной инсталляции у севера две сетевые карты и он является еще и шлюзом в интернет.
5. HTTP
Пока просто установим, а зачем он нам понадобился будет понятно далее по тексту.
# aptitude install apache2
6. NFS
Ровно так же как и предыдущий пункт.
# aptitude install nfs-kernel-server
Если все сделано правильно, то при загрузке какой-либо машины с этого DHCP/PXE/TFTP сервера мы увидим следующее:
Основа готова!
Двигаемся далее.
Научим сервер устанавливать различные ОС
Для установки нам будут доступны:
Структура меню, а следовательно и файл
/srv/tftp/pxelinux.cfg/default
притерпели изменения.Листинг директории
/srv/tftp/pxelinux.cfg/
root@pxe:/srv/tftp/pxelinux.cfg# ls -l total 32 -rw-r--r-- 1 tftp tftp 475 Фев 17 18:04 bsd -rw-r--r-- 1 tftp tftp 881 Фев 17 18:00 default -rw-r--r-- 1 tftp tftp 1316 Фев 17 18:01 linux -rw-r--r-- 1 tftp tftp 363 Фев 17 18:03 vmware -rw-r--r-- 1 tftp tftp 312 Фев 18 00:01 windows
Пути к папкам, где лежат установочные файлы для каждой из ОС, описаны относительно корня TFTP сервера, т.е.
/srv/tftp
.Например для FreeBSD указано
следовательно в корне TFTP нужно создать папки
freebsd/10/
, при этом обратите внимание на праваls -l /srv/tftp/freebsd/10/ total 193780 -rw-r--r-- 1 tftp tftp 198430720 Фев 17 18:17 mfsbsd-se-10.1-RELEASE-amd64.iso
У всех должно быть право на чтение — это правило справедливо для всех файлов отдаваемых по TFTP.
И еще пара слов о установке FreeBSD.
Логин / пароль для входа в загружаемый iso: root / mfsroot(либо root без пароля).
Плюс пара примеров скриптов инсталяции FreeBSD на ZFS:
1. RAID6 из 4-х дисков.
2. RAID1 из 2-х дисков.
О том как подготовить 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 написано здесь, но я на этом останавливаться не стану.
Добавим способность загружать различные дисковые утилиты и тест памяти
Данный раздел будет содержать:
А я расскажу зачем мы ставили еще и 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 войдут:
Несколько слов о выбраных LiveCD.
Debian 7 LiveCD
Этот CD — сборка одного из наших инженеров, включающая в себя следующее:
Логин / пароль: root / ServerClub
HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться здесь.
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.
Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее здесь.
SystemRescueCD
Основан на Gentoo, предназначен для восстановления Linux систем.
Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке.
Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом.
Антивирусы
В отдельном представлении оба антивируса не нуждаются.
О Kaspersky Rescue disk подробнее можно прочесть здесь.
С описанием AVG Recsue CD вас ознакомит данный url.
default
av
Заключение, оно же и сюрприз
На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.
В качестве сюрприза предлагаю вам два варианта нашей сборки, доступные по ссылкам ниже:
прямая ссылка)прямая ссылка)В первом случае необходимо самостоятельно подготовить сервер(в этом поможет глава «Начало» данного эпоса), разархивировать содержимое архива и внести корректировки сообразно реалиям вашей среды.
Второй случай подразумевает установку на голое железо или виртуальную машину.
Вкратце шаги по развертыванию сборки из полного архива ОС будут такими:
1. Загрузиться с Linux LiveCD.
2. Разметить диск и отформатировать разделы.
3. Примонтировать “/” раздел.
4. Распаковать архив.
5. Установить загрузчик.
6. Перезагрузиться.
7. Настроить ОС в соответствии вашей сети и начать пользоваться.
Логин / пароль: root / ServerClub.
ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.
Полезные ссылки
Как подготовить Kaspersky Rescue disk 10 для загрузки с PXE
Wiki syslinux
Как подготовить ESXi для установки с PXE
C PXE не грузится интсаллятор ESXi. Решение
От чего с PXE не грузится интсаллятор ESXi. Решение
За сим заканчиваю, благодарю за внимание!
Для тех, у кого нет аккаунта на Хабре.
Если у вас возникнут вопросы/замечания, то пишите мне на почту — er[dog]serverclub.com.
грубо стырено тут (для себя)
Поделиться:
By serg • Linux, PXE 0