Wie funktioniert die Option _netdev mount in / etc / fstab?
24
Ich möchte wissen, was genau der Mechanismus (Implementierung) ist, der verwendet wird, um das Mounten aufzuschieben, bis die Netzwerkschnittstelle aktiv ist, wenn die _netdevOption in verwendet wird /etc/fstab.
Ändert sich systemddieses Verhalten?
Was bietet die delay_connectOption zu sshfs, was _netdevnicht?
_netdev
Das Dateisystem befindet sich auf einem Gerät, das Netzwerkzugriff erfordert (um zu verhindern, dass das System versucht, diese Dateisysteme bereitzustellen, bis das Netzwerk auf dem System aktiviert wurde).
Das /etc/init.d/mountall.shInit-Skript stellt nur lokale Dateisysteme bereit:
mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev
Andere Dateisysteme werden von separaten Init-Skripten wie zum Beispiel gemountet /etc/init.d/mountnfs.sh, die (über LSB-Header) ihre Abhängigkeit von deklarieren $network. Somit werden diese später geplant, nachdem das Netzwerk gestartet wurde, und mountall.shkönnen viel früher ausgeführt werden.
systemd
Lokale Mount-Einheiten werden von gezogen local-fs.target, entfernte von remote-fs.target. systemd-fstab-generatorscannt /etc/fstab, generiert Mount-Einheiten und ordnet diese den oben genannten Zielen zu, basierend auf Bedingungen, die den oben genannten ähnlich sind.
delay_connect
Diese Option bedeutet, dass sshfs die SSH-Verbindung zum Remote-Server nicht zur Mount-Zeit initiiert, sondern nur bei der ersten Dateisystemoperation, die sie tatsächlich erfordert. Dies verzögert die Fehlerberichterstattung, kann jedoch in einigen Fällen eine nützliche Problemumgehung sein, z. B. wenn Ihr Init-System nicht über genügend Informationen verfügt, um den Ladevorgang korrekt anzuordnen. "Das Netzwerk ist" in Betrieb "ist ein ziemlich loser Begriff , und obwohl man willkürliche zusätzliche Abhängigkeiten hinzufügen kann , um Einheiten zu mounten, hilft das nicht, wenn das Auslöseereignis nicht Teil der Boot-Transaktion ist (in der Systemsprache).
Sie sagen also, dass _netdevdies kein Argument sein soll, das an den Prozess übergeben wird, der das Laden durchführt (und der spezifisch für den Typ des Ladevorgangs ist ext4/btrfs/cifs/fuse), sondern von anderen Prozessen / Skripten gelesen werden soll, die basierend auf diesem Flag entscheiden, wann Während des Bootvorgangs sollten diese Mounts ausgeführt werden. Ja? Wenn ja, dann vermute ich, dass dies der Grund ist, warum dieses Argument mit einem Unterstrich beginnt, um es von anderen formalen Argumenten zu unterscheiden.
Piotr Dobrogost
Ja. Wenn Sie die _netdevOption an den mountBefehl übergeben, wird sie in angezeigt /proc/mounts, hat jedoch keine weiteren Auswirkungen.
Ferenc Wágner
Bonus-Frage; Ist das irgendwo dokumentiert?
Piotr Dobrogost
1
Das Mount- Handbuch enthält: "FILESYSTEM-UNABHÄNGIGE MOUNT-OPTIONEN - Einige dieser Optionen sind nur nützlich, wenn sie in der /etc/fstabDatei enthalten sind." Nun, _netdev(etwas später dokumentiert) ist ein gutes Beispiel dafür.
Mount-Einheiten, die sich auf lokale Dateisysteme und Netzwerkdateisysteme beziehen, unterscheiden sich durch ihre Dateisystemtypspezifikation. In einigen Fällen ist dies nicht ausreichend (z. B. auf Netzwerkblockgeräten basierende Bereitstellungen, wie z. B. iSCSI). In diesem Fall kann _netdev zur Bereitstellungsoptionszeichenfolge der Einheit hinzugefügt werden, wodurch systemd gezwungen wird , die Bereitstellungseinheit als Netzwerkbereitstellung zu betrachten.
Ehrfürchtig! Keine Ahnung, warum diese Antwort noch nicht bewertet wurde.
Valentin Bajrami
1
Upstart/Udev
Bei upstartund / oder udevbasierten Systemen ist dies etwas anders.
Es scheint udevimmer noch zu versuchen, die NFS-Dateisysteme zu mounten, und es netfsist ein Sicherheitsnetz, wenn dies fehlschlägt.
Bitte korrigieren Sie mich, falls ich falsch liege. In beiden Fällen ist diese Antwort nur für einige neuere Legacy-Systeme relevant (Ubuntu 14.04 LTS, RHEL6).
_netdev
dies kein Argument sein soll, das an den Prozess übergeben wird, der das Laden durchführt (und der spezifisch für den Typ des Ladevorgangs istext4/btrfs/cifs/fuse
), sondern von anderen Prozessen / Skripten gelesen werden soll, die basierend auf diesem Flag entscheiden, wann Während des Bootvorgangs sollten diese Mounts ausgeführt werden. Ja? Wenn ja, dann vermute ich, dass dies der Grund ist, warum dieses Argument mit einem Unterstrich beginnt, um es von anderen formalen Argumenten zu unterscheiden._netdev
Option an denmount
Befehl übergeben, wird sie in angezeigt/proc/mounts
, hat jedoch keine weiteren Auswirkungen./etc/fstab
Datei enthalten sind." Nun,_netdev
(etwas später dokumentiert) ist ein gutes Beispiel dafür.Ab
man systemd.mount
Version 231 von systemd:quelle
Upstart/Udev
Bei
upstart
und / oderudev
basierten Systemen ist dies etwas anders.Es scheint
udev
immer noch zu versuchen, die NFS-Dateisysteme zu mounten, und esnetfs
ist ein Sicherheitsnetz, wenn dies fehlschlägt.Bitte korrigieren Sie mich, falls ich falsch liege. In beiden Fällen ist diese Antwort nur für einige neuere Legacy-Systeme relevant (Ubuntu 14.04 LTS, RHEL6).
quelle