Начиная с Ubuntu 20.10 (Groovy Gorilla), Canonical не предоставляет пакет netboot.tar.gz
и ] mini.iso
изображения больше нет. Раньше их можно было использовать для загрузки системы через PXE и автоматического запуска установщика Debian через предварительную конфигурацию.
Как можно автоматически установить версии Ubuntu, начиная с 20.10, через загрузку PXE?
Вместо небольшого пакета, предназначенного для конкретной задачи, теперь необходимо использовать обычный полный образ ISO. Только установщик сервера Subiquity может быть автоматизирован, поэтому он должен использовать образ сервера даже для настольной установки.
Следующие шаги относятся к текущей версии 20.10 (Groovy Gorilla). Для будущих версий замените все вхождения 20.10
номером версии, которую вы хотите установить.
Предварительные требования на сервере, который будет обслуживать файлы PXE, образ установщика и конфигурацию автоматической установки :
pxelinux
, syslinux-efi
, syslinux-common
установлен wget https://releases.ubuntu.com/20.10/ubuntu-20.10-live-server-amd64.iso
метаданных
и пользовательских данных
. пользовательских данных
, используя https://ubuntu.com/server/docs/install/autoinstall-reference в качестве справочного материала Перейдите в каталог, который обслуживает ваш TFTP-сервер, по умолчанию / srv / tftp
Скопируйте ISO-образ, загруженный в предыдущем разделе, в текущий каталог
Создайте несколько каталогов, которые мы собираемся использовать в следующих шагах: mkdir -p iso_mount init boot / uefi boot / bios pxelinux.cfg
Смонтируйте образ и извлеките ядро и initrd:
mount -o loop ubuntu-20.10-live-server-amd64.iso iso_mount /
cp -p iso_mount / casper / vmlinuz init /
cp -p iso_mount / casper / initrd init /
umount iso_mount
Подготовьте файлы PXELINUX для загрузки через UEFI, а также через BIOS:
# UEFI
cp -p /usr/lib/SYSLINUX.EFI/efi64/syslinux.efi boot / uefi
cp -p /usr/lib/syslinux/modules/efi64/ldlinux.e64 загрузка / uefi
cp -p /usr/lib/syslinux/modules/efi64/libcom32.c32 загрузка / uefi
cp -p /usr/lib/syslinux/modules/efi64/libutil.c32 загрузка / uefi
cp -p /usr/lib/syslinux/modules/efi64/vesamenu.c32 загрузка / uefi
# BIOS
cp -p /usr/lib/PXELINUX/pxelinux.0 загрузка / биос
cp -p /usr/lib/syslinux/modules/bios/ldlinux.c32 загрузка / биос
cp -p /usr/lib/syslinux/modules/bios/libcom32.c32 загрузка / биос
cp -p /usr/lib/syslinux/modules/bios/libutil.c32 загрузка / биос
cp -p /usr/lib/syslinux/modules/bios/vesamenu.c32 загрузка / биос
Настройте DHCP-сервер так, чтобы в качестве имени файла загрузки было указано boot / uefi / syslinux.efi
для клиентов UEFI и boot / bios / pxelinux.0
для клиентов BIOS
Создать конфигурация PXELINUX в pxelinux.cfg / default
, аналогичная следующей. Замените URL-адреса в угловых скобках на URL-адреса вашего веб-сервера: Замените
URL-адресом образа ISO и
URL-адресом каталога, содержащего конфигурацию автоустановки (включая косую черту в конце!).
ПО УМОЛЧАНИЮ vesamenu.c32
ПОДСКАЗАТЬ 0
NOESCAPE 1
НАЗВАНИЕ МЕНЮ Установка системы PXE
ЭТИКЕТКА Ubuntu 20.10
ЭТИКЕТКА МЕНЮ ubuntu_20.10
ЯДРО ../../init/vmlinuz
INITRD ../../init/initrd
ДОБАВИТЬ root = / dev / ram0 ramdisk_size = 1500000 ip = dhcp url = autoinstall ds = nocloud-net; s =
Свяжите конфигурацию PXELINUX с каталогами boot
для UEFI и BIOS:
ln -s ../../pxelinux.cfg boot / uefi / pxelinux.cfg
ln -s ../../pxelinux.cfg boot / bios / pxelinux.cfg
Теперь у вас должна быть возможность загружать клиенты UEFI и BIOS через PXE в установщик Subiquity, который затем запустится автоматически в соответствии с вашей конфигурацией автоустановки.
Если вы устанавливаете настольной системе необходимо установить пакет ubuntu-desktop
.
Вам также необходимо исправить конфигурацию сети в установленной системе, поскольку Subiquity включает вместо этого systemd-networkd
из NetworkManager
, который обычно используется в настольных системах:
Удалите сетевую конфигурацию, созданную Subiquity: rm /etc/netplan/00-installer-config.yaml[12224 sizes Создать файл
/ etc / netplan / 01-сеть-manager-all.yaml
со следующим содержимым:
# Разрешить NetworkManager управлять всеми устройствами в этой системе
сеть:
версия: 2
рендерер: NetworkManager
Запустите netplan apply
или перезагрузите
Что ж, я мог бы просто высказать свое мнение об этом ... так что поехали!
Введение
Ниже представлено полное руководство по PXE, от настройки сервера и всех необходимых служб до первой загрузки. Он также включает инструкции для Ubuntu 20.04.1 и 20.10 с автоматической установкой сервера Ubuntu, интерактивной установкой сервера и загрузкой рабочего стола в реальном времени (например, PXE-версия «Live CD»). Руководство было немного изменено, чтобы включить все параметры в одно загрузочное меню со всеми вариантами. Объясняются сценарии BIOS и UEFI.
Я использую компонент Syslinux под названием «lpxelinux» (первая строчная буква «L»), который также поддерживает загрузку ядра и инициализацию из HTTP. syslinux.efi
уже имеет это. HTTP обеспечивает более быструю передачу, а также позволяет нам иметь немного другую организацию файлов, а также некоторые другие незначительные преимущества в будущем (для более крупных реализаций).
Это полное пошаговое руководство!
PXE Server - Ubuntu 20.04.1 LTS
Установите Ubuntu Server как обычно, начните с минимального количества установленных опций, но обычно я включаю сервер OpenSSH для удаленного администрирования. После установки обязательно обновите его полностью.
sudo su
apt-get update && apt-get upgrade -y
Инструменты и требования
Нам нужен TFTP-сервер, HTTP (S) -сервер и DHCP-сервер. Вы можете использовать другие серверы, если они у вас уже есть, но для простоты мы установим все на недавно установленный Ubuntu 20.04.1 LTS
Я выбрал самые популярные пакеты:
apt-get install tftpd-hpa apache2 isc-dhcp-server
Нам также нужно будет получить файлы syslinux. Поскольку руководство Marian уже показало, как получить их из пакетов apt, для полноты картины я пойду другим путем (вы можете комбинировать подходы по своему усмотрению). Мы получаем файлы из официального kernel.org
mkdir /root/pxe
mkdir /root/pxe/syslinux
cd /root/pxe/syslinux
wget https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
tar -xf syslinux-6.03.tar.gz
cd syslinux-6.03/
ll
. Я использовал возможность создать для нас временный каталог в каталогах / root / pxe
и syslinux
под ним. Не стесняйтесь размещать эти файлы в любом месте, только не забудьте потом изменить команды.
SYSLINUX - LPXELINUX (files)
Затем мы копируем файлы, которые нам понадобятся. Не стесняйтесь копировать больше модулей, но их достаточно.
TFTPD уже имеет каталог, который мы будем использовать, в: / var / lib / tftpboot /
Скопируйте файлы туда, в отдельные каталоги (некоторые файлы имеют одинаковые имена, но предназначены для разных архитектур)
# files for 64bit uefi
mkdir /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/efi/syslinux.efi /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/com32/menu/menu.c32 /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/com32/menu/vesamenu.c32 /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/com32/libutil/libutil.c32 /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/com32/elflink/ldlinux/ldlinux.e64 /var/lib/tftpboot/efi64
cp /root/pxe/syslinux/syslinux-6.03/efi64/com32/lib/libcom32.c32 /var/lib/tftpboot/efi64
cd /var/lib/tftpboot/efi64
ll
# files for 32bit bios
mkdir /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/core/lpxelinux.0 /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/com32/menu/menu.c32 /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/com32/menu/vesamenu.c32 /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/com32/libutil/libutil.c32 /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/com32/elflink/ldlinux/ldlinux.c32 /var/lib/tftpboot/bios
cp /root/pxe/syslinux/syslinux-6.03/bios/com32/lib/libcom32.c32 /var/lib/tftpboot/bios
cd /var/lib/tftpboot/bios
ll
DHCP-сервер
DHCP-сервер сам должен иметь статический IP-адрес. Итак, давайте сделаем это (если вы не сделали этого во время установки).
Отредактируйте конфигурацию сети (файл YAML):
nano /etc/netplan/00-installer-config.yaml
Содержание:
# This is the network config written by 'subiquity'
network:
ethernets:
eth0:
addresses: [10.10.2.1/24]
gateway4: 10.10.2.99
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
version: 2
Примените конфигурацию:
netplan apply
Затем нам нужно ввести базовую конфигурацию для зон и пулов DHCP-сервера. Я делаю здесь дополнительную настройку, чтобы показать вам, что ваши будущие клиенты PXE могут находиться в подсетях, отличных от вашего сервера PXE. В моем случае сервер PXE (со всеми службами) находится по адресу 10.10.2.1
. У меня есть две подсети, подключенные через виртуальный маршрутизатор: 10.10.1.0/24
и 10.10.2.0/24
nano /etc/dhcp/dhcpd.conf
Содержание (просто пример):
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 10.10.1.0 netmask 255.255.255.0 {
range 10.10.1.110 10.10.1.120;
option routers 10.10.1.99;
option domain-name-servers 1.1.1.1, 8.8.8.8;
# option domain-name "mydomain.example";
}
subnet 10.10.2.0 netmask 255.255.255.0 {
range 10.10.2.110 10.10.2.120;
option routers 10.10.2.99;
option domain-name-servers 1.1.1.1, 8.8.8.8;
# option domain-name "mydomain.example";
}
# pxe client, uefi64
host uefi-client {
hardware ethernet fa:fa:fa:00:0e:07;
fixed-address 10.10.1.201;
next-server 10.10.2.1;
filename "efi64/syslinux.efi";
}
# pxe client, bios
host bios-client {
hardware ethernet fa:fa:fa:00:0e:17;
fixed-address 10.10.2.202;
next-server 10.10.2.1;
filename "bios/lpxelinux.0";
}
Примечание. Измените файл в соответствии с твоя ситуация! У вас должны быть правильные подсети, шлюзы, а также правильный MAC-адрес (аппаратный адрес) ваших клиентов!
И вам нужно будет установить интерфейс, на котором DHCP deamon будет слушать, используйте ip a
для проверки какой интерфейс вам подходит (у меня он на eth0
)
nano /etc/default/isc-dhcp-server
Содержание:
INTERFACESv4="eth0"
INTERFACESv6=""
Обязательно перезапустите службу:
systemctl restart isc-dhcp-server.service
systemctl status isc-dhcp-server.service
И включите автозапуск при перезагрузке сервера:
systemctl enable isc-dhcp-server.service
Если у вас есть опечатки или другие ошибки, такие как повторяющиеся IP-адреса или имена клиентов, deamon не сработает. Проверьте журналы, если статус красный.
tail -n 100 /var/log/syslog
ДОПОЛНИТЕЛЬНО - настройки маршрутизатора
Если у вас разные подсети, убедитесь, что вы добавили ip helper
для DHCP, также часто настраивается как DHCP relay
в большинстве роутеров. Просто укажите IP-адрес вашего PXE-сервера (если у вас есть службы, распределенные на нескольких серверах, укажите его на тот, который содержит службы DHCP).
TFTP-сервер
Нам нужно настроить базовые параметры для TFTP-сервера, но Только один вариант действительно требует изменения / проверки - путь к вашему корневому каталогу TFTP / var / lib / tftpboot
nano /etc/default/tftpd-hpa
Содержание:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/srv/tftp"
# /var/lib/tftpboot
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
Не забудьте также перезапустить службу.
systemctl restart tftpd-hpa
И включить ее автозапуск на перезагрузка сервера:
systemctl enable tftpd-hpa
Вы можете использовать TFTP-клиент для тестирования службы, если хотите убедиться, что все в порядке.
Конфигурации SYSLINUX / (l) pxelinux
Нам нужны некоторые конфигурации для загрузки! Как минимум нам понадобится один файл default
для каждой архитектуры. Мы помещаем их в каталог TFTP
mkdir /var/lib/tftpboot/efi64/pxelinux.cfg
mkdir /var/lib/tftpboot/bios/pxelinux.cfg
touch /var/lib/tftpboot/efi64/pxelinux.cfg/default
touch /var/lib/tftpboot/bios/pxelinux.cfg/default
nano /var/lib/tftpboot/efi64/pxelinux.cfg/default
. Содержимое файла:
DEFAULT menu.c32
PROMPT 0
MENU TITLE PXE Boot Menu
MENU COLOR TABMSG 37;40 #80ffffff #00000000
MENU COLOR HOTSEL 30;47 #40000000 #20ffffff
MENU COLOR SEL 30;47 #40000000 #20ffffff
MENU COLOR SCROLLBAR 30;47 #40000000 #20ffffff
MENU WIDTH 80
MENU MARGIN 22
MENU PASSWORDMARGIN 26
MENU ROWS 6
MENU TABMSGROW 15
MENU CMDLINEROW 15
MENU ENDROW 24
MENU PASSWORDROW 12
MENU TIMEOUTROW 13
MENU VSHIFT 6
NOESCAPE 1
ALLOWOPTIONS 0
MENU AUTOBOOT Starting Local System in # seconds
LABEL bootlocal
MENU LABEL ^Local Boot
MENU DEFAULT
LOCALBOOT 0
TIMEOUT 300
TOTALTIMEOUT 3000
LABEL UbuntuServer-20.04.1-auto
MENU LABEL Ubuntu 20.04.1 Live Auto Installer
KERNEL http://10.10.2.1/ubuntu-server-20.04.1/vmlinuz
INITRD http://10.10.2.1/ubuntu-server-20.04.1/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.2.1/ubuntu-20.04.1-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://10.10.2.1/ubuntu-server-20.04.1/
LABEL UbuntuServer-20.04.1-interactive
MENU LABEL Ubuntu 20.04.1 Live Interactive Installer
KERNEL http://10.10.2.1/ubuntu-server-20.04.1/vmlinuz
INITRD http://10.10.2.1/ubuntu-server-20.04.1/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.2.1/ubuntu-20.04.1-live-server-amd64.iso
LABEL UbuntuDesktop-20.04.1-live
MENU LABEL Ubuntu 20.04.1 Desktop Live CD
KERNEL http://10.10.2.1/ubuntu-desktop-20.04.1/vmlinuz
INITRD http://10.10.2.1/ubuntu-desktop-20.04.1/initrd
APPEND root=/dev/ram0 ramdisk_size=3000000 boot=casper ip=dhcp netboot=url url=http://10.10.2.1/ubuntu-20.04.1-desktop-amd64.iso
LABEL UbuntuServer-20.10-auto
MENU LABEL Ubuntu 20.10 Live Auto Installer
KERNEL http://10.10.2.1/ubuntu-server-20.10/vmlinuz
INITRD http://10.10.2.1/ubuntu-server-20.10/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.2.1/ubuntu-20.10-live-server-amd64.iso autoinstall ds=nocloud-net;s=http://10.10.2.1/ubuntu-server-20.10/
LABEL UbuntuServer-20.10-interactive
MENU LABEL Ubuntu 20.10 Live Interactive Installer
KERNEL http://10.10.2.1/ubuntu-server-20.10/vmlinuz
INITRD http://10.10.2.1/ubuntu-server-20.10/initrd
APPEND root=/dev/ram0 ramdisk_size=1500000 ip=dhcp url=http://10.10.2.1/ubuntu-20.10-live-server-amd64.iso
LABEL UbuntuDesktop-20.10-live
MENU LABEL Ubuntu 20.10 Desktop Live CD
KERNEL http://10.10.2.1/ubuntu-desktop-20.10/vmlinuz
INITRD http://10.10.2.1/ubuntu-desktop-20.10/initrd
APPEND root=/dev/ram0 ramdisk_size=3000000 boot=casper ip=dhcp netboot=url url=http://10.10.2.1/ubuntu-20.10-desktop-amd64.iso
Обратите внимание, что я извлекаю как vmlinuz
, так и initrd
с HTTP-сервера. На том же сервере размещены ISO-образ и наши файлы автоустановки. Далее мы настроим этот веб-сервер, не беспокойтесь.
Поскольку по умолчанию
выглядит одинаково как для BIOS, так и для UEFI, просто скопируйте его (или свяжите его, если хотите).
cp /var/lib/tftpboot/efi64/pxelinux.cfg/default /var/lib/tftpboot/bios/pxelinux.cfg/default
Если вы сохраните их отдельно вы можете изменить их параметры индивидуально. Меню также допускает связывание с помощью опции , включая
. Но если вам нужны расширенные меню, прочтите документацию или еще несколько статей.
Веб-сервер - HTTP (S)
Я опишу простую настройку HTTP, но вы можете расширить ее до HTTPS позже. Рекомендуется, если ваша среда не закрыта и у вас есть пароли, установленные в файлах автоустановки. Для базовой лабораторной работы мы используем HTTP.
Нам нужно получить ISO. Поскольку я добавил в меню и сервер, и рабочий стол, я повторю это один раз для каждого ISO. Я знаю, что вопрос касается сервера, но дополнения вам не помешают. Если вам нужен только сервер или рабочий стол, просто пропустите другой.
Это для Ubuntu Server LTS 20.04.1
wget https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-live-server-amd64.iso -O /var/www/html/ubuntu-20.04.1-live-server-amd64.iso
Извлеките ядро и initramfs (vmlinuz и initrd) в подпапку этого дистрибутива / варианта / версии. В многозагрузочном меню PXE вы можете иметь гораздо больше.
mount /var/www/html/ubuntu-20.04.1-live-server-amd64.iso /mnt/
mkdir /var/www/html/ubuntu-server-20.04.1
cp /mnt/casper/vmlinuz /var/www/html/ubuntu-server-20.04.1/
cp /mnt/casper/initrd /var/www/html/ubuntu-server-20.04.1/
umount /mnt
Это для Desktop LTS 20.04.1
wget https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso -O /var/www/html/ubuntu-20.04.1-desktop-amd64.iso
И снова извлеките, обратите внимание, что я добавил другое имя папки
mount /var/www/html/ubuntu-20.04.1-desktop-amd64.iso /mnt/
mkdir /var/www/html/ubuntu-desktop-20.04.1
cp /mnt/casper/vmlinuz /var/www/html/ubuntu-desktop-20.04.1/
cp /mnt/casper/initrd /var/www/html/ubuntu-desktop-20.04.1/
umount /mnt
Следующее для ] Ubuntu Server 20.10
wget https://releases.ubuntu.com/20.10/ubuntu-20.10-live-server-amd64.iso -O /var/www/html/ubuntu-20.10-live-server-amd64.iso
Извлеките файлы снова в отдельную папку
mount /var/www/html/ubuntu-20.10-live-server-amd64.iso /mnt/
mkdir /var/www/html/ubuntu-server-20.10
cp /mnt/casper/vmlinuz /var/www/html/ubuntu-server-20.10/
cp /mnt/casper/initrd /var/www/html/ubuntu-server-20.10/
umount /mnt
И, наконец, это для Ubuntu Desktop 20.10
wget https://releases.ubuntu.com/20.10/ubuntu-20.10-desktop-amd64.iso -O /var/www/html/ubuntu-20.10-desktop-amd64.iso
Извлеките файлы еще раз, в отдельную папку еще раз
mount /var/www/html/ubuntu-20.10-desktop-amd64.iso /mnt/
mkdir /var/www/html/ubuntu-desktop-20.10
cp /mnt/casper/vmlinuz /var/www/html/ubuntu-desktop-20.10/
cp /mnt/casper/initrd /var/www/html/ubuntu-desktop-20.10/
umount /mnt
Вот и все. Проверьте с помощью браузера, можете ли вы получить доступ к файлам в правильных местах. Мы использовали каталог Apache по умолчанию в Ubuntu для размещения всех файлов, поэтому никаких дополнительных действий не требуется.
Файл автоматической установки для серверов 20.04 и 20.10
В документации Ubuntu говорится, что вы можете просто установить один сервер, а затем найти образец файла с вашим выборки в файле / var / log / installer / autoinstall-user-data
.
Для тестирования в лаборатории вы можете использовать этот файл в качестве шаблона, но он потребует некоторых изменений.
Чтобы иметь минимальную конфигурацию, вы можете использовать приведенный ниже код (снова код YAML, будьте осторожны при редактировании вручную):
nano /var/www/html/ubuntu-server-20.04.1/user-data
Содержание:
#cloud-config
autoinstall:
version: 1
apt:
geoip: true
preserve_sources_list: false
primary:
- arches: [amd64, i386]
uri: http://hr.archive.ubuntu.com/ubuntu
- arches: [default]
uri: http://ports.ubuntu.com/ubuntu-ports
identity: {hostname: pxe-client, password: $6$zN/uHJD1rEXD/ETf$q8CoBt3xXmBT37RslyWcpLT1za4RJR3QEtosggRKN5aZAAf6/mYbFEQO66AIPm965glBXB1DGd0Sf.oKi.Rfx/,
realname: pxe, username: pxe}
keyboard: {layout: hr, toggle: null, variant: ''}
locale: en_US
network:
network:
version: 2
ethernets:
eth0:
dhcp4: no
dhcp6: no
ssh:
allow-pw: true
install-server: true
Примечание. Эта конфигурация настроит сервер с именем хоста pxe-client
, а имя пользователя и пароль - pxe
. На сервере не будет сети (DHCP отключен), поэтому он будет пропускать автоматическое обновление во время установки (для более быстрого тестирования). И в нем будет предустановлен сервер OpenSSH с паролем для входа. Обратите внимание на региональные особенности ( hr
= Хорватия, поэтому у нас есть хорватское зеркало настройки для apt и хорватская раскладка клавиатуры), настройте их для вашей страны. См. Образец / var / log / installer / autoinstall-user-data
в качестве шаблона для добавления ваших собственных настроек.
Ubuntu также требует файла метаданных
. Он ДОЛЖЕН быть пустым. Поэтому просто создайте его в том же каталоге, в котором вы поместили файл пользовательских данных
файл
touch /var/www/html/ubuntu-server-20.04.1/meta-data
. Чтобы увидеть больше параметров, см. Официальную документацию: https://ubuntu.com/server/docs/install/autoinstall-reference
Для Ubuntu 20.10 все то же самое, просто скопируйте код или создайте его по правильному пути:
nano /var/www/html/ubuntu-server-20.10/user-data
touch /var/www/html/ubuntu-server-20.10/meta-data
Используйте ту же выборку пользовательских данных, они взаимозаменяемы между 20.04 и 20.10. Также обратите внимание на двойную часть network: network:
. В 20.04 была ошибка, требующая такой настройки, а в 20.10 ошибки нет, но поддерживается как функция обратной совместимости.
Проверьте свою files
Я бы порекомендовал вам убедиться, что у вас есть все файлы для всех вариантов:
ll /var/www/html/ubuntu-server-20.04.1/
ll /var/www/html/ubuntu-desktop-20.04.1/
ll /var/www/html/ubuntu-server-20.10/
ll /var/www/html/ubuntu-desktop-20.10/
В папках сервера должно быть 4 файла:
initrd
meta-data
user-data
vmlinuz
В папках рабочего стола должно быть 2 файла:
initrd
vmlinuz
Если у вас возникли проблемы с загрузкой, проверьте разрешения файлов, перечисленных выше. Если вы выполняете лабораторную работу, просто сделайте небезопасную вещь и chmod
все это с полными разрешениями rw:
chmod -R 777 /var/www/html/*
Для производственной установки правильные разрешения с доступом только для чтения, где необходимо.
Тестирование всего
В в моей лабораторной среде, а также при запуске новой производственной установки я сначала тестирую все это на виртуальных машинах. Я использую Hyper-V для тестирования (я знаю, убейте меня, тут вдруг всякие майкрософты :)). Для проверки загрузки UEFI вы создаете машину поколения 2
, а для загрузки BIOS вы должны использовать машину поколения 1
. Не забудьте добавить в виртуальную машину достаточно ОЗУ для хранения RAMDISK! Итак, если виртуальная машина тестирует сервер с 1,5 ГБ RAM-диска, тогда вам понадобится 2 ГБ RAM для виртуальной машины, а для настольного компьютера у нас есть 3 ГБ RAM-диск, поэтому лучше всего иметь 4 ГБ RAM, подключенные к виртуальной машине. Кроме того, не забудьте подключить сетевые интерфейсы к правильным сетям, как я уже упоминал ранее, у меня есть виртуальный маршрутизатор и несколько подсетей,так как мне нужно протестировать и подтвердить все это для развертывания в довольно больших и сложных средах.
В любом случае, если у вас есть виртуальная машина - просто загрузите ее! Если вы все сделали правильно, вы должны увидеть загрузку PXE, ВМ получает IP, а затем открыть меню. Через 30 секунд он загрузится с диска, но просто используйте клавиши со стрелками, чтобы выбрать параметр. В своих тестах я обнаружил, что UEFI загружается намного быстрее, поэтому я обычно тестировал с UEFI, а затем тестировал виртуальную машину BIOS, когда UEFI был там, где я хотел.
Подведение итогов
Только сейчас я признаю, что я не гуру Linux. Но за последние полтора месяца я потратил много времени на загрузку PXE и настройку различных сред для него и вместе с ним. Это чистый стек Ubuntu в этом руководстве. Я планирую написать один, более ориентированный на Microsoft, но также основанный на SYSLINUX с мультизагрузочным меню и позволяющий загружать (разные) дистрибутивы Linux (в дополнение к Windows). Все это можно сделать с помощью любых инструментов DHCP / HTTP / TFTP, включая Microsoft Windows Server 2019, с парой установленных на нем ролей (DHCP, IIS, WDS). Точно так же вы можете использовать любой другой дистрибутив в качестве PXE-сервера для ваших установок Ubuntu. Вам также не нужно использовать Apache2, если вам удобнее, например. nginx в качестве вашего HTTP-сервера.
В конце я провел все свои тесты как с Ubuntu 20.04, так и с 20.10. Вся установка ТОЧНО ОДИНАКОВА для обеих версий. Просто измените имена файлов и загрузок ISO. Если вам просто нужен один из них, просто пропустите те части, которые вам не нужны.
Удачной охоты!
Редактировать: 2020-11-14 - добавлено все для Ubuntu 20.10, очищен некоторый код и добавлено еще значимые имена для папок, поскольку сейчас мы обрабатываем 4 различных загрузки ОС.