No se puede obtener una unidad de red CIFS para montar en el arranque

22

He agregado un recurso compartido en fstab para acceder a una unidad de red con todos mis archivos en ... fstab se ve así:

proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
//192.168.1.73/disk1 /media/disk1 cifs username=pi,password=raspberry,_netdev,uid=1000,gid=1000,iocharset=utf8, 0 0
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

Cuando ejecuto sudo mount -ala unidad de red se monta con éxito y puedo hacerlo cd /media/disk1, lo lsque me da correctamente una lista de todas las carpetas en dicha unidad de red.

Sin embargo, después de reiniciar el pi cuando llego cda esa ubicación y lsvolver a ejecutarlo , no hay nada allí. Tengo que ejecutar manualmente de sudo mount -anuevo, que luego monta la unidad.

He visto esto informado muchas veces en otros foros, y el consenso parece ser que los montajes en fstab están sucediendo demasiado pronto, antes de que se haya establecido la red. He tratado de implementar las cosas que entiendo, pero para ser honesto, muchas de ellas están muy por encima de mi cabeza. He agregado _netdeva la línea en fstab, he agregado rootdelay=10a /boot/cmdline.txt, he instalado networkmanager ... nada de esto ha ayudado.

Y entonces me vuelvo hacia ti, a punto de tirar el pi por la ventana, seguido por mí mismo. Cualquier ayuda, muy apreciada.

Luke Twomey
fuente

Respuestas:

9

Le sugiero que agregue el montaje a la raíz o al crontab de su usuario.

Dado que actualmente está usando sudo, el crontab raíz parece ser el más apropiado.

sudo crontab -e # para editar el crontab raíz

Agregue una entrada @reboot al crontab. Necesitas una línea como

@reboot (sleep 30; / bin / mount / media / disk1) &

Eso esperará 30 segundos antes de montar el disco.

joan
fuente
1
Disculpas por el tiempo necesario para llegar a esto, solo tuve la oportunidad de jugar con esto nuevamente. Estoy muy aliviado de decir que su solución funcionó perfectamente. Muchas gracias por su ayuda.
Luke Twomey
esto se monta con seguridad, pero ¿cómo desmontamos procedimentalmente en el apagado?
Ciasto piekarz
14

También tuve el mismo problema con respecto al montaje automático de una unidad de red en el arranque. Traté de agregar el mount -acomando /etc/rc.localdespués de editar el /etc/fstabpero fue en vano. La razón por la que no funciona es que la red no está lista antes de mount -aejecutarse.

Como otros han mencionado, el problema es que las unidades fstab se montan incluso antes de que la red esté activa. Para asegurarse de que la red esté lista durante el arranque, hay una opción Wait for Network at Booten raspi-config.

correr

sudo raspi-config

y establezca la Wait for Network at Bootopción Slow wait for network connection before completing booty reinicie. Por supuesto, el tiempo de arranque puede verse afectado, pero si eso no es crítico, se puede utilizar este método.

Después del reinicio, puede verificar que la unidad de red esté montada automáticamente: verificación rápida ls /media/DRIVE_NAMEodf

bzed
fuente
Esta es ciertamente la solución que funcionó para mí, con las últimas actualizaciones de rpi3 a partir de noviembre de 2016
ChrisAdmin
Prefiero usar la /etc/rc.local mount -asolución, pero no olvides dormir primero. Vea mi respuesta que acabo de publicar aquí: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples
4

Actualice las notas, ya que esto apareció en Google. Sufrí la misma serie de frustraciones al montar mi Airport Time Capsule. Estoy ejecutando Raspberry Pi 3B + en Rasbian Stretch lanzado el 14 de marzo de 2018 con GUI estándar.

Aquí está mi línea de código fstab:

//100.10.10.1/Data /mnt/timecapsule cifs username=********, password=******, vers=1.0, rw, uid=1000, iocharset=utf8, sec=ntlm 0 0

Algunos cambios parecen haber sucedido con el tiempo:

  1. Debe agregar la declaración "vers = 1.0"
  2. _netdev no hace nada en el sistema de archivos CFIS, solo funciona en el sistema de archivos NFS (como señala Gabriel Staples a continuación)
  3. "user =" y "pass =" ahora deberían ser "username =" y "password =" respectivamente
  4. Por último, ahora hay un cuadro de "Esperar a la red" que se puede marcar en la Utilidad de configuración de Raspberry Pi, que resolvió mi problema de montaje en el arranque.

¡Después de 2 días de luchas, el mío finalmente está montado y lo hace en el arranque!

Jacques Gerber
fuente
1

Otro truco para resolver este problema es agregar al final del archivo /etc/rc.localel comando:

mount -a

Después de reiniciar, puede verificar si todo está bien escribiendo el comando:

df -h

y verás algo como esto:

pi@raspberrypi ~ $ df -h
File system      Dim. Usati Dispon. Uso% Montato su
/dev/root        7,2G  6,3G    584M  92% /
devtmpfs         119M     0    119M   0% /dev
tmpfs             25M  412K     25M   2% /run
tmpfs            5,0M     0    5,0M   0% /run/lock
tmpfs             49M     0     49M   0% /run/shm
/dev/mmcblk0p1    56M   20M     37M  36% /boot
//192.168.1.1/ws 466G  452G     14G  98% /mnt/winshare  <----------
cristiano
fuente
0

La _netdevopción en /etc/fstabno parece hacer nada para las acciones cifs. Este recurso ( https://help.ubuntu.com/community/Fstab ) parece confirmar que cuando dice "_netdev - este es un dispositivo de red, móntelo después de abrir la red. Solo válido con fstype nfs ".

Prefiero usar el /etc/rc.localarchivo para arreglar esto, durmiendo y luego llamando mount -adentro de él, en lugar de usar crontabo la Wait for network at bootopción en raspi-config. Sin embargo, para que la /etc/rc.localsolución funcione, no olvide dormir, como se explica a continuación.

Lo que he hecho para solucionar este problema (en mi Pi3) es modificar /etc/rc.localpara dormir 20 segundos (llamando sleep 20) y luego llamar mount -a. De esta manera, aunque la red NO está conectada todavía cuando el sistema lee el archivo fstab por primera vez, por lo que el montaje falla, forzo al sistema a esperar 20 segundos aquí (dando tiempo a la red para conectarse) y luego lo obligo a llamar mount -anuevamente para montar todas las unidades en el fstabarchivo.

Así es /etc/rc.localcomo se ve mi archivo ahora:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
#GS notes: a *minimum* of sleep 10 is required for the mount below to work on the Pi 3; it failed with sleep 5, but worked with sleep 10, sleep 15, and sleep 30
sleep 20
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
  mount -a #GS: mount all drives in /etc/fstab
fi

exit 0

¡Hecho! ¡Ahora funciona perfectamente para mí!

Referencias

Gabriel Staples
fuente
0

En mi caso compré una Raspberry Pi 3 e instalé Raspbian Stretch , edité mi fstab con mi disposición favorita de unidades de red como esta:

//172.30.0.54/mnt/anim /mnt/share/Z cifs  username=frieza,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/V /mnt/share/V cifs  username=goku,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/M /mnt/share/M cifs  username=piccolo,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/O /mnt/share/O cifs  username=drbrief,password=meh,uid=1000,gid=1000,vers=2.0 0 0
//172.30.0.56/share/R /mnt/share/R cifs  username=vegeta,password=meh,uid=1000,gid=1000,vers=2.0 0 0

Entonces cada vez que usaba:

sudo mount -a

Cada unidad listada en fstab se montaría automáticamente, luego agregué esto a rc.local y varios otros lugares para poder disfrutar del contenido de estas unidades al inicio, en resumen, nada funcionó hasta que decidí agregar una línea a la raíz crontab como por:

sudo crontab -e

Elegí mi editor (nano en y caso) Luego agregué esta línea en la parte inferior

@reboot (sleep 20;/bin/mount -a)&

Todo funcionó bien en mi caso después de reiniciar. Espero que esto los ayude.

NOTA:

Si se encuentra con algún problema, siempre puede ejecutar:

service cron status

Y te dará una pista sobre lo que funcionó y lo que no

Xedret
fuente
0

Puede agregar los atributos _netdev y comment = systemd.automount en el fstab y todo funciona bien para mí al reiniciar. Solía ​​enfrentar el mismo problema al reiniciar.

\\network_shared_location\directory /your_mount_location/mount_directory cifs _netdev,username=<your_username>,password=<your_password>,workgroup=<YOUR_WORKGROUP>,users,auto,user_xattr,comment=systemd.automount 0 0
Pradeep Prakash
fuente
-1

Sé que esta es una pequeña respuesta tardía, pero tuve el mismo problema y tenía que ver con que la red no estaba activa cuando fstabse llamó. Probé el crontabprimero y funcionó bien, pero pensé que era un poco desordenado ...

Hay una gran publicación aquí que se ejecuta mediante el uso de un script init.dpara ejecutar el montaje como en el arranque ... está funcionando muy bien para mí ahora.

Bicklp
fuente
1
¿Puede editar su respuesta para proporcionar los detalles más destacados de su enlace, en caso de muerte futura del enlace ?
Greenonline