Sistema de archivos raíz NFS

Sistema de archivos raíz NFS

Estoy intentando que un sistema de archivos NFS de raíz (y arranque) remoto funcione correctamente y estoy alcanzando los límites de mis conocimientos. Me pregunto si alguien puede indicarme la dirección correcta.

Servidor

Tanto TFTP como NFS se sirven desde un enrutador Linksys WRT 1900 ACS que ejecuta OpenWRT 19.07. Este dispositivo también tiene un SSD externo que se utiliza como sistema de archivos raíz superpuesto.

https://openwrt.org/docs/guide-user/additional-software/extroot_configuration.

Cada cliente tiene un archivo de sistema raíz en este directorio (Ubuntu 21.04)

/nfs/exports/tftp/

y un directorio de inicio en

/tftp/tftpboot/

Y aquí está el contenido de /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)

Si no agrego el prefijo /overlay/upper/ entonces no puedo montar el directorio exportado

Clientela

Los clientes arrancan con éxito PXE y cargan el sistema operativo (Ubuntu 21.04), puedo iniciar sesión, SSH, etc. Sin embargo, esto no deja de ver errores durante el arranque o si intento realizar una actualización de apt-get.

El primer error que veo durante el arranque es este:

[Failed] Failed to start Remount Root and Kernel File System

luego luego veo

[Failed] Failed to mount /boot

sin embargo, una vez iniciado sesión, /boot parece estar montado.

Aquí está el fstab de un cliente.

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

(perdón por el formato)

Y /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

Cuando miro systemctl systemd-remount-fs.service veo esta línea

May 27 15:10:08 rdg-clust-01 systemd-remount-fs[317]: mount.nfs: an incorrect mount option was specified

¿Alguien puede señalar en qué opción me estoy equivocando?

Respuesta1

Mire cómo funciona esto en KickStart, JumpStart o el antiguo RoboInstaller. La imagen del kernel miniroot la proporciona TFTP y el sistema de archivos lo proporciona NFS. Así es como funcionaban antiguamente los clientes UNIX sin disco. Estoy bastante seguro de que no se puede servir un sistema de archivos completo con TFTP. Simplemente no es así como está diseñado el protocolo.

Hay una serie de documentos en línea que pueden ayudarle a configurar correctamente un sistema sin disco:

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

información relacionada