Montar automáticamente una carpeta remota en el arranque

1

Estoy tratando de montar una carpeta de Windows en mi máquina Ubuntu en el inicio. He intentado seguir esta página aquí , modificando / etc / fstab y anexándola sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user 0 0, pero falla; Al inicio, aparece un error que dice que el montaje falló, y puedo presionar S para saltar o M para recuperar manualmente.

También intenté seguir esta página aquí , agregando /usr/bin/sshfs -o idmap=user my_user@remote_host:/path/to/directory <local_mount_point>al archivo /etc/rc.local, pero esto tampoco ayuda; Ubuntu simplemente arranca normalmente sin montaje.

Tengo instalado Cygwin en mi máquina con Windows y puedo ejecutar todo sin problemas, como sshing sin contraseñas y montarlo manualmente. También he intentado ejecutar el archivo rc.local modificado $ /etc/rc.local, y funciona perfectamente, pero parece que no puedo montar la carpeta al inicio.

¿Alguien me puede ayudar?

EDITAR: por control remoto, quise decir que la carpeta que estoy tratando de montar desde mi máquina Windows (que tiene una IP pública), no está en la misma red. Estoy usando sshfs, no nfs.

Andrés
fuente
¿Podría verificar si la solución que funciona en mi sistema Arch, que acabo de agregar a mi respuesta inicial como una edición, también funciona para usted?
MariusMatutiae

Respuestas:

0

En mi máquina Ubuntu, modifiqué mi / etc / fstab agregando esta línea:

 //192.168.xx.yy/Public /mnt/PUBNAS nfs rw,_netdev,credentials=/home/myname/.smbcredentials 0 0

El archivo .smbcredentials es muy simple,

 username=myusername                                                                            
 password=mypassword

Editar:

Después de darme cuenta de que usas sshfs, probé la entrada / etc / fstab sugerida por la página wiki de Arch Linux . Para mí, esta entrada funcionó:

USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs  defaults,_netdev  0  0

Es importante que tenga acceso sin contraseña al servidor ( es decir , con clave criptográfica). Espero que esto compense mi error inicial.

Edición 2:

Si desea que la carpeta remota sea montada por usted, no por root, lo cual es una molestia, tendrá que cambiar la línea / etc / fstab a esto:

 USERNAME@HOSTNAME_OR_IP:/REMOTE/DIRECTORY  /LOCAL/MOUNTPOINT  fuse.sshfs _netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID_N,gid=USER_GID_N 0 0
MariusMatutiae
fuente
Está usando sshfs, no nfs. Relevante es justo _netdev.
semana
Absolutamente :) ¿Sabes si algún día la opción "_netdev" es utilizada por algún servicio para montar esa ruta una vez establecida la red?
semana
¿Sigue siendo relevante para mí, ya que estoy usando sshfs, no nfs? Además, mi máquina Windows es remota; No está en la misma red.
Andrew
Modifiqué mi / etc / fstab para incluir la línea como esta ahora: sshfs#my_user@remote_host:/path/to/directory <local_mount_point> fuse user,_netdev 0 0pero no funciona. Sin embargo, quiero resaltar que si uso el método gráfico y hago clic en el icono de montaje en mi panel izquierdo, funciona. Ahora puedo acceder a través de la terminal. Sin embargo, antes de usar el método gráfico, no podía acceder a través de la terminal.
Andrew
Además, ¿hay alguna manera de incluir la opción sshfs -o idmap=useren el /etc/fstabarchivo? Cuando muevo archivos de la carpeta local a la carpeta montada, recibo el mv: failed to preserve ownershipmensaje.
Andrew
0

Realmente miré más de cerca su escenario aquí, y me pregunto si se aseguró de agregar el bit de ejecución a ese archivo /etc/rc.local que creó originalmente (al final del artículo de howtoforge.com que siguió)

chmod +x /etc/rc.local

Ahora reiniciar.

jredd
fuente
Parece que el archivo ya es ejecutable, $ ls -l /etc/rc.local -rwxr-xr-x 1 root root 497 Oct 29 18:07 /etc/rc.local andrew@Andrew-Ubuntu:~$ sudo chmod +x /etc/rc.local andrew@Andrew-Ubuntu:~$ ls -l /etc/rc.local -rwxr-xr-x 1 root root 497 Oct 29 18:07 /etc/rc.local nada cambió cuando usé su comando, pero intentaré reiniciar ahora de todos modos y veré si ayuda.
Andrew
No ayuda
Andrew
0

¿Puedes verificar que rc.local se esté ejecutando en el arranque? Ponle algo:

echo 'prueba' >> /tmp/my.log

A continuación, vea si hay algún error de salida, agregue a su comando de montaje:

&> /tmp/my.log

Quizás cuando ejecuta manualmente el archivo, lo está ejecutando como un usuario diferente al que el núcleo lo está ejecutando. En ese caso, se escribiría un mensaje en STDERR, que normalmente vería en / var / log / messages a menos que lo redirija a otro lugar con la sintaxis anterior agregada al comando.

JoshRibs
fuente
Hice lo que me sugirió y, después de reiniciar, /tmp/my.logse crea el archivo , pero está vacío. testno está dentro del archivo, y ls -l /tmp/my.logme da -rw-r--r-- 1 root root 0 Oct 31 09:31 /tmp/my.log. Tampoco tengo nombre de archivo /var/log/messages.
Andrew
El usuario se está ejecutando, ya que puede no tener acceso a / tmp /, ¿puede chmod 777 una carpeta, tocar un archivo en él, chmod that 777 e intentar iniciar sesión en un archivo allí?
JoshRibs
Sí, rc.local se ejecuta en el arranque. De todos modos, he resuelto el problema. ¡Gracias!
Andrew