¿Cómo funciona la opción de montaje _netdev en / etc / fstab?


24

Me gustaría saber cuál es el mecanismo exacto (implementación) utilizado para diferir el montaje hasta que la interfaz de red esté activa cuando se usa la _netdevopción /etc/fstab.
¿ systemdAltera este comportamiento?
Además, ¿qué ofrece la delay_connectopción a sshfs y qué _netdevno?

Desde la mount página del manual :

_netdev
El sistema de archivos reside en un dispositivo que requiere acceso a la red (utilizado para evitar que el sistema intente montar estos sistemas de archivos hasta que la red se haya habilitado en el sistema).

Desde la sshfs página del manual :

-o delay_connect
retrasar la conexión al servidor

Respuestas:


25

SysV Init

El /etc/init.d/mountall.shscript de inicio solo monta sistemas de archivos locales

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

Otros sistemas de archivos están montados por scripts de inicio separados, como por ejemplo /etc/init.d/mountnfs.sh, que declaran (a través de encabezados LSB) su dependencia $network. Por lo tanto, estos se programan más tarde, una vez que se abre la red, mientras que mountall.shpueden ejecutarse mucho antes.

systemd

Las unidades de montaje locales son arrastradas por las local-fs.targetremotas remote-fs.target. systemd-fstab-generatorescanea /etc/fstab, genera unidades de montaje y las asigna a los objetivos anteriores en función de condiciones similares a las anteriores.

delay_connect

Esta opción significa que sshfs no iniciará la conexión SSH al servidor remoto en el momento del montaje, sino que solo lo hará en la primera operación del sistema de archivos que realmente lo requiera. Esto retrasa el informe de errores, pero podría ser una solución útil en algunos casos, por ejemplo, si su sistema init no tiene suficiente información para ordenar la operación de montaje correctamente. "La red" estar "activa" es un término bastante laxo , y aunque se pueden agregar dependencias adicionales arbitrarias para montar unidades que no ayudan si el evento desencadenante no es parte de la transacción de arranque (en el lenguaje systemd).


Entonces, está diciendo que _netdevno está destinado a ser un argumento pasado al proceso que realiza el montaje (y que es específico para el tipo de montaje ext4/btrfs/cifs/fuse), sino que está destinado a ser leído por otros procesos / scripts que, en función de este indicador, deciden cuándo durante el proceso de arranque, estos montajes deben ejecutarse. ¿Sí? Si es así, sospecho que esta es la razón por la cual este argumento comienza con un guión bajo para diferenciarlo de otros argumentos formales .
Piotr Dobrogost

Sí. Si pasa la _netdevopción al mountcomando, será visible /proc/mountspero no tendrá otro efecto.
Ferenc Wágner

Pregunta extra; ¿Está esto documentado en alguna parte?
Piotr Dobrogost

1
El manual de montaje contiene: "OPCIONES DE MONTAJE INDEPENDIENTES DEL SISTEMA DE ARCHIVO: algunas de estas opciones solo son útiles cuando aparecen en el /etc/fstabarchivo". Bueno, _netdev(documentado un poco más tarde) es un buen ejemplo para esto.
Ferenc Wágner

2
La opción _netdev se ignora en el montaje (8) de forma predeterminada. Las opciones solo las usan los initscripts. - bugzilla.redhat.com/show_bug.cgi?id=607309#c4
Piotr Dobrogost

18

Desde la man systemd.mountversión 231 de systemd:

Las unidades de montaje que se refieren a sistemas de archivos locales y de red se distinguen por su especificación de tipo de sistema de archivos. En algunos casos, esto no es suficiente (por ejemplo, montajes basados ​​en dispositivos de bloques de red, como iSCSI), en cuyo caso _netdev puede agregarse a la cadena de opciones de montaje de la unidad, lo que obliga a systemd a considerar la unidad de montaje como un montaje de red.


Impresionante! No tengo idea de por qué esta respuesta aún no ha sido votada.
Valentin Bajrami

1

Upstart/Udev

Para upstarty / o udevsistemas basados ​​esto es ligeramente diferente.

Parece udevque todavía intentará montar los sistemas de archivos NFS y netfses una red de seguridad para cuando eso falla.

Por favor corrígeme si estoy equivocado. De cualquier manera, esta respuesta solo es relevante para algunos sistemas heredados recientes (Ubuntu 14.04 LTS, RHEL6).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.