Preboot Execution Environment (Русский)

Ваш ноутбук поставляется без дисковода, и не позволяет загружаться с USB-накопителя? Не бойтесь, вы можете загрузиться с помощью PXE.

Состояние перевода: На этой странице представлен перевод статьи PXE. Дата последней синхронизации: 1 сентября 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Из Википедии:Preboot Execution Environment:

PXE (англ.Preboot eXecution Environment произносится пикси) — среда для загрузки компьютеров с помощью сетевой карты без использования жёстких дисков, компакт-дисков и других устройств, применяемых при загрузке операционной системы.

В этом руководстве PXE используется для загрузки установочного носителя с соответствующей опцией-rom, которая поддерживает PXE в целевом объекте. Это хорошо работает, когда у вас уже установлен сервер.

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

Грубое описание процесса загрузки с помощью PXE:

  • клиент (тот компьютер на который вы хотите установить) подключается к сети и опрашивает DHCP-сервера для аренды IP.
  • DHCP-сервер передает клиенту IP и другую, необходимую для сетевой загрузки, информацию.
  • затем клиент, на основе полученной информации, подключается к TFTP-серверу по протоколу TFTP (который очень похож на обычный FTP) и загружает файлы.

после этого клиент загружает систему со скаченных файлов. После загрузки системы можно отключить сетевое соединение (образ полностью загружается в память).

Подготовка

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

Затем смонтируйте образ:

# mkdir -p /mnt/archiso
# mount -o loop,ro archlinux-2017.12.01-x86_64.iso /mnt/archiso

Настройка сервера

Вам необходимо установить DHCP, TFTP и HTTP-сервер для настройки сети, загрузки pxelinux/kernel/initramfs, и, наконец, загрузки корневой файловой системы (соответственно).

На данный момент Arch поддерживает загрузку PXE только в стиле BIOS. Для получения дополнительной информации смотрите FS#50188.

Сеть

Подключите проводную сетевую карту и назначьте ее соответствующим образом.

# ip link set eth0 up
# ip addr add 192.168.0.1/24 dev eth0

DHCP + TFTP

Для настройки сети на устройстве вам потребуется как DHCP, так и TFTP-сервер, чтобы облегчить передачу файлов между сервером PXE и клиентом; dnsmasq делает и то, и другое, и очень прост в настройке.

Установите пакет dnsmasq.

Настройте dnsmasq:

# /etc/dnsmasq.conf
port=0
interface=eth0
bind-interfaces
dhcp-range=192.168.0.50,192.168.0.150,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.0.1
enable-tftp
tftp-root=/mnt/archiso

Запустите dnsmasq.service.

HTTP

Благодаря недавним изменениям в archiso, теперь можно загрузиться с HTTP (archiso_pxe_http initcpio hook) или NFS (archiso_pxe_nfs initcpio hook); среди всех альтернатив, darkhttpd на сегодняшний день является самым тривиальным (и самым легким) для настройки.

Сначала, установите пакет darkhttpd.

Затем запустите darkhttpd, используя наш в качестве корневого документа:

Обратите внимание, что важно, чтобы сервер работал на порту. Если вы запустите darkhttpd без доступа суперпользователя, по умолчанию он будет 8080. Клиент попытается получить доступ к 80 порту, и загрузка завершится неудачно.

Установка

Для этой части вам нужно выяснить, как сообщить клиенту выбрать загрузку PXE; в углу экрана вместе с обычными сообщениями обычно появляется подсказка о том, какую клавишу нажать, чтобы сначала запустить загрузку PXE. На IBM x3650 при нажатии F12 появляется меню загрузки, первым вариантом которого является Network; на Dell PE 1950/2950 нажатие F12 инициирует загрузку PXE напрямую.

Загрузка

Просмотр journald на сервере PXE даст дополнительную информацию о том, что именно происходит на ранних этапах процесса загрузки PXE:

После загрузки и через TFTP вам (надеюсь) будет представлено меню загрузки syslinux с несколькими параметрами, в которых вы можете выбрать Boot Arch Linux (x86_64) (HTTP).

Затем ядро и initramfs (подходящие для выбранной вами архитектуры) будут переданы снова через TFTP:

Если все пойдет хорошо, вы должны увидеть активность на darkhttpd исходящую от PXE-target; на этом этапе ядро будет загружено на PXE-target и инициализировано:

После того, как корневая файловая система загружается через HTTP, вы в конечном итоге окажетесь в обычном запросе суперпользователя zsh.

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

Если вы не хотите, чтобы весь трафик маршрутизировался через ваш PXE-сервер (который не будет работать в любом случае, если вы не настроите его правильно), вы захотите остановить dnsmasq.service и получить новую аренду на цели установки, в зависимости от вашего сетевого расположения.

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

# umount /mnt/archiso

На этом этапе вы можете следовать Руководство по установке.

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

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

NFS

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

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

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

archiso_nfs_srv=${pxeserver}:/mnt/archiso

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

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

NBD

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

Запустите .

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

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

Вы можете заменить на для NFS или для NBD. Добавление инструкции необходимо, чтобы дать указание ядру вызвать сетевой интерфейс, прежде чем попытаться смонтировать установочный носитель по сети. Смотрите README.bootparams, чтобы узнать доступные параметры загрузки.

Ошибка переименования интерфейса DHCP

вызывает предсказуемое переименование сетевого интерфейса по умолчанию, а затем отказ клиента dhcp из-за него. Обходным путем является добавление параметра загрузки ядра net.ifnames=0, чтобы отключить предсказуемые имена интерфейсов.

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

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

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

Смотрите также

gollark: I only have maybe 20GB of data I actually care about, but because it's mixed in with all the stuff I don't and because I'm lazy I have basically no backups. One day I'll fix that. One day.
gollark: But I *like* giant glass cuboids…
gollark: We already have tags which let you store information about stuff on them (NFC or RFID or something, I forgot what), just not position finding on them yet.
gollark: 2.5" ones do tend to be more expensive per TB.
gollark: SSDs are surprisingly robust. I've (anecdotally) had one working fine for standard desktop use for about four years and it seems to still be fine (SMART says it's still 95% okay or something).
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.