NFS-Root-Dateisystem

NFS-Root-Dateisystem

Ich versuche, ein Remote-Root- (und Boot-)NFS-Dateisystem richtig zum Laufen zu bringen, und stoße dabei an die Grenzen meines Wissens. Ich frage mich, ob mir jemand den richtigen Weg weisen kann.

Server

Sowohl TFTP als auch NFS werden von einem Linksys WRT 1900 ACS-Router bereitgestellt, auf dem OpenWRT 19.07 läuft. Dieses Gerät verfügt außerdem über eine externe SSD, die als Overlay-Root-Dateisystem verwendet wird.

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

Jeder Client hat eine Root-Systemdatei in diesem Verzeichnis (Ubuntu 21.04)

/nfs/exports/tftp/

und ein Bootverzeichnis unter

/tftp/tftpboot/

Und hier ist der Inhalt von /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)

Wenn ich das Präfix /overlay/upper/ nicht hinzufüge, kann ich das exportierte Verzeichnis nicht mounten.

Kunden

Clients führen einen erfolgreichen PXE-Boot durch und laden das Betriebssystem (Ubuntu 21.04), ich kann mich anmelden, SSH verwenden usw. Allerdings treten dabei Fehler während des Bootvorgangs auf oder wenn ich versuche, ein Apt-get-Upgrade durchzuführen.

Der erste Fehler, der beim Hochfahren angezeigt wird, ist dieser:

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

dann später sehe ich

[Failed] Failed to mount /boot

Nach der Anmeldung scheint /boot jedoch gemountet zu sein.

Hier ist die fstab von einem Client

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

(Entschuldigung für die Formatierung)

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

Wenn ich mir systemctl systemd-remount-fs.service anschaue, sehe ich diese Zeile

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

Kann mir jemand sagen, welche Option ich falsch verstehe?

Antwort1

Sehen Sie sich an, wie das in KickStart, JumpStart oder dem alten RoboInstaller funktioniert. Das Miniroot-Kernel-Image wird von TFTP und das Dateisystem von NFS bereitgestellt. So funktionierten früher auch diskless UNIX-Clients. Ich bin ziemlich sicher, dass Sie mit TFTP kein ganzes Dateisystem bereitstellen können. Dafür ist das Protokoll einfach nicht ausgelegt.

Es gibt zahlreiche Online-Dokumente, die Ihnen bei der erfolgreichen Konfiguration eines festplattenlosen Systems helfen können:

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

verwandte Informationen