1 votes

Partages CIFS montés automatiquement à l'arrêt

Utilisation d'Ubuntu J'ai récemment rencontré un problème avec l'arrêt de l'ordinateur - il se bloque à chaque fois que je l'arrête, que ce soit à partir de l'interface graphique ou de la ligne de commande avec sudo shutdown -hP now

~$ uname -a
Linux mythbuntu 3.0.0-17-generic #30-Ubuntu SMP x86_64 x86_64 GNU/Linux

J'ai une poignée d'entrées cifs dans mon /etc/fstab qui sont réglées sur auto afin qu'elles se montent au démarrage.

~$ cat /etc/fstab | grep cifs
//remoteserver/stuff    /mnt/remoteserver/stuff cifs ro,username=myuser,password=mypass,nobootwait,auto 0 0
//remoteserver/public   /mnt/remoteserver/public cifs rw,username=myuser,user,suid,noatime,nobootwait,auto 0 0

J'ai ajouté nobootwait mais cela ne semble pas faire de différence (conseil sur un autre forum).

Lorsque je change automobile para noauto le système ne se bloque pas, mais je veux que ces montages soient tentés au démarrage.

J'ai parcouru l'internet à la recherche d'informations sur les solutions, et il y a beaucoup de suggestions, mais aucune réponse concrète. Les messages que je vois à l'arrêt semblent suggérer que le service unattended-upgrades essaie d'utiliser mountall après que le service réseau se soit déjà arrêté, et qu'il ne parvient pas à monter les partages réseau. Le dernier élément de sortie mentionne le démarrage puis l'arrêt presque immédiat d'un serveur web apache2 pour une raison quelconque. J'ai également vu cette erreur à l'arrêt umount //proc/fs/nfsd: device is busy Il n'y a pas de montages nfs dans mon fstab.

Est-ce que j'essaie d'utiliser CIFS de manière incorrecte ? Y a-t-il une meilleure façon de monter des partages sur le réseau qui ne souffre pas de ce problème ? (C'est pour une configuration de type media center, donc tout devrait être automatique)

4voto

russ Points 108

Sur la base de uSlackr J'ai modifié la réponse de mount_shares_locally script (ci-dessous)

  • J'ai créé ce fichier en tant que /etc/init.d/mount_shares_locally
  • Dans ce cas chmod 755 /etc/init.d/mount_shares_locally pour le rendre exécutable
  • J'ai créé un répertoire sudo mkdir /var/lock/subsys/
  • J'ai ajouté noauto à chacune de mes options de partage cifs, pour éviter qu'elles ne soient automatiquement montées lors d'un mountall
  • S'assurer que sudo service mount_shares_locally restart n'a pas commis d'erreur
  • Enfin, il a été ajouté aux niveaux d'exécution du démarrage et de l'arrêt avec sudo update-rc.d mount_shares_locally defaults

#!/bin/sh
#
### BEGIN INIT INFO
# Provides:          mount_shares_locally
# Required-Start:    $network $local_fs $remote_fs smb mysqld
# Required-Stop:     $network $local_fs $remote_fs smb
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: mount Samba shares locally
### END INIT INFO

if [ -f /etc/rc.d/init.d/functions ]; then  # "/lib/lsb/init-functions" on Ubuntu
    . /etc/rc.d/init.d/functions
fi

start () {  
    echo -n "Mounting Samba shares locally:\n"

    cat /etc/fstab | grep 'cifs.*\(password\|credentials\)' | while read -r remoteServer localMount type options;
    do
        echo Mounting $remoteServer to $localMount
        mount $localMount
    done

    touch /var/lock/subsys/mount_shares_locally
    echo
    return 0
}

stop () {
    echo -n "Unmounting locally mounted Samba shares:\n"

    cat /etc/fstab | grep 'cifs.*\(password\|credentials\)' | while read -r remoteServer localMount type options;
    do
        echo Unmounting $localMount
        umount $localMount
    done

    rm -f /var/lock/subsys/mount_shares_locally

    echo
    return 0
}

restart () {
    stop
    start
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit $?

J'ai également dû ajouter un autre script au modèle upstart, afin que mount_shares_locally soit appelé au bon moment pendant le démarrage (après que le réseau soit en place) :

/etc/init/mount_shares_locally.conf

# mount_shares_locally - Mount any cifs shares in /etc/fstab when network comes online
#

description "Mount CIFS shares"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on (runlevel [!12345] or net-device-down IFACE=eth0)

respawn
console none

pre-start script
    mkdir -p -m0755 /var/run/mount_shares_locally
    exec /etc/init.d/mount_shares_locally start
end script

post-stop script
    mkdir -p -m0755 /var/run/mount_shares_locally
    exec /etc/init.d/mount_shares_locally stop
end script

2voto

micahg Points 1612

Vous pourriez créer un "service" qui les démapperait lors de l'arrêt. J'utilise un script sur mon serveur Fedora/Amahi pour faire cela. Il faudra l'adapter à Ubuntu, mais la théorie fonctionne.

Plus d'informations ici : http://wiki.amahi.org/index.php/Mount_Shares_Locally

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X