Статья 3. Установка и настройка Tftpboot и NFS
Описание
Установка и настройка tftpboot и NFS не является обязательным условием, но крайне желательна, ввиду того что в дальнейшем поможет сэкономить много времени.
Установка tftpboot
out4@out4-lm:~$ sudo apt-get install openbsd-inetd tftpd tftp
По умолчанию tftp сервер настроен на использование каталога /srv/tftp, мы же перенастроим его на использовании каталога /tftpboot. Для этого с правами администратора редактируем файл /etc/inetd.conf любым имеющимся текстовым редактором (gedit, vi, nano и т.д.)
out4@out4-lm:~$ sudo vi /etc/inetd.conf
в файле ищем строку
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftp
и исправляем ее на
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
сохраняем изменения в файле и выходим. Создаем сам каталог /tftpboot
out4@out4-lm:~$ sudo mkdir /tftpboot
изменяем права доступа
out4@out4-lm:~$ sudo chown -R nobody /tftpboot
out4@out4-lm:~$ sudo chmod -R 777 /tftpboot/
перезапускаем службу inetd
out4@out4-lm:~$ sudo /etc/init.d/openbsd-inetd restart
создаем тестовый файл в /tftpboot
out4@out4-lm:~$ echo Its test file > /tftpboot/testfile
Готово. С помощью tftp сервера, в дальнейшем мы будем загружать файлы ядра на плату, чтобы не записывать их на карту или в память NAND/eMMC/SPI.
Теперь установим NFS. NFS - это сетевая файловая система размещенная на сервере, который мы сейчас установим и настроим. NFS позволяет клиентам (платам и модулям) монтировать как обычный диск в системе.
Устанавливаем NFS
out4@out4-lm:~$ sudo apt install nfs-kernel-server
NFS прослушивает соединения по TCP/UDP на порту 2049. Проверим так ли это
out4@out4-lm:/tftpboot$ sudo rpcinfo -p | grep nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100003 3 udp 2049 nfs
Проверим есть ли поддержка NFS в ядре
out4@out4-lm:/tftpboot$ cat /proc/filesystems | grep nfs
nodev nfsd
Теперь создадим каталог rootfs в котором будем хранить различные файловые системы, которые нам придется собирать (buildroot, debian, openwrt и т.д.). Данные каталог создадим в уже имеющемся у нас каталоге /tftpboot
out4@out4-lm:~$ sudo mkdir /tftpboot/rootfs
И теперь еще пару пустых каталогов внутри rootfs
out4@out4-lm:/tftpboot$ sudo mkdir /tftpboot/rootfs/buildroot
out4@out4-lm:/tftpboot$ sudo mkdir /tftpboot/rootfs/openwrt
out4@out4-lm:/tftpboot$ sudo mkdir /tftpboot/rootfs/debian
теперь отредактируем файл /etc/exports в котором хранятся все настройки NFS. Сейчас он выглядит приблизительно так:
out4@out4-lm:/tftpboot$ sudo vi /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
[/code]
Нам необходимо прописать в нем наши каталоги buildroot, openwrt, debian. Поэтому добавляем следующие строки
[/code][/code][/code]
out4@out4-lm:/tftpboot$ sudo vi /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
#
/tftpboot/rootfs/buildroot 192.168.1.0/24(rw,sync,no_root_squash,subtree_check)
/tftpboot/rootfs/openwrt 192.168.1.0/24(rw,sync,no_root_squash,subtree_check)
/tftpboot/rootfs/debian 192.168.1.0/24(rw,sync,no_root_squash,subtree_check)
Сохраняем, выходим и обновляем таблицу экспорта NFS командой
out4@out4-lm:~$ sudo exportfs -a
Если возникли затруднения, ссылки на данную тему ниже:
Установка TFTP сервера (tftpd) в Ubuntu Linux
Разворачиваем TFTP сервер на Debian/Ubuntu
Сетевая файловая система (NFS)
ПОДНИМАЕМ NFS СЕРВЕР НА UBUNTU
НАСТРОЙКА NFS В UBUNTU 16.04