Мультизагрузочный сервер для PXE и UEFI network boot (Сегодня сделаем загрузку по сети для старых и новых компьютеров!)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Aid07b
Сообщения: 7
ОС: Linux Mint

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение Aid07b »

Bizdelnick писал:
14.07.2023 11:18
Aid07b, не Ваш случай?
Интересно - нужно проверить )
Проверю, отпишусь! Спасибо!
Спасибо сказали:
Aid07b
Сообщения: 7
ОС: Linux Mint

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение Aid07b »

Bizdelnick писал:
14.07.2023 11:18
Aid07b, не Ваш случай?
В Grub - да, это работает, но на Grub у меня и так этот параметр был указан, поэтому и работало, до дописав это в Syslinux - снова выдает ошибку, так что для старого Syslinux это не вариант.

При этом тот старый до-Uefi-йный комп с которого я начинал так и не дожил до кульминации этого задания, потому что сотрудница выходила с отпуска и ей нужно было где-то работать, поэтому я по сети установил сначала мынт 19.3, потом обновил до 20, потом до 20ю3Ю потом до 21, потом до 21.1, все настроил, восстановил бекап её данных и все, она на ньом работает, поэтому дальше танцы с бубном пошли на VirtualBox. И здесь мне успешно удалось сделать загрузчик для Legacy при помощи Grub. Но теперь бы испытать это добро на практике ))
Спасибо сказали:
DarkMike666
Сообщения: 1

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение DarkMike666 »

За рассказ про Grub спасибо. Думаю о миграции на него с pxelinux.

В одном автор не прав: pxelinux вполне работает с uefi. Точнее загрузчик из этой серии syslinux. В зависимости от архитектуры нужно выбирать корректный вариант pxelinux/sysinux-efi-32/syslinux-efi-64 и соотв. набор модулей

Код: Выделить всё

        vendor-option-space pxelinux;
        option pxelinux.magic f1:00:74:7e;
        option pxelinux.configfile "::/installer/base.cfg";
        next-server 192.168.32.1;

        if (option architecture-type = 00:09 or option architecture-type = 00:07 ) {
            filename "/syslinux-efi/efi64/syslinux.efi";
            option pxelinux.pathprefix "/syslinux/modules/efi64/";
        } elsif option architecture-type = 00:06 {
            filename "/syslinux-efi/efi32/syslinux.efi";
            option pxelinux.pathprefix "/syslinux/modules/efi32/";
        } else {
            filename "/pxelinux/pxelinux.0"; 
            option pxelinux.pathprefix "/syslinux/modules/bios/";
        }
Основное: pxelinux.pathprefix в зависимости от типа загрузки + нужный загрузчик. Ну и т.к. задан префикс, то конфиги и т.д. приходится указывать с абсолютными адресами: pxelinux.configfile "::/installer/base.cfg"; - два двоеточих впереди.

P.S. Конфиг dhcp не идеальный, но рабочий
Спасибо сказали:
andreyhe
Сообщения: 1

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение andreyhe »

Может кто-то подаст идею как загрузить по сети uefi загрузчик Vera Crypt(диск восстановления)?
Он выглядит следующим образом, на флешке каталог EFI такого содержания:

EFI\Boot\bootx64.efi
EFI\VeraCrypt\DcsBoot.efi
EFI\VeraCrypt\DcsCfg.dcs
EFI\VeraCrypt\DcsInfo.dcs
EFI\VeraCrypt\DcsInt.dcs
EFI\VeraCrypt\DcsProp
EFI\VeraCrypt\LegacySpeaker.dcs
EFI\VeraCrypt\svh_bak

с флешки грузится без проблем. А вот как по сети загрузить не соображу, пробовал указывать загрузочный файл /EFI/Boot/bootx64.efi - не запускается, при этом в логах tftp вижу, что он скачивается, но попыток скачать остальные файлы не вижу.

С legacy-режимом проблем нет, там диск восстановления в формате iso и его запускаю по сети с помощью memdisk, а вот с efi никак не разберусь, веракрипт генерит загрузчик в виде архива для флешки, есть идеи?
Спасибо сказали:
FotoHunter
Сообщения: 2
ОС: SlackWare

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение FotoHunter »

Спасибо за статью.
Я сейчас как раз разворачиваю PXE-сервер, НО на базе iPXE - это более свежий вариант с кучей плюшек и поддержкой разных архитектур ибо я занимаюсь тестированием разных железок :-)))

Мои комментарии по теме:
РедОС, АстраОС - грузятся без каких либо проблем при соблюдении их инструкций. Обе конторы молодцы и ВКЛЮЧИЛИ ядро для загрузку по PXE в свои дистрибуты!!!

С Debian - всё ОЧЕНЬ плохо, у базовом DVD дистрибуте и в NetINSTAL - НЕТ поддержки PXE :angry: она есть в отдельном проекте mini.iso в разделе "для особо опытных админов" вот собственно там и лежат 2 волшебных файла "linux и initrd.gz"
https://deb.debian.org/debian/dists/Debian12.9/main/installer-amd64/20230607+deb12u9/images/netboot/
умеющие в загрузку по сети, а то что на DVD и в NetInstall пишут что не видят DVD с репозиторием... Ну и я изрядно повозился с preseed.cfg для Debian - в результате добился полной автоматической установки от момента выбора ОС до "введите пароль для входа в систему"

Вашу статью нашёл, когда искал как в iPXE русский язык подцепить - "захотелось странного/красоты". Но в iPXE немного другой синтаксис и не уверен, что тут полноценная поддержка unicode.

Для страждущих могу привести примеры конфига загрузки Debian в iPXE (синтаксис легко переделать под PXE)

Кусок меню загрузки iPXE создан по мотивам статьи https://habr.com/en/articles/681142/

cat menu.ipxe

Код: Выделить всё

#!ipxe
#
cpuid --ext 29 && set arch _64 || set arch
iseq ${platform} efi && iseq ${buildarch} x86_64 && set arch _64 ||
iseq ${platform} efi && iseq ${buildarch} i386 && set arch ||

set httpServer http://192.168.145.242:80 # Задание адреса HTTP сервера
set nfsServer 192.168.145.242
set nfs_root /var/lib/tftpboot/
set menu-timeout 10000 # таймаут выхода из меню
#############################
# настроил, но НЕ РАБОТАЕТ :(
set keymap ru
######## Графика ########
# Цвет по-умолчанию (индекс 0)
# Буквы - черный, фон-прозрачный
cpair -f 0 -b 4 0
# Нормальный текст (индекс 1)
# Буквы - черный, фон - прозрачный
cpair -f 0 -b 4 1
# Разделители (индекс 3)
# Буквы - красный, фон - прозрачный
cpair -f 1 -b 4 3
#########################
# Фоновое изображение и рамка
# ${platform} - переменная iPXE, определяет в каком режиме загружен клиент- pcbios или efi
# Задаю параметры окна, картинку фона (загрузив её по http)
console -l 32 -r 32 -t 32 -b 32 -k --x 1024 --y 768 -d 24 -p ${httpServer}/images/photo/${platform}.png
#
# После установки фона, удаляю картинку из памяти -
# иначе она ломает wimboot загрузку WinPE
imgfree ${platform}.png
#########################

######## Главное меню ########

# На данный момент "всё в одном", но можно разделить как по разным меню, так и по разным файлам
:start

# Составляю меню
# Подробнее: https://ipxe.org/cmd/menu
menu iPXE boot menu
item --gap -- -------- Exit --------
item
item -k e exit (E)xit and boot from disk
item
item --gap -- -------- iPXE and other Utilites --------
item
item -k c config Start interactive (c)onfiguration tool
item -k s shell Start (S)hell iPXE
item clonezilla Clonezilla
item gparted GNOME Partition Editor
item
item --gap -- -------- OS - Work!!! --------
item
item redos733 RedOS 7.3.3 (astra:astra)
item astra17 Astra Linux 1.7 (astra:astra)
item astra18 Astra Linux 1.8 (astra:Bazalt1!)
item debian11 Debian 11.12 Bullseye (astra:astra)
item debian12 Debian 12.9 BookWorm (astra:astra)
item
item --gap -- ----------------

choose -d exit -t ${menu-timeout} selected
goto ${selected}

########
# Пункты меню
# В среднем состоят из трёх пунктов:
# kernel - передаю ядро linux и аргументы для запуска
# initrd - пакет данных для ядра
# boot - команда передачи управления ядру linux


###############################
# Рабочие конфиги
###############################
:redos733
kernel ${httpServer}/images/REDOS/images/pxeboot/vmlinuz ramdisk_size=128000 ip=dhcp inst.repo=${httpServer}/images/REDOS/ devfs=nomount inst.ks=${httpServer}/images/cfg/ks_7.3.2_lg.cfg inst.vnc inst.vncpassword=Bazalt1!
initrd ${httpServer}/images/REDOS/images/pxeboot/initrd.img
boot || goto error
goto start
###############################
:astra17
kernel ${httpServer}/images/Astra/se1.7/netinst/linux ramdisk_size=128000 ip=dhcp devfs=nomount modprobe.blacklist=evbug root=(tftp) auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname=se17 domain=qa.veil.local astra-license/license=true url=${httpServer}/images/cfg/preseed-astra.${platform}.cfg interface=auto netcfg/dhcp_timeout=60 mirror/ftp/directory=${httpServer}/images/Astra/se1.7/pool/main astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset initrd=initrd.gz
initrd ${httpServer}/images/Astra/se1.7/netinst/initrd.gz
boot || goto error
goto start
###############################
:astra18
kernel ${httpServer}/images/Astra-1.8/netinst/linux ramdisk_size=128000 ip=dhcp devfs=nomount modprobe.blacklist=evbug root=(tftp) auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname=se18 domain=qa.veil.local astra-license/license=true url=${httpServer}/images/cfg/preseed-astra-1.8.${platform}.cfg interface=auto netcfg/dhcp_timeout=60 mirror/ftp/directory=${httpServer}/images/Astra-1.8/pool/main astra_install=1 vga=788 debian-installer/allow_unauthenticated=true nomodeset initrd=initrd.gz
initrd ${httpServer}/images/Astra-1.8/netinst/initrd.gz
boot || goto error
goto start
###############################
:debian11
kernel ${httpServer}/images/D-11.12-M/linux ramdisk_size=128000 ip=dhcp devfs=nomount modprobe.blacklist=evbug root=(tftp) auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname=deb11pxe domain=qa.veil.local url=${httpServer}/images/cfg/preseed-d11.${platform}.cfg interface=auto netcfg/dhcp_timeout=60 mirror/ftp/directory=${httpServer}/images/D-11.5-N/ vga=788 debian-installer/allow_unauthenticated=true nomodeset initrd=initrd.gz
initrd ${httpServer}/images/D-11.12-M/initrd.gz
boot || goto error
goto start
###############################
:debian12
kernel ${httpServer}/images/D-12.9-M/linux ramdisk_size=128000 ip=dhcp devfs=nomount modprobe.blacklist=evbug root=(tftp) auto=true priority=critical debian-installer/locale=ru_RU console-keymaps-at/keymap=ru hostname=deb12pxe domain=qa.veil.local url=${httpServer}/images/cfg/preseed-d12.${platform}.cfg interface=auto netcfg/dhcp_timeout=60 mirror/ftp/directory=${httpServer}/images/D-12.9-N/ vga=788 debian-installer/allow_unauthenticated=true nomodeset initrd=initrd.gz
initrd ${httpServer}/images/D-12.9-M/initrd.gz
boot || goto error
goto start
###############################
:clonezilla
kernel ${httpServer}/images/clonezilla/live/vmlinuz initrd=initrd.img boot=live username=user union=overlay config components quiet noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=${httpServer}/images/clonezilla/live/filesystem.squashfs
initrd ${httpServer}/images/clonezilla/live/initrd.img
boot || goto error
goto start
###############################
:gparted
kernel ${httpServer}/images/gparted-live/live/vmlinuz initrd=initrd.img boot=live username=user union=overlay config components noswap noeject vga=788 fetch=${httpServer}/images/gparted-live/live/filesystem.squashfs
initrd ${httpServer}/images/gparted-live/live/initrd.img
boot || goto error
goto start
###############################
##############################
# Интерактивное меню редактирования конфигурация iPXE и сетевой карты
:config
config
goto start
##############################
# Командная строка iPXE
:shell
shell
goto start
##############################
:exit
echo Boot from disk...
sleep 2
exit
##############################
# При ошибках выход на командную строку
:error
echo Failed - have error
sleep 1
goto shell
##############################
А теперь самое вкусное preseed для Debian-12 UEFI

cat preseed-d12.efi.cfg

Код: Выделить всё

### Сеть ###
# Полностью отключить настройку сети. Это полезно для компакт-диска
# установки на не сетевые устройства, где есть вопросы по сети,
# предупреждения и длительные тайм-ауты мешают.
#d-i netcfg/enable boolean true
d-i netcfg/choose_interface select auto
#d-i netcfg netcfg/dhcp_timeout string 60
# Время ожидания (в секундах) подключения к сети:
#d-i netcfg/link_wait_timeout string 20
# Неназначенное имя пк - его нужно будет ввести
#d-i netcfg netcfg/get_hostname string unassigned-hostname
# назначенный домен - его не нужно будет вводить
#d-i netcfg/get_domain string
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Retry network autoconfiguration

### Настройка времени ###
# Временная зона
d-i time/zone string Europe/Moscow
d-i clock-setup/ntp boolean true
#d-i clock-setup/ntp-server string 0.debian.pool.ntp.org
d-i clock-setup/ntp-server string synaps.qa.veil.local
### Репозитории ###
#d-i mirror/country string manual
#d-i mirror/http/mirror string mirror.yandex.ru
#d-i mirror/http/hostname string mirror.yandex.ru
#d-i mirror/http/directory string /debian
#d-i mirror/suite string bullseye

# Установка прокси. В офисной сети работает apt-ng-cacher адресу
# Если раскомментировать и подставить строчку:
# то установка и настройка внутри системы назначается на него.
# Для .iso образа, нужно оставить закоменченным, ведь образ не сможет найти proxy
#d-i mirror/http/proxy string http://HIDE_APT_NG_CACHE_SERVER:9999
### Локализация ###
d-i debian-installer/language string ru
d-i debian-installer/locale string ru_RU
d-i debian-installer/locale select ru_RU.UTF-8
d-i debian-installer/country string RU
d-i localechooser/preferred-locale select ru_RU.UTF-8
d-i debian-installer/locale select ru_RU.UTF-8
d-i localechooser/shortlist select RU
d-i localechooser/languagelist select ru

### Клавиатура ###
d-i keyboard-configuration/xkb-keymap select ru
d-i keyboard-configuration/layoutcode string ru,us
d-i console-setup/variant select Россия
d-i keyboard-configuration/toggle select Alt+Shift

#Если для сети или другого оборудования требуется несвободная прошивка, вы можете
#настроить установщик так, чтобы он всегда пытался загрузить его без запроса. Или
#измените значение на false, чтобы отключить запросы.
d-i hw-detect/load_firmware boolean true
### Разбитие диска ###
# Кастомная схема разбития
d-i partman-auto/init_automatically_partition select custom
# Использовать первый диск компьютера
#d-i partman-auto/disk string /dev/sda
d-i partman/early_command string debconf-set partman-auto/disk "$(list-devices disk | head -n1)"
# Использовать обычный метод использования диска, без lvm и crypto
d-i partman-auto/method string regular
# Если один из дисков, которые будут автоматически разбиты на разделы
# содержит старую конфигурацию LVM, пользователь обычно получает
# предупреждение. Это можно предварительно удалить...
d-i partman-lvm/device_remove_lvm boolean true
# То же самое относится к уже существующему программному RAID-массиву:
d-i partman-md/device_remove_md boolean true
# И то же самое касается подтверждения записи разделов lvm.
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
# Вы можете выбрать один из трех предустановленных рецептов разбиения:
# -atomic: все файлы в одном разделе
# -home: отдельный раздел /home
# -multi: отдельные разделы /home, /var и /tmp
d-i partman-auto/choose_recipe select boot-root
# Это делает partman автоматическим разделением без подтверждения, если
# вы сказали ему, что делать, используя один из методов выше.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
#d-i partman-basicfilesystems/no_swap boolean false
d-i partman-md/confirm boolean true
# Если нет, вы можете поместить весь рецепт в файл предварительной конфигурации за один раз.
# (логическая) строка. В этом примере создается небольшой раздел /boot, подходящий
# swap, а оставшееся место использует для корневого раздела.
d-i partman/default_filesystem string ext4
d-i partman-auto/expert_recipe string                  \
        boot-root ::                                   \
            1 1 1 free                                 \
                  $iflabel{ gpt }                      \
                  $reusemethod{ } method{ biosgrub }   \
                  .                                    \
       128 96 256 fat32                                \
                  $iflabel{ gpt } use_filesystem{ }    \
                  method{ efi } format{ }              \
                  .                                    \
    4096 100 4096 linux-swap                           \
                  $reusemethod{ }                      \
                  method{ swap } format{ }             \
                  .                                    \
 25000 1000 40000 ext4                                 \
                  method{ format } format{ }           \
                  use_filesystem{ } filesystem{ ext4 } \
                  mountpoint{ / }                      \
                  .                                    \
    30000 3000 -1 ext4                                 \
                  method{ format } format{ }           \
                  use_filesystem{ } filesystem{ ext4 } \
                  mountpoint{ /home }                  \
                  .
### Настройка root ###
# Пропустить создание учетной записи root (обычная учетная запись пользователя сможет
# используйте судо)
#d-i passwd/root-login boolean true
# В качестве альтернативы, чтобы пропустить создание обычной учетной записи пользователя.
#d-i passwd/make-user boolean false
# Корневой пароль, либо открытым текстом
#d-i пароль/пароль root пароль r00tme
#d-i passwd/root-пароль-снова пароль r00tme
#d-i пароль/пароль root пароль 12345
#d-i passwd/root-пароль-снова пароль 12345
d-i passwd/root-login boolean true
d-i passwd/root-password password bazalt
d-i passwd/root-password-again password bazalt
d-i passwd/make-user boolean true
d-i passwd/user-fullname string astra
d-i passwd/username string astra
d-i passwd/user-password password astra
d-i passwd/user-password-again password astra
#d-i grub-installer/password password astra
#d-i grub-installer/password-again password astra


# или зашифрован с помощью хэша crypt(3).
# printf "password" | mkpasswd -s -m sha-256
#d-i passwd/root-password-crypted password HIDE_PASSWORD
### Установка базовой системы ###
# Настройте APT так, чтобы по умолчанию не устанавливались рекомендуемые пакеты.
#Использование этого может привести к неполной системе и должен использоваться только очень
# опытные пользователи.
d-i base-installer/install-recommends boolean true
# Устанавливаемый пакет образа ядра (мета); "none" можно использовать, если не нужно устанавливать ядро.
d-i base-installer/kernel/image select linux-image-5.10.0-19-amd64
# Использовать несвободное ПО?
d-i apt-setup/non-free boolean true
# Использовать программное обеспечение из раздела contrib?
d-i apt-setup/contrib boolean true
# Выберите, какие службы обновления использовать; определить зеркала, которые будут использоваться.
# Значения, показанные ниже, являются обычными значениями по умолчанию.
#d-i apt-setup/services-select multiselect security, updates
#d-i apt-setup/security_host string security.debian.org
# По умолчанию установщик требует, чтобы репозитории были аутентифицированы
# используя известный ключ gpg. Этот параметр можно использовать для отключения этого
# аутентификация. Предупреждение: небезопасно, не рекомендуется.
#d-i debian-installer/allow_unauthenticated boolean false
d-i debian-installer/allow_unauthenticated boolean true
# Проверить целостность другого установочного образа?
d-i cdrom-checker/nextcd boolean false

# Просканировать дополнительный установочный носитель?
#apt-cdrom-setup apt-setup/cdrom/set-double boolean false
#apt-cdrom-setup apt-setup/cdrom/set-failed boolean false
#apt-cdrom-setup apt-setup/cdrom/set-first boolean false
#apt-cdrom-setup apt-setup/cdrom/set-next boolean false

#Раскомментируйте это, чтобы добавить мультиархивную конфигурацию для i386.
#d-i apt-setup/multiarch string i386
### Выбор пакета ###
#standard, desktop, xfce-desktop, ssh-server
#tasksel tasksel/first select ssh-server
tasksel tasksel/first select ssh-server lldpd lm-sensors mc net-tools standard

# Отдельные дополнительные пакеты для установки
# Здесь указываются только те пакеты, которые задают вопросы в процессе установки.
# Прочие пакеты, с перепроверкой подключения, перенесены в postinstall.sh
# Они не указаны все в одном месте из-за проблем с подключением к репозиториям - при
# длительной выгрузке пакетов репозиторий обрывает подключение (error 104)
d-i pkgsel/include string nscd nslcd ttf-mscorefonts-installer

# Если нужен будет wiresherk...
# При установке Wireshark запретить не root захват пакетов
#d-i wireshark-common/install-setuid boolean false

ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula boolean true
popularity-contest popularity-contest/participate boolean false

# Настройка nscd и nslcd по умолчанию - в postistall будет изменение на требуемые данные
#d-i nslcd/ldap-base string dc=unassigned-domain
#d-i nslcd/ldap-uris string ldap://127.0.0.1/
#d-i libnss-ldapd/nsswitch  multiselect

# Обновлять ли пакеты после debootstrap.
# Allowed values: none, safe-upgrade, full-upgrade
#d-i pkgsel/upgrade select full-upgrade
d-i pkgsel/upgrade select none
# Некоторые версии установщика могут сообщать о том, какое программное обеспечение у вас установлено
# установлено и какое программное обеспечение вы используете. По умолчанию не отчитываться,
# но отправка отчетов помогает проекту определить, какое программное обеспечение наиболее
# популярен и включает его на компакт-диски.
popularity-contest popularity-contest/participate boolean false
### Установка загрузчика
#Grub — загрузчик по умолчанию (для x86). Если вы хотите установить lilo
#вместо этого раскомментируйте это:
#d-i grub-installer/skip boolean false
#Чтобы также пропустить установку lilo и не устанавливать загрузчик,
# раскомментируйте это тоже:
d-i lilo-installer/skip boolean true
#Это достаточно безопасно, так как grub автоматически устанавливается в MBR.
#если на машине не обнаружена другая операционная система.
d-i grub-installer/only_debian boolean true
#Это заставляет grub-installer устанавливаться в MBR, если он также находит какие-либо другие
#ОС, которая менее безопасна, поскольку может не иметь возможности загрузить эту другую ОС.
d-i grub-installer/with_other_os boolean true
#В частности, из-за потенциальных USB-накопителей местоположение MBR не может быть
#определяется безопасно в целом, поэтому это необходимо указать:
d-i grub-installer/bootdev  string default
# Отключает именование по новому формату, возвращая eth0, eth1
#d-i debian-installer/add-kernel-opts string net.ifnames=0 biosdevname=0

### Завершение установки
# Во время установки с последовательной консоли обычные виртуальные консоли
# (VT1-VT6) обычно отключены в /etc/inittab. Раскомментировать следующий
# строка, чтобы предотвратить это.
d-i finish-install/keep-consoles boolean true
#Избегайте этого последнего сообщения о завершении установки.
#d-i finish-install/reboot_in_progress note
# Есть 2 способа установки - с помощью PXE и с помощью ISO образа записанного на флешку.
# Раскомментируй требуемый способ и собери пакет
# PXE - Переход в /opt установленной системы, загрузка скрипта пост-установки c ...
#d-i preseed/late_command string cd /target/opt/ ; \
#\
#wget http://HIDE_HTTP_SERVER/bullseye/post-install/postinstall.sh ; \
#wget http://HIDE_HTTP_SERVER/bullseye/post-install/postinstall.tar.gz ; \
#chroot /target/ bash /opt/postinstall.sh
Спасибо сказали:
Аватара пользователя
kasak
Сообщения: 898
ОС: OpenBSD

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение kasak »

Дорогой друг, не могу не поделиться своим мнением.
iPXE - это более свежий вариант с кучей плюшек и поддержкой разных архитектур ибо я занимаюсь тестированием разных железок :-)))
Вы правы что ipxe софт довольно свежий, но это не замена а альтернатива. В данном случае ipxe сочетает в себе функции и прошивки для некоторых сетевых карт и загрузчика.
Если Вы не шьёте ipxe в карту, то Вы используете только часть ipxe.
Мои комментарии по теме:
РедОС, АстраОС - грузятся без каких либо проблем при соблюдении их инструкций. Обе конторы молодцы и ВКЛЮЧИЛИ ядро для загрузку по PXE в свои дистрибуты!!!
Возможно за моё мнение меня захейтят, но я надеюсь на свободу слова. С редос я знаком очень хорошо, и всё что я могу сказать - они не "включали" в ядро нужные драйверы. Они просто забыли их сломать, так как сломали всё остальное.
Про астраос я ничего сказать не могу. Всё что я могу сказать про "отечественные" дистрибутивы, это то что они предназначены для зарабатывания денег а не развитие по. У них нет нормального комьюнити и они зачастую даже пересобрать чужое нормально не могут.
Вклад в свободное ПО от них нулевой, зато в "реестре отечественного по". Да они грузятся по сети, но это не их заслуга.
С Debian - всё ОЧЕНЬ плохо, у базовом DVD дистрибуте и в NetINSTAL - НЕТ поддержки PXE :angry: она есть в отдельном проекте mini.iso в разделе "для особо опытных админов" вот собственно там и лежат 2 волшебных файла "linux и initrd.gz"
Честно говоря тут ничего сказать не могу.
Вот кусочек конфига граба:

Код: Выделить всё

menuentry "Debian install" {
linux (http,mirror.YANDEX.ru)/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux --- quiet
initrd (http,mirror.YANDEX.ru)/debian/dists/stable/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz
}
Это всегда грузит свежее ядро, и вручную всегда удавалось всё установить, но мне очень редко нужен дебиан, потому preseed я вообще не использовал никогда. У меня в 50% случаев rocky, в 50% arch.
Linux kasak-pc 6.13.2-arch1-1 #1 SMP PREEMPT_DYNAMIC Sat, 08 Feb 2025 18:54:55 +0000 x86_64 GNU/Linux
Спасибо сказали:
FotoHunter
Сообщения: 2
ОС: SlackWare

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение FotoHunter »

kasak писал:
15.02.2025 23:02
Возможно за моё мнение меня захейтят, но я надеюсь на свободу слова. С редос я знаком очень хорошо, и всё что я могу сказать - они не "включали" в ядро нужные драйверы. Они просто забыли их сломать, так как сломали всё остальное.
Про астраос я ничего сказать не могу. Всё что я могу сказать про "отечественные" дистрибутивы, это то что они предназначены для зарабатывания денег а не развитие по. У них нет нормального комьюнити и они зачастую даже пересобрать чужое нормально не могут.
Вклад в свободное ПО от них нулевой, зато в "реестре отечественного по". Да они грузятся по сети, но это не их заслуга.
Ыыыыы, Вы совершенно правильно пишете, хотя и не видите картину в целом :-))
Если бы я захотел "хейтить" - я бы зашёл в свой аккаунт на тех.поддержку РедОС или Астры и оторавался бы по полной. Один из моих баг репортов на РедОС лежит в статусе "передано в разработку" уже более года :-) Я в 2023 году активно гнобил Ред и Астру на предмет ошибок в документации и скриптах...
У РедОС каких то драйверов может не быть на инсталяционном DVD, но они могут найтись в репозитории, с Астрой всё на порядок хуже - у них принципиальное требование - "никаких проприаритарных драйверов" - у меня банальная и не очень свежая Realtec WiFi карточка не завелась, а когда капнул в модули ядра - там 2/3 драйверов отсутствуют и их принципиально не будут добавлять.

Давайте объясню на пальцах "ЗАЧЕМ" нужны отечественные ОС:
1. У гос.контор есть деньги в бюджете на Windows, которую сейчас запрещено покупать и эти деньги перенаправляются на покупку сырых, кривых и недоделанных отечественных поделок. Причём без вариантов выбора - контролирующие органы приказали "покупать" конкретную ОС и дальше в зависимосмти от хитровые...сти либо стоит 2 компа на рабочем месте один с отечественой ОС и на "отечественном железе", а на втором они работают. Ну и далее - покупатель имеет производителя во все дыры, что бы те эти самые дыры закрывали...
2. Отечественные ОС получая горячих пи...лей от пукателей как то пытаются что то починить в своих изделиях...
3. OpenSource - в серой зоне т.е. где то он разрешён, где то запрещён и поэтому к примеру тот-же РедОС запихивает себе в репу NextCloud выпиливая из него все файлы с упоминанием лицензионных соглашений (GPL2/3) и кучу другого софта выдавая его за свой хотя бы по формальному признаку...
4. Есть такие слова как ФСТЭК, Критическая Инфраструктура и АСУТП, где моя любимая Slakware недопустима, как и все остальные OpenSource OS и софт. Из отечественных я бы предпочёл Альт - у них богатая история и комьюнити...

Я работаю в разработке отечественной виртуализации и моей задачей применительно к данной теме было создание мультиплатформенного PXE-сервера для разработчиков и тех.поддержки т.к. мы пилим свою виртуализацию не только под x86_64 но и под arm64.
И опять же, я хотел разобраться в протоколе/методике загрузки систем и написать документацию для своей конторы и возможно для какого то ресурса т.к. тема PXE/iPXE крайне бедно описана, но при этом очень нужна и для оперативного развёртывания рабочих станций, а в моём случае нужно накатывать сервера для стендов разработки и тех. поддержки.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21277
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Мультизагрузочный сервер для PXE и UEFI network boot

Сообщение Bizdelnick »

FotoHunter писал:
17.02.2025 10:51
Давайте объясню на пальцах "ЗАЧЕМ" нужны отечественные ОС
iУведомление от модератора Bizdelnick
А давайте лучше все дружно перестанем офтопить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: