- Установка Ubuntu по сети
- Настройка сервера для установки
- Настройка сервера сетевой загрузки
- TFTP сервер
- Веб-сервер Apache
- DHCP сервер
- Установка по при помощи Minimal CD
- Сетевая установка Linux
- Установка через PXE
- Установка Linux через iPXE
- Установка Linux по сети.
- Подготовка загрузочного сервера.
- Установка DHCP-сервера.
- Настройка TFTP-сервера
- Загрузка установочного образа.
- Настройка клиента.
- Заключение.
Установка Ubuntu по сети
Ubuntu, как и многие другие дистрибутивы Linux, можно легко установить по сети. Для этого вам всего лишь потребуется сетевое соединение с компьютером, который будет служить сервером для установки. BIOS вашего компьютера должен для этого поддерживать загрузку по сети.
Настройка сервера для установки
Прежде всего вам потребуется компьютер с Ubuntu или с другим дистрибутивом Linux (данная инструкция написана для Ubuntu), с которого вы будете устанавливать систему (сервер загрузки по сети), и ISO образ Alternate диска с необходимой версией Ubuntu.
Настройка сервера сетевой загрузки
Для загрузки по сети потребуется установить на сервер TFTP, HTTP и DHCP сервисы, чтобы позволить второму компьютеру подключиться и загрузить все необходимые файлы.
Для установки всего необходимого лучше использовать aptitude, которая не входит в стандартную поставку Ubuntu начиная с версии 10.10. Поэтому сначала ставим aptitude через любую программу установки пакетов или командой
sudo apt-get install aptitude
Далее ставим всё необходимое:
sudo aptitude -R install apache2 atftpd tftpd-hpa dhcp3-server
Ключ -R нужен для того, чтобы atftpd поставился без inetd сервера, который вам совершенно не нужен.
Теперь пора настроить все компоненты.
TFTP сервер
Демон, использующий эти файлы — /etc/hosts.allow и /etc/hosts.deny для ограничения доступа.
Откройте файл /etc/default/atftpd в любом текстовом редакторе с правами суперпользователя, например, так:
sudo nano /etc/default/atftpd
Измените первую строчку с
Кроме этого запомните каталог, который находится в конце строчки OPTIONS . Скорее всего это будет /srv/tftp , но в старых Ubuntu может быть и /var/lib/tftpboot . Редактируем файл /etc/default/tftpd-hpa:
sudo nano /etc/default/tftpd-hpa
вписываем, запомненный каталог
Теперь просто запустите atftpd :
sudo /etc/init.d/atftpd start
Теперь создайте в каталоге из OPTIONS папку ubuntu. Далее везде будем считать, что используется каталог /srv/tftp :
После этого необходимо смонтировать ваш ISO образ во вновь созданный каталог. Сделать это можно примерно такой командой:
sudo mount -o loop /home/tux/ubuntu-11.04-alternate-i386.iso /srv/tftp/ubuntu/
Если у Вас нет ISO образа диска, но есть записанный Alternate диск, то просто вставьте его в CD/DVD привод. Диск автоматически монтируется в /media/cdrom . Дальше просто нужно создать симлинк для TFTP сервера:
sudo ln -s /media/cdrom /srv/tftp/ubuntu
На этом настройка TFTP закончена.
Веб-сервер Apache
Что-либо менять в настройках Apache не требуется, достаточно сделать созданный в предыдущем разделе каталог ubuntu доступным через HTTP . Для этого создайте на него симлинк из рабочей папки Apache:
sudo ln -s /srv/tftp/ubuntu /var/www/ubuntu
sudo ln -s /media/cdrom /var/www/ubuntu
DHCP сервер
Всё, что осталось — это настроить правильным образом DHCP сервер. Откройте в любом текстовом редакторе с правами суперпользователя файл /etc/dhcp3/dhcpd.conf , например, командой
sudo nano /etc/dhcp3/dhcpd.conf
В этом файле необходимо изменить следующие настройки:
# Имя вашего внутреннего домена. Если вам это ни о чём не говорит - просто не меняйте. option domain-name "domain.ru"; # Ваш DNS сервер, который должен использоваться на подключаемом компьютере. Чаще всего тут стоит IP адрес роутера. option domain-name-servers 192.168.0.1; # Просто раскомментируйте эту строчку authoritative; # Теперь надо определить сеть для DHCP сервера: # Сначала желаемая подсеть и маска подсети. subnet 192.168.0.0 netmask 255.255.255.0 { # Диапазон выдачи сервером адресов range 192.168.0.100 192.168.0.199; # Роутер для доступа к интернету option routers 192.168.0.1; # Какой файл загружать при сетевой загрузке - укажите именно в таком виде. filename = "ubuntu/install/netboot/pxelinux.0"; }
После этого нужно сказать нашему DHCP серверу слушать один из интерфейсов. Для этого откройте файл /etc/default/dhcp3-server и добавьте в параметр INTERFACES имя нужного интерфейса. Например, вот так:
Теперь нужно запустить DHCP сервер и можно будет приступать к установке. Однако перед запуском убедитесь, что в вашей сети нету ещё каких-нибудь работающих DHCP серверов. Чаще всего DHCP бывает запущен на роутерах, в этом случае надо зайти на роутер и остановить на нём этот сервис.
Итак, для запуска DHCP сервера достаточно выполнить команду
sudo /etc/init.d/dhcp3-server start
Теперь необходимо перевести второй компьютер в режим загрузки по сети. После этого Вы должны увидеть экран установки Ubuntu.
Установка по при помощи Minimal CD
Если вы по каким-то причинам не можете использовать полноценный диск с Ubuntu, но всё же в вашем компьютере есть CD привод и подключение к интернету, то вы можете поставить систему по сети, загрузившись с маленького диска Minimal CD.
В этом случае система поставится целиком из интернет-репозитория, а диск нужен будет только для запуска процесса установки.
Сетевая установка Linux
Недавно столкнулся с установкой Centos 7 в необычных условиях.
Во-первых, дома. То есть имел дело с локальными компьютером, а не с сервером с IPMI.
Во-вторых, за неимением дискового привода обычно использую загрузочную флешку, которая в данном случае оказалась бесполезной, так как новый компьютер загружается только с флешек с инсталятором Windows. Проблема не новая, судя по отзывам о материнской плате.
В моем распоряжении осталась сеть. Приведу пример установки Centos 7 по PXE и iPXE
Итак, начнем.
Как установить Linux через ipxe?
Как установить Linux через pxe?
Установка через PXE
Соединим ethernet кабелем компьютер1 — на котором будут DHCP, TFTP и компьютер2 — на который должна быть установлена ОС.
Добавим статичные настройки сетевого адаптера на компьютер1. Мой адрес 192.168.1.50.
Скачаем и установим TFTP. В этой программе настроим DHCP и TFTP сервер с которого отдадим IP адрес и установочные файлы компьютеру2.
Отключим брандмауэр и запустим tftpd с правами администратора. Выставим аналогичные установки, как на картинках. Возможно потребуется перезапуск tftpd.
На компьютере2 в boot меню выберем сетевой адаптер. В окне tftpd на компьютере1 будет отображаться шкала прогресса.
После этого, на компьютере2 загрузится окно инсталлятора ОС.
Установка Linux через iPXE
Скачаем образ ipxe.iso. Rufus-ом создадим загрузочную флешку на основе этого образа.
Выложим скрипт install.ipxe на любой веб сервер. О том, как поднять веб сервер на локальном компьютере можно узнать тут. Адрес моего скрипта будет таким sitename.ru/install.ipxe
Содержимое скрипта install.ipxe для установки Centos 7
#!ipxe set base http://mirror.centos.org/centos/7/os/x86_64 prompt -k 0x197e -t 2000 Press F12 to install CentOS. || exit kernel $/images/pxeboot/vmlinuz initrd=initrd.img repo=$ initrd $/images/pxeboot/initrd.img boot
По аналогии с этим скриптом для установки Centos 7, можете подготовить свой скрипт для установки другой ОС.
Соединим компьютер, на который необходимо установить Linux, и роутер ethernet кабелем. Вставим флешку и загрузимся с нее. После нажатия F12 появится ipxe консоль. Используем следующие команды для получения IP адреса и скачивания скрипта
iPXE> dhcp DHCP (net0 52:54:00:12:34:56). ok iPXE> chain http://sitename.ru/install.ipxe
Установка Linux по сети.
Большинство современных компьютеров умеют загружаться по сети — BIOS компьютера находит загрузочный PXE (Preboot Execution Environment) сервер и загружает с него операционной систему. Установка по сети используется в двух случаях:
- При установке Linux на ПК, на котором нет доступа к USB портам или приводам дисков. А может это старенький ноутбук, на котором есть только CD-привод.
- При установке на целый парк компьютеров. Тут все просто: компьютеров много, а установщик один, поэтому установка по сети может значительно сократить время.
В этой статье рассмотрим настройку и использование PXE-сервера, предназначенного для загрузки программы установки Linux.
Подготовка загрузочного сервера.
Настройку загрузочного сервера рассматривать будем на примере Ubuntu. Поскольку установка по сети — довольно специфическая операция, и она нужна далеко не всем пользователям, то рассматривать установку на разных дистрибутивах пока не буду — ведь в другом дистрибутиве все можно сделать по аналогии.
Установка DHCP-сервера.
Первым делом надо установить DHCP-сервер — в Ubuntu это можно сделать следующей командой:
Первым делом отредактируем файл /etc/default/isc-dhcp-server , и добавим в него следующую строку, заменив имя интерфейса на ваше:
Затем открываем файл /etc/dhcp/dhcpd.conf и добавляем следующее
Об инструкции hardware следует сказать особо. По большому счету — она не нужна. Но если вы запускаете DHCP-сервер в реальной сети, где уже наверняка есть другой DHCP-сервер, а вам надо установить Linux всего на один компьютер, тогда замените символы xx в инструкции hardware MAC-адресом сетевого адаптера, установленного на компьютере, на который нужно поставить Linux.
С другой стороны, указать MAC-адреса потенциальных клиентов — это хорошая идея с точки зрения безопасности. Но если вы разворачивайте свой PXE-сервер только для установки операционной системы, нет никакой необходимости тратить время на определение MAC-адресов всех компьютеров сети. Вот, когда надо настроить полноценный PXE-сервер, может и нужно указать адреса клиентов, чтобы никто другой не смог использовать ваш сервер для загрузки. Тут уже решать вам…
Сохраните файл конфигурации DHCP-сервера и перезапустите сервер:
Настройка TFTP-сервера
Следующий шаг — настройка TFTP-сервера (Trivial File Transfer Protocol), на котором будет размещен образ операционной системы. В нашем случае — это установочный образ Ubuntu.
Установить TFTP-сервер можно командой:
После установки сервера отредактируйте ваш файл /etc/inetd.conf . Убедитесь, что в нем есть следующая строка ( и что она раскомментирована).
Поскольку TFTP-сервер работает не автономно, а через сервер inetd, то для запуска TFTP-сервера нужно перезапустить сервер inetd.
В современных дистрибутивах вместо сервера inetd может использоваться суперсервер xinetd. Установить его можно следующей командой.
Потом надо будет отредактировать его конфигурационный файл /etc/xinetd.conf . Добавьте в него следующие строки.
service tftp < socket_type = dgram protocol = udp wait = yes user = tftp
server = /usr/sbin/in.tftpd server_args = -l /var/lib/tftpboot only_from = client.test.net >
Загрузка установочного образа.
Теперь нам нужно загрузить специальный установочный образ, рассчитанный на установку по сети. Для этого воспользуемся следующими командами
$ mkdir netboot
$ sudo lftp -c «open http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-i386/current/images/; mirror netboot/»
Первая команда создаст каталог netboot, а вторая — загрузит в нее установочный образ Ubuntu.
Почти все готово, и в каталог netboot загружены файлы, необходимые для установки Linux по сети. Но давайте вспомним наш файл /etc/inetd.conf (или xinetd.conf). Конфигурация TFTP предполагает, что все файлы, доступные по протоколу TFTP, должны быть расположены в каталоге /var/lib/tftpboot . Поэтому нам нужно скопировать туда файлы из каталога netboot.
Вот и все — ваш PXE-сервер готов к работе.
Настройка клиента.
Настраивать клиент, т.е. компьютер, на который вы будете устанавливать Linux, очень просто, достаточно зайти в его BIOS и установить загрузку по сети. Но загружаться по сети умеют не все компьютеры…
Что делать, если у вас старый компьютер, который не умеет загружаться по сети? Можно попытаться перепрошить BIOS — новая версия наверняка будет поддерживать загрузку по сети. Если перепрошивать BIOS нежелательно, или вы не можете найти подходящую версию BIOS именно для вашего компьютера, тогда вам будет проще изготовить специальную загрузочную флэшку, загрузиться с нее, а загрузчик уже сам найдет PXE-сервер и запустит процесс установки.
Заключение.
В этой статье немного рассмотрели, как организовать установку системы по сети. В большинстве крупных IT — компаний установка новых серверов осуществляется именно с помощью PXE-сервера. Это значительно упрощает работу. Не надо бегать от сервера к серверу с установщиком.