Настройка сетевой загрузки с помощью DHCP NFS и TFTP

Материал из WikiAdmin
Перейти к: навигация, поиск

Появилась задача - поставить Linux Mint на ноутбук, на котором отсутствовал привод CD/DVD. Поэтому родилась идея в пределах рабочей локальной сети сделать загрузку по сети Live-образа операционной системы. То есть обычный сервер сетевой загрузки. К сожалению, более-менее простых руководств на просторах Интернет я не нашел, поэтому расскажу, как сделал это сам.


Для этого используется сервер Ubuntu, на котором установлены три сервиса:


Итак, прежде всего, поставим все эти три службы.

sudo apt-get install nfs-kernel-server dhcp3-server tftpd-hpa

Далее - настройка. Начнем с TFTPD. Его настройки я не менял, однако приведу их здесь, на случай, если у вас они уже изменены. Смотрим содержимое файла /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Небольшое примечание. На следующий день я поднимал это дело на CentOS. Установка tftpd тут немного другая:

yum install tftp-server
yum install xinetd
chkconfig tftp on
chkconfig xinetd on
chmod 777 /tftpboot

Ну а теперь вернемся к нашим "баранам".


Итак, настройки NFS. Они просто указывают директорию, в которую можно будет попасть по NFS и диапазон IP, которому это разрешено делать. Проверяем содержимое /etc/exports

/var/lib/tftpboot 192.168.1.0/24(rw,fsid=0,insecure,no_subtree_check,async)

Здесь вы видите, что файлы будут браться из той же директории, что указана и для TFTPD.


Снова отступление на тему CentOS - установка NFS:

yum install nfs-utils

Теперь настройки службы DHCP. Она должна не только раздавать IP, но и указывать сервер загрузки и какой именно файл нужно взять. Смотрим содержимое /etc/dhcp3/dhcpd.conf

ping-check = 1;
subnet 192.168.1.0
netmask 255.255.255.0 {
range 192.168.1.3 192.168.1.100;
filename = "pxelinux.0";
interface eth1;
}

Тут указана подсеть 192.168.1.0-192.168.1.254, файл для загрузки - pxelinux.0. Сервер next не указываю, т.к. этот файл находится на этом же сервере. Чтобы вам все это не пришлось искать в сети, выкладываю архив с pxelinux.0 и другими файлами, в том числе с файлами настроек сюда: Ссылка на архив.


Итак, службы настроены. Теперь идем в /var/lib/tftpboot. В данном каталоге мы поместим файл pxelinux.0, каталог pxelinux.cfg и каталоги, в которых у нас будут лежать распакованные образы. Для примера, я выбрал Linux Mint и Ubuntu Server, чтобы можно было выбирать, что грузить на компьютер. Это позволит заливать не только пользовательские машинки, но и сервера. Поэтому создал каталоги mint и server. Думаю, как скопировать файлы из ISO-образов, рассказывать вам не надо.

Теперь посмотрим файл default в pxelinux.cfg. Итак, содержимое:

LABEL live
kernel mint/casper/vmlinuz
append initrd=mint/casper/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/mint -- 

LABEL server
kernel server/boot/vmlinuz
append initrd=server/boot/initrd.lz boot=casper netboot=nfs nfsroot=192.168.1.1:/var/lib/tftpboot/server -- 

PROMPT 1
TIMEOUT 0

В данном случае видно, что при загрузке можно указать live - и тогда будет грузиться Linux Mint, если server - Ubuntu Server, nfsroot=192.168.1.1 - это адрес нашего сервера, который так щедро раздает IP и операционки в сети. Итак, подключаем к сети компьютер для заливки, ставим загрузку по сети - и в путь! На этом все. Если замечены какие-либо неточности или ошибки - просьба исправить или подсказать. Надеюсь, это руководство вам поможет.


Если эта страница оказалась для вас полезной, нажмите на кнопку. :)
Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты