Корневая файловая система NFS

Корневая файловая система NFS

Я пытаюсь заставить работать удаленную корневую (и загрузочную) файловую систему 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://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/managing_storage_devices/setting-up-a-remote-diskless-system_managing-storage-devices

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

Связанный контент