Установка по сети linux с windows машины. Установка Ubuntu по сети

Сегодня автоматизируется все больше задач, для максимальной отдачи серверов все шире используют виртуализацию. Но устанавливать операционки по-прежнему приходится. Каждый делает это по-своему: у кого-то полные карманы различных образов на все случаи жизни, кто-то по старинке носит с собой «барсетку» с дисками, а то и две. Как правило, администраторы выполняют эту работу с невеликим удовольствием. Давай посмотрим, как сократить время на тривиальные задачи, как научить компьютеры устанавливать системы самостоятельно, вообще без участия админа, используя при этом только локальную сеть.

Итак, сегодня мы научимся: устанавливать Windows и Linux по сети, грузить небольшие ISO-образы, полезный софт (всяких там Касперских, Акронис, WinPE, мемтесты), разворачивать тонкие клиенты и рулить ими. Чтобы, например, бухгалтер, работающая с 1С по RDP, не прибила тебя за то, что у нее слетела винда, а отчет нужно было подготовить еще вчера... Или скупой начальник, который не хочет обновлять свой комп, восхитился твоим профессионализмом, когда увидит, как на стареньких компах летает Windows 8... В достижении наших коварных целей нам поможет сервер, предоставляющий загрузку по сети (PXE).

У любого системного администратора в заначке есть универсальный USB-диск для экстренной реанимации компьютера. Согласись, было бы куда лучше иметь ту же функциональность, используя одну лишь сетевую карту. Нельзя при этом не отметить возможность одновременной работы с несколькими узлами сразу. Итак, исходя из наших потребностей у нас есть два пути решения: использовать PXE или LTSP.

LTSP нам не очень подходит: он призван грузить по сети ОС, установленную на самом сервере, что позволяет использовать приложения сервера LTSP. Это не совсем то, что нам нужно. PXE - инструмент для загрузки компьютера по сети без использования локальных носителей данных, так же как и LTSP. PXE позволяет организовать мультизагрузочное меню загрузки, аналогичное универсальному «USB-реаниматору».


Что будем реализовывать?

Началось все с необходимости иметь под рукой инструмент для удаленной установки Ubuntu/Debian Server по сети, с возможностью загрузки Live CD маленькой системы, вроде SliTaz или Kolibri OS.
Как говорится, аппетит приходит во время еды: намеченное не успели реализовать, а к плану добавился еще ряд «хотелок». В итоге список получился весьма внушительным.

  1. Тонкие клиенты на базе Thinstation Linux.
  2. Раздел Linux.
    1. Установка Ubuntu 14.04 x86.
    2. Установка Ubuntu 14.04 x64.
    3. Установка Ubuntu 12.04 x86.
    4. Установка Ubuntu 12.04 x64.
  3. Раздел Windows.
    1. Установка Windows 2012.
    2. Установка Windows 7.
  4. Acronis.
    1. Windows PE с пакетом полезного ПО.
    2. Acronis True Image.
      1. Legacy BIOS.
      2. UEFI.
    3. Acronis Disk Director.
      1. Legacy BIOS.
      2. UEFI.
  5. Касперский Rescue v 10.
  6. ERD Commander от 5 до 8 через ISO-образ.
  7. Memtest.

Собираем все в кучу и взлетаем

В качестве дистрибутива для сервера выбор пал на Ubuntu Server 14.04.2 LTS. Можно остановиться на любой другой ОС, разница будет только в синтаксисе. Итак, приступим. Нам потребуется TFTP, DHCP (необязательно установленный на этом же сервере, в роли DHCP-сервера может выступить роутер), сервис для организации сетевой файловой системы NFS. Рассматривать будем только те настройки, которые нас интересуют в рамках темы. Первым делом установим все необходимое, предварительно сделав все обновления:

Продолжение доступно только участникам

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

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

В статье он упомянул о возможности установки «С помощью загрузки по сети (PXE boot)», благодаря чему я решил наконец написать материал по созданию сервера pxe boot.

Повествование будет вестись на примере всё той же ОС - Debian (так что пути и команды у вас могут отличаться).
Для начала - поставим tftp -сервер. Смотрим доступные варианты (apt-cache search tftp | fgrep server ):

  • atftpd
  • dnsmasq
  • tftpd
  • tftpd-hpa
Сначала я поставил tftpd-hpa, т.к. о нём рассказывалось в мануале , с которого я начинал создание сервера. Затем я перешёл на atftpd, т.к. мне потребовалось логирование. Рассмотрим оба варианта:
  • tftpd-hpa:
    Устанавливаем пакет, редактируем файл /etc/default/tftpd-hpa , дабы демон знал, что ему стоит жить:

    #Defaults for tftpd-hpa
    RUN_DAEMON="yes"
    OPTIONS="-l -s /var/lib/tftpboot"

    Создаём нужный каталог: mkdir /var/lib/tftpboot , и стартуем сервис invoke-rc.d tftpd-hpa start

  • atftpd:
    После установки обнаруживаем, что по-умолчанию этот сервис работает через inetd. Я, почему-то, не фанат этого метода, поэтому первым делом закомментировал соответствующую строку в /etc/inetd.conf . Затем редактируем /etc/default/atftpd :

    USE_INETD=false
    OPTIONS="--daemon --tftpd-timeout 1500 --no-multicast --retry-timeout 20 --logfile /var/log/atftpd.log --maxthread 100 --verbose=5 /var/lib/tftpboot"

    --tftpd-timeout - время жизни потока, при отсутствии запросов
    --retry-timeout - таймаут отдачи файла
    у меня установлены большие таймауты, т.к. сервис транслируется в городскую локальную сеть, которая периодически прогибается от обилия абонентов, и не справляется с потоком запросов.
    Ну и, как и в предыдущем пункте, - создаём нужный каталог: mkdir /var/lib/tftpboot , и стартуем сервис invoke-rc.d atftpd start

Теперь у нас есть tftp-сервер. Один шаг мы сделали:)
Далее - настройка dhcp:
  • dhcp3:
    В конфигурационный файл /etc/dhcp3/dhcpd.conf добавляем информацию о загрузке:

    Filename "pxelinux.0";
    next-server ;

    Если tftpd установлен на том же сервере, что и dhcpd - директиву next-server можно опустить. И перезапускаем dhcp3-server: invoke-rc.d dhcp3-server restart

  • dnsmasq:
    В конфиг /etc/dnsmasq.conf дописываем:

    Dhcp-boot=pxelinux.0,,

    Опять же, если сервера tftp и dhcp совпадают - последние 2 атрибута можно не заполнять. Перезапускаем: invoke-rc.d dnsmasq restart

Шаг второй пройден. Дальше - непосредственно настройка pxe-boot.
Идём на ftp.debian.org , выбираем каталог installer-* , соответствующий необходимой архитектуре. Затем переходим в директорию current/images/netboot внутри мы найдём файлы netboot.tar.gz и gtk/netboot.tar.gz - это файлы текстовой и графической установки соответственно. Выбираем понравившийся, качаем и распаковываем в /var/lib/tftpboot .
Осталось убедиться, что зазрешён доступ на 69 UDP порт, и можно пользоваться прелестями сетевой установки.

В качестве бонуса прилагаю меню, которое получилось у меня в результате нескольких дней издевательств:
В текущей конфигурации возможна установка нескольких ОС (установка Debian возможна как в текстовом, так и в графическом режиме), загрузка xUbuntu (через nfs), SystemRescueCD (через http-boot), memtest86 (через tftp). Установка всех ОС возможна для 2 архитектур - x86 и x64. Т.к. у меня лежит внутрисетевое зеркало репозиториев Ubuntu 8.10 и Debian 5.0, то установщики не предлают выбор репозитория, а автоматически сливают всё с него.
Скриншоты.

В серверных всё чаще попадаются сервера без CD/DVD-приводов. Время от времени на них нужно ставить операционную систему, и в этом может сильно помочь установка по сети. Вы просто включаете сервер и начинаете установку. Сетевая карта должна поддерживать технологию PXE. PXE - Pre-Boot Execution Environment - позволяет осуществлять загрузку по сети.

Но PXE недостаточно для полного счастья, технология, которая позволит полностью автоматизировать установку - kickstart (разработчиком которой является компания Red Hat). Суть её проста - мы заранее составляем файл, содержащий значения всех опций, которые могут понадобиться в ходе установки. Более того, мы можем выполнять свои скрипты до установки и после, тем самым задавая настройки будущей ОС.

Установка с помощью kickstart типового комплекта Linux занимает 5-7 минут.

Для Install-сервера нужно 3 службы и 1 пакет.


  • DHCP предоставляет клиентам сетевые реквизиты

  • TFTP - простой способ предоставить доступ к файлам по сети

  • Syslinux содержит загрузчик pxelinux.0 и некоторые другие файлы

  • NFS предоставляет доступ к файловой системе по сети
Процесс установки можно разбить на этапы:

  1. pxe - прошивка pxe начинает свою работу, когда мы в BIOS выставляем установку по сети, или когда на HDD не найдена MBR.

  2. DHCP фаза 1 - клиент получает сетевые реквизиты и адрес tftp-сервера, а также название файла-загрузчика (pxelinux.0). По умолчанию TFTP-сервер - это DHCP-сервер.

  3. TFTP - загрузчик pxelinux.0 обращается к TFTP-серверу и запрашивает у него initrd.img (Initial RAM disk, временная файловая система), ядро Linux.

  4. Kernel - передача управления ядру Linux.

  5. DHCP фаза 2 - ядро Linux делает запрос к DHCP-серверу, чтобы получить сетевые реквизиты и в дальнейшем адрес NFS-сервера.

  6. NFS - этап, когда монтируется NFS-раздел

  7. init - происходит запуск /sbin/init, и управление передаётся ему. Init - это главный процесс в системе, другие процессы являются дочерними процессами init.
В свободном изложении:

DHCP-сервер ожидает bootp-запросы в своей сети; после того, как он получает запрос, он смотрит MAC-адрес источника, и если о таком MAC-адресе у него имеется соответствующая запись, он начинает с ним работать. DHCP-сервер выдаёт клиенту сетевые реквизиты (IP-адрес, gateway, DNS-сервера,...) и по протоколу TFTP, с помощью TFTP-сервера, отправляет загрузочный образ pxelinux.0. Этого образа хватает, чтобы вывести меню выбора ОС.

Выбрав ОС, мы начинаем загрузку ядра и начинаем инсталляцию, в процессе выбрав источник установки — NFS-сервер. На NFS-сервер нужно выложить подготовленный контент будущей операционной системы и убедиться, что соответствующие каталоги экспортированы.

DHCP

Устанавливаем DHCPD и добавляем его в автозагрузку:
# yum -y install dhcp
# chkconfig dhcpd on

Файл /etc/dhcpd.conf делаем такой:

Ddns-update-style interim;
ignore client-updates;
subnet 192.168.146.0 netmask 255.255.255.0 {
option routers 192.168.146.1;
option subnet-mask 255.255.255.0;
option domain-name «domain.local»;
option domain-name-servers 192.168.146.1;
default-lease-time 21600;
max-lease-time 43200;
Allow bootp;
Allow booting;
host unixbox {
hardware ethernet 00:0c:29:77:9c:9c;
fixed-address 192.168.146.128;
filename «pxelinux.0»;
option host-name «unixbox»;
next-server 192.168.146.1;
}
}

Запускаем DHCPD или перезагружаем, если он был запущен:
# service dhcpd restart

Отключаем файрвол, включённый по умолчанию (иначе на целевом компьютере при загрузке будет ошибка "ICMP Destination unreachable (Host administratively prohibited)"):
# service iptables stop
# chkconfig iptables off

TFTP

Устанавливаем пакет tftp-server из репозитория:
# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурацию xinetd, для этого в файле /etc/xinetd.d/tftp меняем “disable = yes” на “disable = no” и включаем xinetd:
# service xinetd start

Проверяем, что порт tftp-сервера прослушивается (tftp работает на порту 69):
# netstat -nlp | grep:69
udp 0 0 0.0.0.0:69 0.0.0.0:* 3105/xinetd

Syslinux

Пакет содержит набор файлов для загрузки по сети. Нам нужны pxelinux.0 , который как загрузочный образ мы будем отдавать через DHCP, и menu.c32 , с помощью которого будет рисоваться более привлекательное меню пользователя. (Для CentOS 4 обновлённый syslinux с зависимостями надо скачать с rpmfind.net .)

# cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/
# cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

NFS

По умолчанию в системе, скорее всего, есть NFS, если нет, то поставьте с помощью yum.
# chkconfig nfs on

В файл /etc/exports добавляем запись:
echo “/var/install-server/ *(ro,no_root_squash)” >> /etc/exports

Запускаем nfs-сервер:
# service nfs start

Проверяем, что каталог экспортирован:
# exportfs
/var/install-server

Создаём структуру tftp-сервера, добавляем контент на сервер:
# mkdir -p /tftpboot/{pxelinux.cfg,centos5_x86}
# mkdir -p /var/install-server/centos5_x86

Монтируем наш DVD с CentOS 5 и закачиваем содержимое в /var/install-server/centos5_x86:
# mount /dev/cdrom /mnt/
# cp -r /mnt/* /var/install-server/centos5_x86/
# cp /var/install-server/centos5_x86/images/p xeboot/* /tftpboot/centos5_x86/

В каталоге /tftpboot/pxelinux.cfg создаём файл default и заполняем его как показано ниже:
default menu.c32

prompt 0
timeout 100

kernel /centos5_x86/vmlinuz
append initrd=/centos52_x86/initrd.img
label Quit
localboot 0

Устанавливаем ОС по сети

После всех манипуляций, описанных выше, можем приступить к установке ОС. Стартуем нашу машину с MAC-адресом 00:0c:29:77:9c:9c, включив в BIOS загрузку по сети. Когда начнётся установка, всё делаем стандартным образом, кроме того, что в списке, откуда ставить ОС, нужно выбрать NFS, и далее, когда попросят, указать:
NFS server name: 192.168.146.1
CentOS directory: /var/install-server/centos5_x86

Автоматизация установки с помощью Kickstart

Для автоматизации нужно создать файл, содержащий всю нужную информацию, которая может потребоваться в процессе установки. Такой файл создаётся программой system-config-kickstart (GUI tool) в любой CentOS с X Window:
# yum -y install system-config-kickstart
# system-config-kickstart

После того, как мы создали файл с помощью system-config-kickstart, его нужно перенести на Install-сервер и сделать доступным по одному из протоколов HTTP, NFS или FTP. Поскольку в работе Install-сервера активно используется NFS, то и будем использовать её.

В моём случае kickstart-файл лежит в /var/install-server/centos5_x86/centos5_ x86_ks.cfg .

В файл /tftpboot/pxelinux.cfg/default нужно всего лишь добавить директиву ks с указанием местоположения kickstart-файла. Пример с kickstart-файлом:
default menu.c32
menu title Linux Install Server. Please choose OS to install.
prompt 0
timeout 100
label CentOS 5 x86 Custom install
kernel /centos5_x86/vmlinuz
append initrd=/centos5_x86/initrd.img
label CentOS 5 x86 Kickstart Install
kernel /centos52_x86/vmlinuz
append initrd=/centos5_x86/initrd.img ks=nfs:192.168.146.1:/var/install-server/c entos5_x86/centos5_x86_ks.cfg
label Quit
localboot 0

Теперь, выбрав «CentOS 5 x86 Kickstart Install» в меню выбора ОС, нам останется только подождать сервера с установленной на нём ОС.

Ниже пример моего Kickstart-файла. Мне захотелось, чтобы в установленной ОС в настройках sshd была опция «PermitRootLogin yes» . Kickstart-файл позволяет не только задавать параметры установки ОС, но и выполнять скрипты, до инсталляции (%pre) и после (%post). Таким образом можно написать массу скриптов по тюнингу и за 5-10 минут инсталляции получить полностью готовую ОС.

#platform =x86, AMD64, or Intel EM64T
# System authorization information
auth --useshadow --enablemd5
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Use text mode install
text
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use NFS installation media
nfs --server=192.168.146.1 --dir=/var/install-server/centos5_x86
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
#Root password
rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx
# System timezone
timezone Europe/Moscow
# Install OS instead of upgrade
install
# Disk partitioning information
part swap --bytes-per-inode=4096 --fstype=”swap” --size=512
part / --bytes-per-inode=4096 --fstype=”ext3” --grow --size=1

%post --interp /bin/bash
PATH=/somework
/bin/mkdir $PATH
/bin/sed -e ‘s/#PermitRootLogin yes/PermitRootLogin yes/g’ /etc/ssh/sshd_config > $PATH/sshd_config_edited
/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config
/bin/rm -rf $PATH

Не так давно я столкнулся с ситуацией, когда потребовалось поставить windows на ноутбук по сети, т.к. других вариантов не было. Т.к. подобный опыт у меня уже был, но давно, то возникла необходимость освежить знания, хотя в итоге оказалось, что необходимо было разбираться заново =).

Вступление

Во время описания, я буду предполагать, что у нас уже есть сервер на Linux и реализована загрузка с него по pxe.

Для работы нам понадобится следующий софт:

  • hpa-tftpd
  • samba
  • pxelinux
  • dhcpd

Настройку dhcpd, pxelinux, samba мы опустим. Будут описаны только изменения, которые необходимо внести в конфигурацию этих служб.

Подготовка необходимых файлов

Для начала создадим структуру директорий в рабочей директории tftp-сервера.

mkdir /tftpboot/install

mkdir /tftpboot/install/win

cd /tftpboot

ln -s install/win win

Далее скопируем все установочные файлы и папки с диска винды в папку /tftpboot/install/win . Как вы заметите названия файлов все в верхнем регистре. Дабы исправить эту оплошность следует сделать следующее в папке /tftpboot/install/win/i386:

ls -1 |awk ‘{system(«mv «$0″ «tolower($0))}’

После этого следует скопировать из этой папки в корень tftp-сервера следующие файлы: startrom.n12, SETUPLDR.BIN (нужно его переименовать в ntldr), BOOTFONT.BIN, ntdetect.com . Они могут быть запакованы и тогда последняя буква расширения будет заменена на символ подчеркивания. Распаковать их можно будет с помощью утилиты cabextract .


floppyless = «1»
msdosinitiated = «1»
; Needed for second stage
OriSrc = «\\10.0.0.254\WINXP\win\i386″
OriTyp = «4»
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1


OsLoadOptions = «/noguiboot /fastdetect»
; Needed for first stage
SetupSourceDevice = «\Device\LanmanRedirector\10.0.0.254\WINXP\win»


; Avoid automatic format/repartition
Repartition = No
UseWholeDisk = No


ComputerName = *
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

Естественно указываем свои данные (путь и сервер и серийник).

После этого заходим в папку i386 и распаковываем архив drivers.cab

cabextract drivers.cab

Настройка службы BINL

Надеюсь, вы уже скачали архив ris-linux по ссылке выше. Если нет, то качайте, после чего можно продолжать настройку.

Служба BINL создана для того, чтобы установщику Windows передавать драйверы сетевой карты. Да. Вот такая парадоксальная ситуация — загрузчик по сети загрузился, но в с сетью сам общаться не может, без этой службы и загруженного впоследствии драйвера.

Распаковываем архив в папку /opt (всякое лишнее ПО рекомендуется именно туда ставить). Заходим в папку. Там довольно много файлов, но не все они нам понадобятся. Итак, нам нужно отдавать драйверы сетевых карт. Для этого сначала нужно создать их список. Делается это так:

infparser.py /tftpboot/install/win/i386

Теперь можно запускать службу:

./binlsrv.py &

Кстати. Если загрузчик не будет грузиться, то для приведения его в рабочее время тут есть файл fixloader.py .

fixloader.py /tftpboot/ntldr

Настройка hpa-tftpd

Т.к. при записи пути к файлу у windows и linux используются разные слеши, то нужно сделать так, чтобы tftp -сервер понимал, что от него хотят. Для этого создаим файл /etc/tftpd.rules следующего содержания:

После этого данный файл, нужно указать серверу. Для этого редактируем его конфигурационный файл и через флаг -m указываем путь к файлу. В Gentoo этот файл зовется /etc/conf.d/in.tftpd. Находим и приводим к следующему виду строку опций запуска:

INTFTPD_OPTS=»-c -R 4096:32767 -s ${INTFTPD_PATH} -v -m /etc/conf.d/tftpd.rules»

Тут также указан еще флаг -v. Он нужен для отладки. Чтобы когда что-то пойдет не так, можно было посмотреть какие файлы были запрошены и были ли они отданы.

Настройка Samba

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

Добавляем в smb.conf примерно следующие строки:


comment = install files
path = /tftpboot/install
public = yes
writable = yes
guest only = yes

Важный момент. Должна быть выставлена глобальная опция: null passwords = true

И еще один важный момент — обратите внимание, что внутри шары должна быть хотя бы одна директория, в которой уже находятся установочные файлы. Если расшарить сразу папку с установочными файлами, то получим ошибку в самом начале установки.

Настройка pxelinux

Эта операция самая простая. Необходимо добавить в ваш pxelinux.cfg/default следующие строки:

label WinXP Home Install from Network
kernel install/win/startrom.0

Все. Уже можно загружаться и устанавливать.

( 2018-04-10 )

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

Некоторое время назад автору этих строк в руки попал старенький IBM ThinkCentre S51 8171 с неисправным CD-приводом. С загрузкой с флэшки, созданной с помощью UNetBootin, так же возникли проблемы и осталась последняя надежда: загрузка инсталлятора по PXE. Далее будет кратко описан полученный опыт.

IBM ThinkCentre S51 8171 имеет очень неплохую начинку для машины 2006-го года выпуска: Pentium 4 540, 2x512MB DDR, 30GB ATA HDD. Но в 2018-м она смотрится блекло, хотя и сейчас ей можно найти множество применений. Основная проблема: процессор не поддерживает EMT64 и потому операционная система должна быть обязательно 32-битной. К счастью Ubuntu 16.04 существует в редакции i386 и было решено ставить её.

В качестве сервера загрузки решено было использовать домашний сервер под управлением Ubuntu 16.04. Для раздачи адресов в локальной сети используется isc-dhcp-server. В остальном конфигурация сервера достаточно типична. Для создания PXE-окружения нам понадобится -сервер. Мы будем использовать пакет "tftpd-hpa". Установим его, а так же (на всякий случай) tftp-клиент:

Apt-get install tftpd-hpa tftp-hpa

По умолчанию tftpd-hpa использует директорию "/var/lib/tftpboot". Если по какой-то причине необходимо это изменить то нужно соответствующим образом отредактировать файл "/etc/default/tftpd-hpa" и перезапустить сервис "tftpd-hpa". Но нас вполне устроит конфигурация по умолчанию.

Список доступным инсталляторов Ubuntu 16.04 для загрузки через PXE и сетевой установки можно найти на этой странице . Нас интересует архив под названием "netboot.tar.gz" для архитектуры i386. Скачиваем и распаковываем его в директорию tftp-сервера:

Wget http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-i386/current/images/netboot/netboot.tar.gz mkdir -p /var/lib/tftpboot/ubuntu/ tar zxfv netboot.tar.gz -C /var/lib/tftpboot/ubuntu/

На этом подготовка TFTP-сервера заканчивается и остаётся настроить DHCP-сервер. Вся конфигурация сводится к добавлению строки:

# Путь к файлу "pxelinux.0" относительно директории TFTP-сервера filename "ubuntu/pxelinux.0";

Эту строку можно добавить в описание подсети, группы хостов или даже конкретного хоста. Главное чтобы машина, ради которой это всё делается, получила нужную конфигурацию. После этого можно включить машину и выбрав загрузку по PXE приступить к установке системы. После загрузки инсталлятора установка будет происходить обычным образом, так, будто бы была произведена загрузка с "MinimalCD ".

На этом можно было бы закончить, но есть ещё интересный момент: автоматическая установка. Инсталлятор Ubuntu частично поддерживает формат конфигурации kickstart от RedHat Linux. Подробнее можно прочитать . Если есть необходимость в использовании сценария автоматической установки то сначала необходимо создать файл сценария и разместить его на веб-сервере в локальной сети, затем надо немного модифицировать файл "/var/lib/tftpboot/ubuntu/ubuntu-installer/i386/boot-screens/txt.cfg":

#append vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet append ks=http://192.168.2.1/ks.cfg vga=788 initrd=ubuntu-installer/i386/initrd.gz --- quiet

Здесь параметр "ks=" указывает URL, по которому расположен сценарий настройки kickstart. Более детальное изучение этой темы оставим читателю.

На этом всё. Приятной работы!



Copyright © 2024 Немного о компьютере.