Impossible d'obtenir un lecteur réseau CIFS à monter au démarrage

22

J'ai ajouté un partage dans fstab pour accéder à un lecteur réseau avec tous mes fichiers sur ... fstab ressemble à:

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

Quand je lance sudo mount -ales supports de lecteur réseau avec succès et je peux faire cd /media/disk1alors lsque correctement me donne une liste de tous les dossiers sur ledit lecteur réseau.

Cependant, après avoir redémarré le pi lorsque je me suis rendu cdà cet endroit et que j'ai exécuté de lsnouveau, rien n'y est. Je dois réexécuter manuellement sudo mount -a, qui monte ensuite le lecteur.

J'ai vu cela plusieurs fois sur d'autres forums, et le consensus semble être que les montages dans fstab se produisent trop tôt - avant que le réseau ne soit établi. J'ai essayé de mettre en œuvre les choses que je comprends - mais pour être honnête, beaucoup de choses sont bien au-dessus de ma tête. J'ai ajouté _netdevà la ligne dans fstab, j'ai ajouté rootdelay=10dans /boot/cmdline.txt, j'ai installé networkmanager ... rien de tout cela n'a aidé.

Et donc je me tourne vers vous, prêt à jeter le pi par la fenêtre - suivi par moi-même. Toute aide, très appréciée.

Luke Twomey
la source

Réponses:

9

Je vous suggère d'ajouter le montage à la racine ou à votre crontab utilisateur.

Étant donné que vous utilisez actuellement sudo, la racine crontab semble être la plus appropriée.

sudo crontab -e # pour éditer la racine crontab

Ajoutez une entrée @reboot à la crontab. Vous avez besoin d'une ligne telle que

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

Cela attendra 30 secondes avant de monter le disque.

joan
la source
1
Toutes mes excuses pour le temps nécessaire pour en arriver là, je viens juste d'avoir à nouveau l'occasion de jouer avec. Je suis très soulagé de dire que votre solution a parfaitement fonctionné. Merci beaucoup pour votre aide.
Luke Twomey
cela monte à coup sûr, mais comment démonter procéduralement à l'arrêt?
Ciasto piekarz
14

J'ai également eu le même problème concernant le montage automatique d'un lecteur réseau au démarrage. J'ai essayé d'ajouter la mount -acommande /etc/rc.localaprès avoir édité le /etc/fstabmais en vain. La raison pour laquelle cela ne fonctionne pas est que le réseau n'est pas prêt avant l' mount -aexécution.

Comme d'autres l'ont mentionné, le problème est que les lecteurs fstab sont montés avant même que le réseau ne soit opérationnel. Afin d'être sûr que le réseau est prêt pendant le démarrage, il y a une option Wait for Network at Bootdansraspi-config .

courir

sudo raspi-config

et définissez l' Wait for Network at Bootoption surSlow wait for network connection before completing boot et redémarrez. Bien sûr, le temps de démarrage peut être affecté, mais si ce n'est pas critique, cette méthode peut être utilisée.

Après le redémarrage, vous pouvez vérifier que le lecteur réseau est monté automatiquement: vérification rapide via ls /media/DRIVE_NAMEoudf

bzed
la source
C'est certainement le correctif qui a fonctionné pour moi, avec les dernières mises à jour de
rpi3 en
Je préfère utiliser la /etc/rc.local mount -asolution, mais n'oubliez pas de dormir d'abord. Voir ma réponse que je viens de publier ici: raspberrypi.stackexchange.com/a/63690/49091
Gabriel Staples
4

Mettez à jour les notes, voyant que cela est arrivé sur Google. J'ai subi la même série de frustrations en montant ma capsule temporelle d'aéroport. J'utilise Raspberry Pi 3B + sur Rasbian Stretch sorti le 14 mars 2018 avec une interface graphique standard.

Voici ma ligne de code fstab:

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

Quelques changements semblent s'être produits au fil du temps:

  1. Vous devez ajouter l'instruction "vers = 1.0"
  2. _netdev ne fait rien sur le système de fichiers CFIS, ne fonctionne que sur le système de fichiers NFS (comme indiqué par Gabriel Staples ci-dessous)
  3. "user =" et "pass =" devraient maintenant être respectivement "username =" et "password ="
  4. Enfin, il y a maintenant une case "Attendre le réseau" qui peut être cochée dans l'utilitaire de configuration Raspberry Pi, qui a résolu mon problème de montage au démarrage.

Après 2 jours de combats, le mien est enfin monté et le fait au démarrage!

Jacques Gerber
la source
1

Une autre astuce pour résoudre ce problème consiste à ajouter en bas de fichier /etc/rc.localla commande:

mount -a

Après le redémarrage, vous pouvez vérifier si tout va bien en tapant la commande:

df -h

et vous verrez quelque chose comme ça:

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  <----------
Christian
la source
0

L' _netdevoption dans /etc/fstabne semble rien faire du tout pour les actions cifs. Cette ressource ( https://help.ubuntu.com/community/Fstab ) semble confirmer que lorsqu'elle dit "_netdev - il s'agit d'un périphérique réseau, montez-le après avoir lancé le réseau. Uniquement valide avec fstype nfs ".

Je préfère utiliser le /etc/rc.localfichier pour résoudre ce problème, en dormant puis en appelant à l' mount -aintérieur, plutôt que d'utiliser crontabou l' Wait for network at bootoption dans raspi-config. Cependant, pour que le /etc/rc.localcorrectif fonctionne, n'oubliez pas de dormir, comme expliqué ci-dessous.

Ce que j'ai fait pour résoudre ce problème (sur mon Pi3) est de modifier /etc/rc.localpour dormir 20 secondes (en appelant sleep 20) puis d'appeler mount -a. De cette façon, même si le réseau est encore connecté lorsque le système lit d' abord le fichier fstab, de sorte que le montage échoue alors, je force le système à attendre 20 secondes ici ( ce qui donne le temps de réseau pour se connecter) alors je force pour appeler à mount -anouveau pour monter tous les disques dans lefstab fichier.

Voici à quoi /etc/rc.localressemble maintenant mon fichier:

#!/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

Terminé! Cela fonctionne maintenant parfaitement pour moi!

Les références:

Gabriel Staples
la source
0

Dans mon cas, j'ai acheté un Raspberry Pi 3 et installé Raspbian Stretch , j'ai édité mon fstab avec mon arrangement préféré de lecteurs réseau comme celui-ci:

//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

Donc, chaque fois que j'utilisais:

sudo mount -a

Chaque lecteur répertorié dans fstab se monterait automatiquement, puis je l'ai ajouté à rc.local et à plusieurs autres endroits pour que je puisse profiter du contenu de ces lecteurs au démarrage, bref, rien n'a fonctionné jusqu'à ce que je décide d'ajouter une ligne à la racine crontab comme par:

sudo crontab -e

J'ai choisi mon éditeur (nano in y case) Puis j'ai ajouté cette ligne en bas

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

Tout a bien fonctionné dans mon cas après le redémarrage. J'espère que cela vous aide.

REMARQUE:

Si vous rencontrez des problèmes, vous pouvez toujours exécuter:

service cron status

Et cela vous donnera un indice sur ce qui a fonctionné et ce qui n'a pas fonctionné

Xedret
la source
0

Vous pouvez ajouter les attributs _netdev et comment = systemd.automount dans le fstab et tout fonctionne bien pour moi lors du redémarrage. J'avais l'habitude de faire face au même problème au redémarrage.

\\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
la source
-1

Je sais que c'est une réponse un peu tardive, mais j'ai eu le même problème et cela était dû au fait que le réseau n'était pas activé lors de l' fstabappel. J'ai essayé lecrontab premier et ça a bien fonctionné mais la pensée était un peu désordonnée ...

Il y a un excellent article ici qui passe par l'utilisation d'un script init.dpour exécuter le montage comme au démarrage ... cela fonctionne très bien pour moi maintenant.

Bicklp
la source
1
Pouvez-vous modifier votre réponse pour fournir les détails saillants de votre lien, en cas de décès futur du lien .
Greenonline