Настройка NFS-сервера и DNSmasq-сервера
Примечание
В статье IP-адреса являются примерами. Необходимо производить настройку в соответствии с существующей инфраструктурой.
-
Развернуть виртуальную машину с ОС Debian 12 в виртуальной среде SpaceVM.
Возможно использовать другую ОС с набором пакетов (NFS-сервер и DNSmasq-сервер), но необходимо учитывать особенности настройки.
-
Установить NFS-сервер с помощью команды:
sudo apt-get install nfs-kernel-server -
Установить DNSmasq-сервер (proxy-DHCP и TFTP-сервер).
sudo apt-get install dnsmasqDNSmasq-сервер имеет встроенный TFTP-сервер (через enable-tftp), не требует отдельной установки tftpd-hpa и не имеет конфликтов с основным DHCP-сервером.
-
Загрузить архив tar.gz на виртуальную машину.
- Создать директорию для распаковки архива:
sudo mkdir /srv/tftp/ -
Распаковать архив tar.gz в директорию TFTP-сервера:
sudo tar -xzf space-client-livecd-pxe.tar.gz -C /srv/tftp/архив tar.gz
tar.gz входит в состав образа Space Client Live (PXE) и необходим для настройки PXE-сервера. Архив содержит:
- vmlinuz — ядро Linux.
- initrd — начальный RAM диск.
- live/filesystem.squashfs — сжатая файловая система (~700 MB).
- pxelinux.0 и *.c32 — загрузчики для BIOS.
- pxelinux.cfg/default — конфигурация для BIOS.
- grub/bootx64.efi, grub/grubx64.efi — загрузчики для UEFI.
- grub/grub.cfg — конфигурация для UEFI.
-
Добавить экспорт TFTP-директории:
echo '/srv/tftp * (ro,sync,no_wdelay,insecure_locks,no_root_squash,insecure,no_subtree_check)' | sudo tee -a /etc/exports - Применить изменения с помощью команды:
sudo exportfs -ra - Перезапустить службу nfs:
sudo systemctl restart nfs-kernel-server - Проверить статус службы nfs:
sudo systemctl status nfs-kernel-server - Проверить экспорты:
sudo exportfs -v -
Создать директорию для конфигурации:
sudo mkdir -p /srv/tftp/pxelinux.cfg sudo mv /srv/tftp/pxelinux.cfg-default /srv/tftp/pxelinux.cfg/default -
Отредактировать конфигурацию PXE, заменив
${TFTPSERVER}на IP адрес TFTP-сервера:sudo nano /srv/tftp/pxelinux.cfg/default -
Отредактировать конфигурацию grub, заменив
${TFTPSERVER}на IP адрес TFTP-сервера:sudo nano /srv/tftp/grub/grub.cfg -
Привести конфигурационный файл
/etc/dnsmasq.confк следующему виду:# Отключить DNS (если нужен только PXE): port=0 # Включить TFTP сервер: enable-tftp tftp-root=/srv/tftp # Proxy DHCP режим (не конфликтует с основным DHCP): dhcp-range=192.168.128.0,proxy dhcp-no-override # Определение архитектуры клиента: dhcp-match=set:bios,option:client-arch,0 dhcp-match=set:efi-x86_64,option:client-arch,7 dhcp-match=set:efi-x86_64,option:client-arch,9 # Указать файлы загрузки: dhcp-boot=tag:bios,pxelinux.0,192.168.128.150 dhcp-boot=tag:efi-x86_64,grub/bootx64.efi,192.168.128.150 # PXE меню (опционально): pxe-service=tag:bios,x86PC,"Astra Linux Live (BIOS)",pxelinux pxe-service=tag:efi-x86_64,BC_EFI,"Astra Linux Live (UEFI)",grub/bootx64.efi # Логирование для отладки: log-dhcp log-queriesПримечание
Можно очистить все содержимое файла и вставить написанное выше, заменив IP-адреса на:
- IP-адрес сети, в которой разворачивается сервер.
- IP-адрес машины, на которой разворачивается сервер.
-
Перезапустить службу dnsmasq:
sudo systemctl restart dnsmasq.service -
Перезапустить службу nfs:
sudo systemctl restart nfs-kernel-server


