Comment fonctionne l'option de montage _netdev dans / etc / fstab?


24

Je voudrais savoir quel est le mécanisme exact (implémentation) utilisé pour différer le montage jusqu'à ce que l'interface réseau soit en place lorsque l'on utilise l' _netdevoption dans /etc/fstab?
Modifie-t-il systemdce comportement?
De plus, qu'est-ce que l' delay_connectoption sshfs fournit ce _netdevqui ne fonctionne pas?

Depuis la mount page de manuel :

_netdev
Le système de fichiers réside sur un périphérique qui nécessite un accès réseau (utilisé pour empêcher le système de tenter de monter ces systèmes de fichiers jusqu'à ce que le réseau soit activé sur le système).

Depuis la sshfs page de manuel :

-o delay_connect
retarder la connexion au serveur

Réponses:


25

SysV Init

Le /etc/init.d/mountall.shscript init monte uniquement les systèmes de fichiers locaux:

mount -a -t nonfs,nfs4,smbfs,cifs,ncp,ncpfs,coda,ocfs2,gfs,gfs2,ceph -O no_netdev

D'autres systèmes de fichiers sont montés par des scripts d'initialisation séparés, comme par exemple /etc/init.d/mountnfs.sh, qui déclarent (via les en-têtes LSB) leur dépendance $network. Ainsi, ceux-ci sont planifiés plus tard, après la mise en place du réseau, alors qu'ils mountall.shpeuvent s'exécuter beaucoup plus tôt.

systemd

Les unités de montage locales sont tirées par local-fs.target, les unités distantes par remote-fs.target. systemd-fstab-generatorscanne /etc/fstab, génère des unités de montage et les attribue aux cibles ci-dessus en fonction de conditions similaires à celles ci-dessus.

delay_connect

Cette option signifie que sshfs n'initiera pas la connexion SSH au serveur distant au moment du montage, mais ne le fera que lors de la première opération du système de fichiers qui l'exige. Cela retarde le rapport d'erreurs, mais peut être une solution de contournement utile dans certains cas, par exemple si votre système init n'a pas suffisamment d'informations pour commander correctement l'opération de montage. "Le réseau" en cours "est un terme plutôt vague , et même si l'on peut ajouter des dépendances supplémentaires arbitraires pour monter des unités, cela n'aide pas si l'événement déclencheur ne fait pas partie de la transaction de démarrage (dans le langage systemd).


Donc, vous dites que ce _netdevn'est pas censé être un argument passé au processus qui effectue le montage (et qui est spécifique au type de montage comme ext4/btrfs/cifs/fuse) mais est destiné à être lu par d'autres processus / scripts qui, en fonction de cet indicateur, décident quand pendant le processus de démarrage, ces montages doivent être exécutés. Oui? Si c'est le cas, je soupçonne que c'est la raison pour laquelle cet argument commence par un soulignement afin de le différencier des autres arguments formels .
Piotr Dobrogost

Oui. Si vous passez l' _netdevoption à la mountcommande, elle sera visible dans /proc/mountsmais n'aura aucun autre effet.
Ferenc Wágner

Question bonus; est-ce documenté quelque part?
Piotr Dobrogost

1
Le manuel de montage contient: "OPTIONS DE MONTAGE INDÉPENDANT DU SYSTÈME DE FICHIERS - Certaines de ces options ne sont utiles que lorsqu'elles apparaissent dans le /etc/fstabfichier." Eh bien, _netdev(documenté un peu plus tard) en est un bel exemple.
Ferenc Wágner

2
L'option _netdev est ignorée par défaut dans mount (8). Les options sont utilisées uniquement par les scripts de démarrage. - bugzilla.redhat.com/show_bug.cgi?id=607309#c4
Piotr Dobrogost

18

De la man systemd.mountversion 231 de systemd:

Les unités de montage faisant référence aux systèmes de fichiers locaux et réseau se distinguent par leur spécification de type de système de fichiers. Dans certains cas, cela n'est pas suffisant (par exemple, les montages basés sur des périphériques de bloc réseau, tels que iSCSI), auquel cas _netdev peut être ajouté à la chaîne d'options de montage de l'unité, ce qui oblige systemd à considérer l'unité de montage comme un montage réseau.


Impressionnant! Aucune idée pourquoi cette réponse n'a pas encore été votée.
Valentin Bajrami

1

Upstart/Udev

Pour les systèmes upstartet / ou udevbasés, cela est légèrement différent.

Il semble udevqu'il essayera toujours de monter les systèmes de fichiers NFS et netfsconstitue un filet de sécurité en cas d'échec.

Corrigez-moi si j'ai tort, s'il-vous plait. de toute façon, cette réponse n'est pertinente que pour certains systèmes hérités récents (Ubuntu 14.04 LTS, RHEL6).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.