Андрей Смирнов
Время чтения: ~26 мин.
Просмотров: 5

Pxe

Альтернативные способы

Как видно из меню syslinux, существует несколько других альтернатив:

NFS

Вам нужно будет настроить сервер NFS с экспортом в корне вашего смонтированного установочного носителя, который будет , если вы следовали за разделом . После настройки сервера добавьте следующую строку в файл :

/etc/exports
mnt/archiso 192.168.0.0/24(ro,no_subtree_check)

Если сервер уже запущен, повторно экспортируйте файловые системы с помощью .

Настройки по умолчанию в установщике ожидают найти NFS в , поэтому вам нужно будет отредактировать параметры загрузки. Для этого нажмите вкладку в соответствующем выборе меню загрузки и отредактируйте параметр соответственно:

archiso_nfs_srv=${pxeserver}:/mnt/archiso

Кроме того, вы можете использовать для всего процесса.

После загрузки образа ядра начальной загрузки Arch скопирует корневую файловую систему через NFS на загрузочный хост. Это может занять некоторое время. Как только это завершится, у вас появится работающая система.

NBD

Установите пакет и настройте его:

/etc/nbd-server/config

    readonly = true
    exportname = /srv/archlinux-2017.12.01-x86_64.iso

Запустите .

Существующий сервер PXE

Если у вас есть PXE-сервер с настроенной системой PXELINUX (например, комбинация DHCP и TFTP), вы можете добавить в файл следующие пункты меню, чтобы загрузить Arch предпочтительным для вас способом:

LABEL 2
        MENU LABEL Arch Linux x86_64
        LINUX /путь/до/распакованного/Arch/ISO/arch/boot/x86_64/vmlinuz
        INITRD /путь/до/распакованного/Arch/ISO/arch/boot/intel_ucode.img,/путь/до/распакованного/Arch/ISO/arch/boot/amd_ucode.img,/путь/до/распакованного/Arch/ISO/arch/boot/x86_64/archiso.img
        APPEND archisobasedir=arch archiso_http_srv=http://httpserver/путь/до/распакованного/Arch/ISO/ ip=::
        SYSAPPEND 2
        TEXT HELP
        Arch Linux 2018.09.01 x86_64
        ENDTEXT

Системы с небольшим объемом памяти

Опция initramfs может использоваться для контроля того, должна ли корневая файловая система полностью копироваться в оперативную память в полном объеме в начале загрузки.

Настоятельно рекомендуется оставить этот параметр в покое, и его следует отключать только в случае необходимости (системы с физической памятью размером менее 256 МБ). Если вы хотите это сделать, добавьте в строку ядра.

Примечание: Поскольку для этого требуются loop-mounting squashfs из смонтированной удаленной файловой системе, и являются взаимоисключающими.

Как это работает?

Для загрузки по сети, компьютер должен получить

  1. идентификацию

  2. образ операционной системы и

  3. обычно, рабочую файловую систему.

Рассмотрим бездисковый компьютер (DC) у которого есть загрузочная сетевая ПЗУ. Возможно наличие нескольких идентичных бездисковых компьютеров. Как же их различать? У этих компьютеров (фактически у их сетевых карт) есть некоторая уникальная информация, это — сетевой Ethernet адрес. Каждая Ethernet карта в мире имеет уникальный 48 битный Ethernet адрес, так как каждый производитель Ethernet аппаратуры зарезервировал для себя блок адресов. По соглашению эти адреса записываются в виде шестнадцатеричных чисел разделенных двоеточием по группам, в каждой группе по две цифры, например —
00:60:08:C7:A3:D8 .

Используемые для получения IP адреса по данному Ethernet адресу протоколы называются
Boot Protocol (BOOTP) и
Dynamic Host Configuration Protocol (DHCP). DHCP — развитие BOOTP. В наших рассуждениях, если не указано иное, все что применимо к BOOTP также применимо к DHCP. (Фактически немного неправильно говорить, что BOOTP и DHCP всего лишь транслируют Ethernet адреса, в них предусмотрено обеспечение работы BOOTP и DHCP с любым типом аппаратных адресов, но большинство использует Ethernet.)

Пример обмена информацией BOOTP выглядит подобным образом:

DC: Привет, мой аппаратный адрес
00:60:08:C7:A3:D8, дай мне мой IP адрес.

BOOTP сервер: (Смотрит в базу данных адресов.) Твое имя aldebaran, твой IP адрес 192.168.1.100, твой сервер 192.168.1.1, твой предполагаемый загрузочный файл /tftpboot/vmlinux.nb (и еще несколько частей информации).

Вы удивитесь, как бездисковый компьютер изначально находит адрес BOOTP сервера. Ответ таков — он его не ищет. Запрос BOOTP широковещательный по локальной сети и любой BOOTP может ответить на запрос.

После получения IP адреса, DC должен загрузить образ операционной системы и выполнить его. Другой используемый тут Интернет протокол называется
Trivial File Transfer Protocol (TFTP). TFTP подобен обрезанной версии FTP — тут нет идентификации, и он работает поверх User Datagram Protocol (UDP), а не поверх Transmission Control Protocol (TCP). UDP был выбран вместо TCP для упрощения. Реализация UDP на DC может быть маленькой, посему код легко помещается в ПЗУ. Так как UDP блочно-ориентированный протокол, в отличие от потоково-ориентированных протоколов, передача следует блок за блоком, как например:

DC: Дай мне 1 блок файла /tftpboot/vmlinux.nb. TFTP сервер: Лови. DC: Дай мне блок 2.

и так далее, пока не будет передан весь файл. Переговариваясь, он подтверждает передачу каждого блока, и потеря пакета будет обнаружена и пакет будет передан через таймаут. Когда все блоки получены, сетевой boot ROM передает управление в точку входа образа операционной системы.

AOMEI PXE Boot FREE — инструмент для сетевой загрузки компьютеров с ISO образа

 
Всё правильно друзья, AOMEI PXE Boot FREE — является бесплатным инструментом для загрузки компьютеров по локальной сети (LAN) и дальнейшего их обслуживания. Загружать удалённый компьютер можно даже с различных ISO образов, будь то образы антивирусных дисков Live CD, менеджеры разделов жёсткого диска (Acronis, Paragon), можно выполнять операции восстановления компьютеров с помощью реанимационного комплекса ERD Commander и так далее.

Рассмотрим использование AOMEI PXE Boot FREE для загрузки компьютеров по сети используя различные ISO образы, всего их будет три: загрузочный диск Paragon Домашний эксперт 12 (Paragon_Media), ERD65, загрузочный диск, созданный при помощи AOMEI PE Builder (ampxe).

http://www.aomeitech.com/pxe/pxe-boot-software.html
Нажимаем Free Download

Скачанный установочный файл программы. Запускаем его и производим установку.

Далее

Соглашаемся с лицензионным соглашением, Далее

Выбираем папку, в которую будет произведена установка программы (оставляем по умолчанию). Далее

Далее

Выбираем создать ярлык программы на рабочем столе. Далее

Установка

Процесс установки

Установка завершена

Ярлык программы на рабочем столе

На компьютере заранее были приготовлены три iso образа: загрузочный диск Paragon Домашний эксперт 12 (Paragon_Media), ERD65, загрузочный диск, созданный при помощи AOMEI PE Builder (ampxe)

Копируем все три образа в папку с установленной программой,то есть по пути C:\Program Files(х86)\AOMEI PXE Boot Free 1.0

На компьютере установлен антивирус Eset Smart Security 8, в состав которого входит файервол. Отключаем его.

Запускаем программу AOMEI PXE Boot. Откроется главное окно программы

Выбираем пункт Boot from custom image file и нажимаем Browse

Загрузим по сети образ ERD 6.5, его и выбираем

Нажимаем Start Service

Служба запущена и ожидает загрузку образа на удаленном компьютере

Загружаем удаленный компьютер по сети. Как видим, идет загрузка с указанного нами iso образа ERD65

Полностью загруженный образ ERD65 (на удаленном компьютере)

На стороне сервера после загрузки образа появится сообщение что образ успешно загружен

Чтобы остановить службу, нужно нажать кнопку Stop Service

Служба в процессе остановки

Аналогичным образом загрузим по сети загрузочный образ программы Paragon Домашний эксперт 12 (Paragon_Media.iso)

Загрузка образа

Образ полностью загружен

Теперь загрузим образ, созданный при помощи программы AOMEI PE Builder. Выбираем Boot from AOMEI Windows PE or Linux system и нажимаем Start Service

Загрузка образа ampxe.iso

Образ загружен

Troubleshooting

Target PC/notebook will not start to PXE bootSolution: Switch on the client/target computer and enter the BIOS Setup menu (usually by pressing DEL or F2) — find the Boot options menu and ensure that Network Booting is enabled. Then change the Boot Order so that Network is at the top of the list. If you have a BBS (BIOS Boot Selection) option, enable this so that you can press F12 (usual key) to start a PXE boot after switch on. You should see something similar to that shown below:

If the BIOS tries to PXE boot, you should see some mentions of ‘PXE’ or ‘UNDI’
and a MAC Address should be displayed.

Target PC/notebook starts to PXE boot but gives a DHCP not found errorSolution:This means that your tftpd32/64 application is not correctly configured and is not acting as a DHCP server. Check the Server tab on the main form of tftpd32/64 to see if it displays any MAC address or IP address — if it does not, check the Log Viewer panel (see below) to see if any packets were received.


If you can see that some packets were received, check that the TFTP options are correct (try setting PXE compatibility instead of Option negotiation — but if it does not work remember to set it back to Option negotiation again afterwards as most setups only work with this set.)

Check also you have ticked the Bind TFTP and DHCP tick boxes!

PXE client starts to boot but bombs out with \Boot\BCD error Solution: Change Advanced Tftp options — PXE Compatibilty DISABLED and Option negotiation ENABLED

PXE booting starts but hangs when loading a large boot file (e.g. boot.sdi)

Troubleshooting

  • After connecting the network cable, watch the Windows SystemTray network icon — wait until the icon animation has stopped (usually 1-2 minutes) before you attempt to start Serva.
  • If you having problems, try disabling the Windows Firewall on your PC and temporarily stopping your Anti-Virus protection,.
  • If you are using a router as a hub, disconnect any other Ethernet cable except for the target PXE system and your Serva Windows PC.
  • Try a different PXE client notebook or PC — some PXE BIOSes are buggy (not all PXE BIOS ROMs support proxyDHCP PXE booting)!
  • If it starts to load the OS installation files and then stops with an error message — see .
  • If you are installing XP and you just see the black screen with the XP logo, make sure you have set up the Share on the C:\SERVA_ROOT folder correctly and followed the Null Session share instructions.
  • If the client is having communication problems with the Serva host PC (e.g. PXE client is not receiving the DHCP offer or lots of timeouts, etc.) try switching off and on your router — if still no joy, switch off your host PC, client PC and router. Then switch on the router, wait 1 minute and the switch on your host PC. Now try again!

Note: grldr and grub.exe will not work if the PXE server is using proxyDHCP mode. Grub4dos does not currently support this feature. To use grub4dos your PXE server must also be the DHCP server (i.e. do not use proxyDHCP mode and disable your DHCP server services whilst Serva is running).

Настройка PXE для Windows

С помощью средств Windows PE и файла образа Windows 10 можно установить Windows 10 по сети.

Необходимые условия:

  1. Компьютер развертывания: компьютер с помощью комплекта средств для развертывания и оценки Windows (WindowsADK).
  2. DHCP-сервер: DHCP-сервер или прокси-сервер DHCP, настроенный для отправки ответов на запросы PXE-клиентов.
  3. PXE-сервер: сервер под управлением службы TFTP, на котором могут размещаться файлы загрузки Windows PE для скачивания клиентом.
  4. Файловый сервер: сервер с общей сетевой папкой.

Все четыре перечисленных выше роли могут размещаться на одном компьютере, также можно выделить отдельный компьютер для каждой роли.
Теперь разберём сам процесс настройки:

Скопируйте исходные файлы Windows PE

На компьютере развертывания: нажмите Пуск и введите развертывание.

  • Щелкните правой кнопкой мыши элемент Среда средств развертывания и работы с образами и затем нажмите Запуск от имени администратора. Будет запущен ярлык среды средств развертывания и создания образов, который открывает окно командной строки и автоматически задает переменные среды таким образом, чтобы они указывали на все необходимые средства.
  • Запустите следующую команду, чтобы скопировать базовые файлы WindowsPE в новую папку. Сценарий требует два аргумента: архитектуру оборудования и целевое расположение. Значение <архитектуры> может быть x86, amd64 или arm, а <назначение> может соответствовать пути к локальному каталогу. Если каталог еще не существует, он будет создан.

Сценарий создает структуру каталогов назначения и копирует все необходимые файлы для этой архитектуры. В этом примере создаются следующие каталоги:

Необходимо подключить базовый образ WindowsPE (winpe.wim) в каталог \mount с помощью средства DISM. При подключении файла образа его содержимое распаковывается в папку, что позволяет вносить изменения напрямую или с помощью таких программ, как DISM.

Dism /mount-image /imagefile:c:\winpe_amd64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_amd64\mount
  • Далее необходимо убедиться, что отображается сообщение «Операция завершена успешно». Примечание. Чтобы просмотреть подключенные в настоящее время образы, то необходимо ввести dism /get-MountedWiminfo.
  • Дальше необходимо выполнить сопоставление общего сетевого ресурса корневому каталогу TFTP на сервере PXE/TFTP и создайте папку \Boot. Здесь следует к документации сервера TFTP, чтобы определить корневой каталог сервера TFTP, а затем включить общий доступ к этой папке и убедитесь, что она доступна в сети. В следующем примере имя сервера PXE имеет значение PXE-1, а общий доступ к корневому каталогу TFTP предоставляется с помощью сетевого пути .
  • Скопируйте файлы загрузки PXE из подключенного каталога в папку \boot.
copy c:\winpe_amd64\mount\windows\boot\pxe\*.* y:\boot

Скопируйте файл boot.sdi на сервер PXE/TFTP.

copy C:\winpe_amd64\media\boot\boot.sdi y:\boot 
  • Скопируйте загрузочный образ WindowsPE
    copy C:\winpe_amd64\media\sources\boot.wim y:\boot 
  • Скопируйте в папку \boot шрифты true type </console>.
copy C:\winpe_amd64\media\Boot\Fonts

Сведения по процессу загрузки PXE

Сведения о процессе загрузки PXE-клиента.

  1. Клиент направляется параметрами и на скачивание файла с сервера TFTP.
  2. PXEboot.n12 сразу же начинает сетевую загрузку.
  3. Клиент скачивает boot\bootmgr.exe и файл boot\BCD с сервера TFTP. Хранилище BCD должно находиться в каталоге \boot на сервере TFTP и должно называться BCD.
  4. Bootmgr.exe считывает записи данных конфигурации загрузки операционной системы и скачивает boot\boot.sdi и образ WindowsPE (boot\boot.wim). В число дополнительных файлов, которые также можно скачать, входят шрифты true type и файл состояния гибернации , если эти файлы есть в наличии.
  5. Bootmgr.exe запускает WindowsPE путем вызова winload.exe в образе WindowsPE.
  6. Windows PE загружается, открывается окно командной строки и выполняется файл wpeinit.exe для инициализации Windows PE.
  7. Клиент Windows PE обеспечивает доступ к таким средствам, как imagex, diskpart и bcdboot, с помощью командной строки Windows PE. Используя эти средства вместе с файлом образа Windows 10, можно надлежащим образом отформатировать конечный компьютер для загрузки полной операционной системы Windows 10.

Linux-сервер

Для использования на Linux сервере, может использоваться любой дистрибутив, с установленными dhcp3 и tftpd-hpa.

# Sample configuration file for ISC dhcpd for Debian
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "home.local";
option domain-name-servers 10.0.0.254;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0
{
        range 10.0.0.10 10.0.0.19;
        option domain-name-servers myserver.home.local;
        option domain-name "home.local";
        option routers IPofYourServer;
        option broadcast-address 10.0.0.255;
        default-lease-time 28800; # 8 hrs
        max-lease-time 86400; # 1 day
        allow bootp;

 host myclient
        {
                hardware ethernet 00:0F:EA:66:07:48;
                fixed-address myclient.home.local;
                filename "pxelinux.0";
                server-name "myserver.home.local";
        }
}

Проверьте настройку xinetd/inetd для tftpd.

service tftp
{
        disable         = no
        log_type        = SYSLOG daemon info
        log_on_access   = PID HOST USERID EXIT DURATION
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -vv -s /path/to/tftpboot/
        bind            = IPofYourServer
}

Создание содержимого TFTP-сервера

  1. Скачайте ISO-образ ReactOS
  2. Поместите его в /путь/к/TFTPBoot с именем ReactOS-LiveCD.iso
  3. Извлеките loader/setupldr.sys в /путь/к/TFTPBoot, и переименуйте его в freeldr.sys
  4. Извлеките core/pxelinux.0 и com32/modules/chain.c32 в /путь/к/TFTPBoot
  5. Создайте каталог /путь/к/tftpboot/pxelinux.cfg и поместите в него файл с именем default (без расширения) со следующим содержанием:
DEFAULT chain.c32
APPEND file=freeldr.sys seg=0x0F80 keeppxe

7.Создайте /путь/к/tftpboot/freeldr.ini со следующим содержимым:


DefaultOS=LiveCD_Debug
TimeOut=3


TitleText=ReactOS LiveCD
StatusBarColor=Cyan
StatusBarTextColor=Black
BackdropTextColor=White
BackdropColor=Blue
BackdropFillStyle=Medium
TitleBoxTextColor=White
TitleBoxColor=Red
MessageBoxTextColor=White
MessageBoxColor=Blue
MenuTextColor=Gray
MenuColor=Black
TextColor=Gray
SelectedTextColor=Black
SelectedColor=Gray
ShowTime=No
MenuBox=No
CenterMenu=No
MinimalUI=Yes
TimeText=Seconds until highlighted choice will be started automatically:


LiveCD="LiveCD"
LiveCD_Debug="LiveCD (Debug)"
LiveCD_Screen="LiveCD (Screen)"


BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/MININT /RDPATH=net(0)\ReactOS-LiveCD.iso /RDEXPORTASCD


BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/DEBUG /DEBUGPORT=COM1 /BAUDRATE=115200 /SOS /MININT /RDPATH=net(0)\ReactOS-LiveCD.iso /RDEXPORTASCD


BootType=Windows2003
SystemPath=ramdisk(0)\reactos
Options=/DEBUG /DEBUGPORT=SCREEN /SOS /MININT /RDPATH=net(0)\ReactOS-LiveCD.iso /RDEXPORTASCD

Set up TFTP server

Next, we need to set up a TFTP server on the Server.

Again, there are several packages that provide TFTP (trivial FTP, unsafe, to be used in LAN’s only). It seems best practice to use the package tftpd-hpa. On installation, a few questions are asked. The response to these questions goes into a configuration file, /etc/default/tftpd-hpa. There should be no need to modify the following default contents:

  TFTP_USERNAME="tftp"
  TFTP_DIRECTORY="/srv/tftp"
  TFTP_ADDRESS="0.0.0.0:69"
  TFTP_OPTIONS="--secure"

Ignore older Web sites that instruct you to insert something like ‘RUN_DAEMON=»yes»‘.

After each modification of the above configuration file, restart the TFTP server with

  # /etc/init.d/tftpd-hpa restart

or

  # systemctl restart tftpd-hpa

On Jessie, the directory /srv/tftp will be automatically created. This means the next two steps are not necessary if you use Jessie.

Initially, on pre-Jessie versions, restarting the TFTP server might fail with a message like

  Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

Therefore, as root, create the directory /srv/tftp. Restart the TFTP daemon. Check that it is actually running:

  # pgrep -lf tftpd
  12555 /usr/sbin/in.tftpd

or

  # systemctl status tftpd-hpa

which again gives a few lines of the log rather than just the fact that the task is (isn’t) running.

It is useful to test your TFTP server with a TFTP client; you may simply use the tftp-hpa package for this purpose:

  # cd /tmp
  # uname -a >/srv/tftp/test
  # tftp 192.168.0.2
  tftp> get test
  tftp> quit
  # diff test /srv/tftp/test
  (nothing, they are identical)

It is also useful to see what log entries you get when you download a file that exists, and when you try to download one that doesn’t. While using tftp to test your tftpd server, try tracking your experiments with old and new forms of the log command while you are using your TFTP client to download files that do, as well as files that do not, exist.

The traditional command on Jessie

  # tail -f /var/log/syslog

(Note again that earlier Debian releases used /var/log/daemon.log instead of syslog.)

On systemd

  # journalctl -fu tftpd-hpa

Sadly, these seem to give different results, as of January 2017. The systemd command does not display file requests for files that do not exist.

It is quite useful to know what the client is asking for, as it helps you move files to the expected location if you make mistakes later on. At present then it is probably worth using the traditional way of log tracking for TFTPD.

Reboot the Client. You should see error messages on the client screen starting with

  PXE-T01: File not found

which is quite correct since we did not yet provide any files. On the server screen, you will see exactly what the client did ask for.

Описание

Технология PXE (Preboot Execution Environment — Среда предварительного исполнения), которая произносится как «Пикси» (Pixie — волшебная пыль), является подходом, который позволяет компьютеру (клиентскому компьютеру) загружаться, используя только свою сетевую карту. Этот метод загрузки был создан еще в 1999 году и если компьютер подключен к сети (и поддерживает этот стандарт), то можно обойти обычную процедуру загрузки (т. е. включение питания -> BIOS -> HD / CD) и эта среда позволяет сделать некоторые вещи, начиная с поиска и устранения неисправностей, для чего обычно используется liveOS, или снять образ машины. На рисунке показан процесс загрузки PXE с NFS Root Mount:

  1. Клиент передает DHCP DISCOVER сообщение.
  2. DHCP — сервер отвечает с IP — адресом, next-server, имя файла и root-path значением.
  3. Клиент отправляет TFTP — запрос next-server, запрашивая получение имени файла.
  4. Сервер TFTP отвечает и отправляет имя файла клиенту.
  5. Клиент вводит имя файла, то есть PXE Boot, который затем загружает ядро. Когда ядро ​​выполняется, указанная корневая файловая система root-path монтируется поверх NFS (см. Рисунок 1).
    Рисунок 1 – Процесс загрузки PXE

Системные требования

  1. Клиентская машина, которая поддерживает загрузку PXE.
  2. DHCP-сервер: DHCP-сервер или прокси-сервер DHCP, настроенный для отправки ответов на запросы PXE-клиентов.
  3. PXE-сервер: сервер под управлением службы TFTP, на котором могут размещаться файлы загрузки #Windows PE для скачивания клиентом.
  4. Файловый сервер: сервер с общей сетевой папкой.
  5. Системы на основе Debian (например Debian Squeeze), Ubuntu Server 9.10, Linux Mint10) или Windows.

Процесс загрузки

PXE обычно включает в себя загрузку компьютера из встроенного программного обеспечения — данные, содержащиеся в постоянном запоминающем устройстве ( ПЗУ ) или программируемом постоянном запоминающем устройстве ( PROM ), — а не из данных, содержащихся на магнитном носителе. Это приводит к появлению терминов «PXE boot ROM» или «PXE boot PROM» (иногда пишется «PXE bootprom»). Загрузка из ПЗУ или ППЗУ исключает зависимость от электромеханического устройства (физического привода). Это повышает надежность и устраняет ошибки чтения диска. Благодаря современной технологии памяти загрузка с ROM или PROM происходит быстро. PXE также можно использовать для загрузки компьютера из сети.
Когда используется подход PXE, процесс загрузки изменяется с обычного на следующий:

  1. Включение питания.
  2. BIOS.
  3. Стек PXE сетевой карты.
  4. Программа сетевой загрузки Network Boot Program (NBP), загружаемая с помощью TFTP с сервера в память клиентской машины.

Using pxelinux instead of gPXE

Since recent version of syslinux, pxelinux also has support to boot over tftp.
The pxelinux.cfg/default file (or specific MAC address file name) should be in the same format as with regular syslinux.
You will need to use a copy of the pxelinux.0 found when installing syslinux on alpine: /usr/share/syslinux/pxelinux.0 and copy it to your tftp server.
Don’t forget to also copy ldlinux.c32, as its a dependency of syslinux variants (see documentation).

vmlinuz-grsec is taken from a system running in memory from usb.pxerd is generated on a system running in memory from usb. With network nfs and virtio_net added./srv/boot/alpine is a copy of /media/usb from a system running in memory from usb.modules=loop,squashfs,sd-mod,usb-storage is not needed as loop and squashfs are hard coded into the init script and we do not use sd nor usb. does not seems to work. Without neither…(*).

Начнем с Windows

На эту тему на просторах Сети можно найти довольно много статей. За основу я взял статью с Хабра «Установка Windows Server 2008 по сети с Linux PXE сервера. Кастомизация образа WinPE».

WARNING

Все дальнейшие действия, связанные с подготовкой Windows, выполняются в среде Windows.

Первым делом необходимо подготовить среду WinPE, с которой и будем запускать установки различных систем семейства Windows. Для этого нам потребуется пакет Windows AIK, скачать который можно бесплатно с официального сайта Microsoft.

Запуск средств развертывания Windows PE

После установки пакета Windows AIK открываем консоль «Командная строка средств развертывания». Скопируем WIM-образ и загрузчик и смонтируем его в систему:

Скрипт с меню WinPE запускается файлом . Для корректного отображения кириллицы надо сменить кодировку этого файла на CP866. Следующим шагом нужно поправить по необходимости файл скрипта.

Добавляем параметры в меню PXE-сервера

Меню готово. Как видно из параметров в скрипте, на каждом этапе подключается некая сетевая папка. На PXE-сервере, установка и запуск которого были описаны в предыдущей статье, через Samba нужно опубликовать папку, которая будет доступна только для чтения (иначе установщик может стремиться что-нибудь туда запихнуть или перезаписать).

Далее для автоустановок надо подготовить файлы ответов. Забегая вперед, скажу, что благодаря этим самым файлам можно добиться абсолютно любого результата, например реализовать автоустановку с разбивкой первого диска 40/60% с подключением к домену, и дальше все необходимое программное обеспечение можно уже доставить групповыми политиками домена (но это уже совсем другая история).

Меню подготовили, дальше нужно все запаковать назад в WIM-образ:

Полученный образ WinPE — winpe.wim копируем на PXE-сервер. Далее в меню загрузки PXE, созданного в первой статье, подключаем дочерний файл, в котором будет раздел windows.

Загрузка WIM-образов описана в первой статье. Поэтому привожу только секцию запуска:

Подготовка файла ответов

Начнем с Windows 7 Pro. Для подготовки файла ответов потребуется файл install.wim, который можно взять на установочном диске Windows 7 в папке source. Хватаем его, копируем в удобное доступное место. Далее запускаем Windows System Image Manager.

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!
Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Я уже участник «Xakep.ru»

Preconditions

The computer you want to install to will be called the Client.

The computer you install from will be called the Server. We assume that the Server is running Debian.

To be specific, we assume that the Client and the Server are part of a LAN with the following IP addresses:

  • 192.168.0.1 router (i.e. LAN default gateway) and DNS recursive server
  • 192.168.0.2 the Server (will host a DHCP and TFTP server)
  • 192.168.0.x the Client

You will find out the value of x later.

Note that many routers also provide a DHCP server: you will have to turn it off, since only one DHCP server can run in a given LAN. Unless you may configure your router’s DHCP server to comply with the ISC DHCP server configuration below, but this is outside of the scope of this document.

It is also possible that the router and the server are the same machine, i.e. that your Debian server is the default gateway for this LAN. This will work fine.

The following instructions have been tested with Debian 8.2 (Jessie) in September 2015.

Подготовка папки для Windows 7.

Установка будет происходить по такому сценарию:

    Загрузка по сети образа Windows7 PE (без графической оболочки)
    Вызов меню выбора системы для установки («install_menu.cmd»)
    Монтирование необходимого сетевого устройстваЗапуск setup.exe с указанием файла ответов

Рисунок 7 Установка WAIK

    
      Для создания загрузочного образа Windows7 PE («boot.wim») обязательно понадобиться компьютер с установленной системой Windows 7, Windows Vista, Windows Server 2003 или Windows Server 2008 (я использовал виртуальную машину c Windows 7 — далее обслуживающий компьютер). Устанавливаем Windows Automated Installation Kit (WAIK) (См. Рис.7-9.).
 

Рисунок 8 Выбор компонентов настройки


Рисунок 9 Добавление параметров настройки

Запускаем  Windows PE Tools Command Prompt (Пуск-> Программы-> Microsoft Windows AIK -> Windows PE Tools Command Prompt). В действительности это обычное окно программы командного процессора Cmd.exe, только с добавленными дополнительными переменными окружения. Создаем копию загрузочного образа с необходимой архитектурой (параметр x86):
 

монтируем образовавшийся образ:
 

Открываем на редактирование файл «startnet.cmd» из каталога c:\windows7pe-x86\mount\windows\system32. Этот файл запускается первым после загрузки и старта системы. Вот в нем и надо прописать вызов скрипта «install_menu.cmd», который будет отвечать за выбор ОС для установки.
Содержание  «startnet.cmd»:

 

	Wpeinit # Окончательная инициализация системы
	ipconfig renew # Инициализируем сетевые интерфейсы
	call install_menu.cmd

Зачем использовать ipconfig renew? Как показала практика, по неизвестной причине не все сетевые карты  инициализируются после выполнения Wpinit. Поэтому еще раз вызываем настройку интерфейса (рис.10).
 

Рисунок 10 Ошибка инициализации сети

Configure mkinitfs to generate a PXE-bootable initrd

NOTE: There is currently a mkinitfs profile just for networking called: network.
Using it will automatically add pxe support and all ethernet drivers to the initramfs.

You need to add drivers for any Ethernet cards with which you might PXE boot to your initrd. To do this, create . List any kernel drivers you require for your Ethernet card. If you are using an Intel E1000 card (this is used by VMware and VirtualBox, and so is good for testing), add

 kernel/drivers/net/ethernet/intel/e1000/*.ko

You also must create the following files so that the modules and scripts necessary for DHCP and NFS are inserted into the initrd.

 /etc/mkinitfs/features.d/dhcp.files, containing:
   /usr/share/udhcpc/default.script
 /etc/mkinitfs/features.d/dhcp.modules, containing:
   kernel/net/packet/af_packet.ko
 /etc/mkinitfs/features.d/nfs.modules, containing:
   kernel/fs/nfs/*

Finally edit and add features squashfs, network, dhcp and nfs.

Generate a PXE-capable initrd by running

 mkinitfs -o /srv/http/prov/pxerd

You should now be able to PXE-boot Alpine Linux. This feature is still in development and non-fatal post-initrd boot errors (regarding modloop, etc.) are to be expected.

Preface

Installation using network booting must not be confused with DebianNetworkInstall. In network install, you start with a CD (or USB flash memory or similar) to install a minimal Linux system before you proceed to download further packages over the network.

Installation using network booting is also different from using the network to boot an already-installed system: in which case, the client machine remains dependent on the server being up and running at every future boot. The Linux Terminal Server Project (LTSP) works like that, for example.

This page describes installing a new Debian system with no CD, DVD, USB at all. By the end of the installation process, the new machine is able to run without the support of the server. During the installation, you will need a network boot server.

As there are no fiducial boot servers out in the wild, you need to set up your own. This is considerably more complicated than installing Debian from CD (shorthand for CD or USB or …). Normally, network booting is only used if there is really no way to boot from CD. If booting from CD fails, this may be due to BIOS problems that will equally prevent network booting (typical troubleshooting attempts include switching off secure booting, switching from UEFI to legacy boot mode, and similar).

In the Web, several articles can be found that describe in more or less detail how to setup a network boot server. They all have the same weakness: you are required to execute a long list of instructions without getting any feedback before the very end of the procedure when you try to boot. If it works, fine. If not, debugging will become very very difficult. Therefore, in the following, we break down the procedure into steps that can be debugged separately.

http://www.debian.org/releases/stable/amd64/ch04s05 — Debian Installation Guide — 4.5. Preparing Files for TFTP Net Booting

Note: If your system supports iPXE, then using netboot.xyz is likely to be much simpler.

Share Folder or Drive

If the files you need are already on the client, just use it. But if the files are not on the client computer, of course you need to get it from another computer. You can download it from the Internet but the speed will be much slower than the local area network.

First, copy all the necessary files to a folder and then share it. Or share a drive. See the Guide to Share a Folder or Drive from Microsoft.

Here are the steps I share the AIO Boot drive:

  1. Right-click on the AIO Boot drive and select Properties.
  2. Switch to the Sharing tab.
  3. Select Advanced Sharing…
  4. Check the Share this folder box.
  5. Enter a name for the Share name.
  6. Click OK.
  7. The is what I need to get, here is .

Стоит ли включать опцию?

В большинстве случаев опция Onboard LAN boot ROM не нужна пользователю, и ее рекомендуется выключить. Она может иметь смысл лишь для пользователей, которые подключены к локальной сети и загружают из нее операционную систему. Впрочем, если даже вы и не загружаете операционную систему из сети, но оставите опцию включенной, то ничего страшного не случится ­– если в сети не найдется операционной системы, то управление будет передано загрузчику встроенного накопителя, например, жесткого диска. Однако следует учитывать, что поиск системы в локальной сети может занимать какое-то время при загрузке, что делает включение опции нежелательным.

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации