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