web-dev-qa-db-fra.com

Echec du montage depuis rc.local comment le faire correctement?

Voici mon /etc/rc.local actuel:

#!/bin/sh -e

# Test 1
echo line1 > /home/myHome/rclog.txt

# the mount
mount /mnt/mediaDrive &> /home/myHome/mountlog.txt

# Test 2
echo line2 >> /home/myHome/rclog.txt

exit 0

Le /mnt/mediaDrive est un noauto dans fstab. C'est un partage réseau, d'où le montage dans rc.local.

Le montage dans le script ci-dessus ne fonctionne pas au démarrage. Après le démarrage, le fichier rclog.txt contient à la fois line1 et line2, et le fichier mountlog.txt est vide. Cela indiquerait que toutes les commandes du script ont été exécutées avec succès. Toutefois, le lecteur n'est pas monté.

Lancer manuellement Sudo /etc/rc.local dans un terminal fait monter le partage réseau.

Je ne vois rien de pertinent dans /var/syslog et les autorisations pour rc.local sont de 755. L'entrée correspondante fstab:

//192.168.1.100/home  /mnt/mediaDrive  cifs  noauto,credentials=/home/myHome/.mediaCredentials,uid=myName,gid=myGroup  0  0

Que se passe t-il ici?

2
Rody Oldenhuis

Le problème doit être qu’au démarrage, votre réseau n’est pas encore disponible et c’est la raison pour laquelle il monte après boot. Vous devez utiliser un autre mécanisme pour monter le périphérique, comme upstart. Exemple d'utilisation de upstart:

# mount CIFS share

start on (local-filesystems and net-device-up IFACE!=lo)
stop on runlevel [!2345]

pre-start script /bin/mount /mnt/mediaDrive
pre-stop script /bin/umount /mnt/mediaDrive

Vous pouvez le modifier pour répondre à vos besoins. Le nom du fichier doit se terminer par .conf et être enregistré dans le répertoire /etc/init.

3
Braiam

Il suffit d’ajouter un "sommeil 5" au-dessus de votre commande réseau dans le fichier rc.local.

J'ai eu le problème de monter l'accès cifs sur ma framboise avec osmc, avec ce 5s le réseau est en place et le montage est OK

1
user597723

Comme l'a noté Braiam, au moment où rc.local est exécuté, aucun réseau n'est disponible pour une raison quelconque.

C'est la raison initiale pour laquelle je suis passé à l'approche noauto + rc.local. Donc, bien que je ne sois pas tout à fait sûr de savoir pourquoi, cette approche est défectueuse.

Dans mon cas, un simple _netdev (au lieu de noauto) dans /etc/fstab a fait l'affaire.

Notez que dans mon cas, j'avais plusieurs dizaines de montages de liaison vers des emplacements sur le lecteur réseau. Chacune de ces montages de liaison nécessite également une option _netdev dans /etc/fstab, à côté de l'option bind.

1
Rody Oldenhuis

Ajouter noauto,x-systemd.automount à ma ligne fstab est finalement ce qui a fonctionné pour moi. J'ai aussi une ligne mount /media/share dans mon rc.local, mais je ne suis pas sûr que ce soit important ou redondant.

_netdev dans /etc/fstab ne fonctionnait pas pour moi (avec ou sans commande de montage dans rc.local)

0
Clint Robinstein