Я пытаюсь заставить работать удаленную корневую (и загрузочную) файловую систему NFS правильно, и я достигаю пределов своих знаний. Интересно, может ли кто-нибудь указать мне правильное направление.
Сервер
Оба TFTP и NFS обслуживаются маршрутизатором Linksys WRT 1900 ACS, работающим под управлением OpenWRT 19.07. Это устройство также имеет внешний SSD, который используется в качестве корневой файловой системы наложения.
https://openwrt.org/docs/guide-user/additional-software/extroot_configuration.
У каждого клиента в этом каталоге есть файл корневой системы (Ubuntu 21.04)
/nfs/exports/tftp/
и загрузочный каталог в
/tftp/tftpboot/
А вот содержимое /etc/exports:
/overlay/upper/nfs/exports/ *(rw,sync,no_subtree_check,no_root_squash) /overlay/upper/tftp/tftpboot/ *(rw,sync,no_subtree_check,no_root_squash)
Если я не добавлю префикс /overlay/upper/, то я не смогу смонтировать экспортированный каталог.
Клиенты
Клиенты успешно загружаются по протоколу PXE и загружают операционную систему (Ubuntu 21.04), я могу войти в систему, использовать SSH и т. д. Однако не обходится без ошибок во время загрузки или при попытке выполнить обновление с помощью apt-get.
Первая ошибка, которую я вижу при загрузке, это:
[Failed] Failed to start Remount Root and Kernel File System
потом позже я вижу
[Failed] Failed to mount /boot
однако после входа в систему /boot, похоже, смонтирован.
Вот fstab от клиента
10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5 / nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0
10.1.0.1:/overlay/upper/tftp/tftpboot/68fe97e5 /boot nfs defaults,_netdev,nfsvers=4.1,proto=tcp 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
tmpfs /var/run tmpfs defaults 0 0
(извините за форматирование)
И /boot/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=10.1.0.1:/overlay/upper/nfs/exports/tftp/68fe97e5,tcp ip=dhcp elevator=deadline rootwait fixrtc rw cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
Когда я смотрю на systemctl systemd-remount-fs.service я вижу эту строку
May 27 15:10:08 rdg-clust-01 systemd-remount-fs[317]: mount.nfs: an incorrect mount option was specified
Может ли кто-нибудь указать, в каком варианте я ошибаюсь?
решение1
Посмотрите, как это работает в KickStart, JumpStart или старом RoboInstaller. Образ ядра miniroot обслуживается TFTP, а файловая система обслуживается NFS. Так же работали бездисковые клиенты UNIX в старые времена. Я почти уверен, что вы не сможете обслуживать целую файловую систему с помощью TFTP. Просто протокол так не спроектирован.
Существует ряд онлайн-документов, которые могут помочь вам в успешной настройке бездисковой системы:
https://www.xmodulo.com/diskless-boot-linux-machine.html
http://mirror.internode.on.net/pub/ldp/en/Diskless-root-NFS-HOWTO/Diskless-root-NFS-HOWTO.pdf