Page 1 sur 1

[Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : sam. 24 oct. 2009, 14:09
par Francky
Bonjour,

J'ai un souci pour me connecter à un répertoire sur mon NAS.
J'ai fait un montage CIFS dans le fstab qui fonctionne même si j'ai l'erreur "mount: le point de montage 0 n'existe pas"
quand je fais mount -a.

Le soucis au démarrage ce montage ne se fait pas et j'ai droit à l'erreur "network is unreachable".

Est ce dans les services de rc.conf qu'il y a des choses dans le désordre?
Comment résoudre ce soucis?
Merci pour votre aide.

Re: [Réseau+fstab] Accéder à un répertoire distant.

Publié : sam. 24 oct. 2009, 14:20
par tuxce
salut, tu parles de fstab, de réseau, de rc.conf, tu ne montres ni le fstab, ni le rc.conf et encore moins comment tu démarres le réseau, faut le faire quand même!

Attends, essai de réponse:tout est en ordre dans le système, c'est un problème matériel, tu dois changer d'ordi, voire même de cable réseau (au cas où ça serait du wifi, :s/cable réseau/point d'accès/)

Re: [Réseau+fstab] Accéder à un répertoire distant.

Publié : sam. 24 oct. 2009, 23:41
par Francky
Désolé pour ce message. En effet il manque le plus important.
Pour moi il était très tard dns la nuit et ce matin je me rends compte que je n'avais plus les yeux en face des trous.

Pour commencer voici donc mon fstab:

Code : Tout sélectionner

/dev/sdb1 swap swap defaults 0 0
/dev/sdb2 / reiserfs defaults 0 1
/dev/sdb3 /home ext4 defaults 0 1

/dev/sda1 /media/SYSTEME ntfs-3g defaults,locale=fr_FR.utf8 0 0
/dev/sda5 /media/DONNEES ntfs-3g defaults,locale=fr_FR.utf8 0 0
//192.168.0.20/Volume_1 /media/dns-323/ cifs uid=francky,gid=1000,file_mode=0640,dir_mode=0750,iocharset=utf8,pass=monpass 0 0
ainsi que mon rc.conf

Code : Tout sélectionner

DAEMONS=(syslog-ng @network netfs hal networkmanager @alsa @acpid @crond gdm)
J'aimerais que cela fonctionne avec le cable réseau comme en wifi. Je n'ai testé qu'avec le câble pour le moment

Merci pour votre aide

Re: [Réseau+fstab] Accéder à un répertoire distant.

Publié : sam. 24 oct. 2009, 23:50
par tuxce
network et networkmanger, ça fait doublon...
avec le 2ème, tu ne peux pas le monter au démarrage, networkmanager ne se connecte qu'une fois la session ouverte (à vérifier, c'était le cas, ça a peut être été modifié).
le '@' démarre en arrière plan, donc n'attend pas la fin.

Re: [Réseau+fstab] Accéder à un répertoire distant.

Publié : dim. 25 oct. 2009, 12:30
par Francky
En effet j'avais mis un @ à network car sinon en mode wifi, il reste pendant un moment à essayer de trouver le réseau.
Donc cela marche avec le câble mais pas le wifi car j'ai networkmanager.
Dans le wiki je viens de voir que pour wicd le wifi était activé beaucoup plus tôt.
Je vais donc l'essayer.

Du coup dans mes démons si je met wicd est ce que je peux enlever network afin de ne pas faire doublon?
Merci de ton aide.

Ps: bon j'ai eu ma réponse dans le post concernant wicd de cassyb.

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : jeu. 17 déc. 2009, 00:38
par DShad
As-tu réussi à monter ton NAS?

J'ai EXACTEMENT le même problème que toi. Ca m'indique NETWORK UNREACHABLE, sauf que ca fonctionne avec un:

sudo mount -a

Si tu trouves la solution, reviens-moi stp.

P.S. En passant, j'ai enlevé NETWORK et NETWORKMANAGER pour y laisser que WICD et ca fonctionne bien.

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : dim. 31 janv. 2010, 13:42
par tuxshake
J'ai eu un problème similaire sur une autre distribution,
On dirait que fstab essaie de monter le partage trop vite, alors que la connexion réseau n'est pas encore établie.

Comme c'était un server, l'astuce consistait a rajouter "mount -a" dans /etc/rc.local
Pour obliger le système à remonter fstab automatiquement à la fin de la séquence de démarrage.

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : ven. 11 mai 2012, 11:24
par Tetsumaki
Salut, j'avais le même soucis et le problème vient du fait que le daemon network se lance trop vite alors qu'en réalité l'interface réseau n'est pas bien monté (surtout le cas avec serveur dhcp).

J'ai trouvé 2 solutions :
Solution 1 : La plus dégueulasse qui consiste a crée un daemon bootsleep qui va faire un sleep entre 2 daemons dans rc.conf
Solution 2 : Modifier le fichier /etc/rc.d/network afin d'ajouter un sleep de 5 secondes (ou plus, ou moins...), en cas d'update du paquet initscripts il faut penser à refaire la modification.

Solution 1 déconseillé :
Exemple avant :

Code : Tout sélectionner

DAEMONS=(syslog-ng dbus network netfs crond alsa)
Exemple après :

Code : Tout sélectionner

DAEMONS=(syslog-ng dbus network bootsleep netfs crond alsa)
Le fichier /etc/rc.d/bootsleep
Pensez à le rendre exécutable avec chmod +x bootsleep

Code : Tout sélectionner

#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

SLEEPTIME="5"
NAME="BootSleep"
DESC="$NAME : Wait $SLEEPTIME secondes"
DAEMON_NAME="bootsleep"

case "$1" in
	start)
		stat_busy "Starting $DESC"
		sleep $SLEEPTIME
		stat_done
		add_daemon $DAEMON_NAME
		;;
	stop)
		stat_busy "Stopping $DESC"
		sleep $SLEEPTIME
		stat_done
		rm_daemon $DAEMON_NAME
		;;
	restart)
		$0 stop
		$0 start
		;;
	*)
		echo "usage: $0 {start|stop|restart}"
esac
Solution 2 conseillé :
Modifier le fichier /etc/rc.d/network afin d'ajouter un sleep 5 (ou plus, ou moins...) à la fin de l’exécution du start (entre add_daemon network et stat_done).
En cas d'update du paquet initscripts il faut penser à refaire la modification.

Avant :

Code : Tout sélectionner

	start)
		# deprecation check
		need_legacy && deprecated
		if ! ck_daemon network; then
			echo "Network is already running.  Try 'network restart'"
			exit
		fi
		stat_busy "Starting Network"
		error=0
		if need_legacy; then
			# bring up bridge interfaces
			bridge_up
			# bring up ethernet interfaces
			for ifline in ${INTERFACES[@]}; do
				if [[ $ifline = ${ifline#!} ]]; then
					ifup $ifline || error=1
				fi
			done
			# bring up bond interfaces
			bond_up
			# bring up routes
			for rtline in "${ROUTES[@]}"; do
				if [ "$rtline" = "${rtline#!}" ]; then
					rtup $rtline || error=1
				fi
			done
		else
			network_up
		fi
		if (( ! error )); then
			add_daemon network
			stat_done
		else
			stat_fail
		fi
		;;
Après :

Code : Tout sélectionner

	start)
		# deprecation check
		need_legacy && deprecated
		if ! ck_daemon network; then
			echo "Network is already running.  Try 'network restart'"
			exit
		fi
		stat_busy "Starting Network"
		error=0
		if need_legacy; then
			# bring up bridge interfaces
			bridge_up
			# bring up ethernet interfaces
			for ifline in ${INTERFACES[@]}; do
				if [[ $ifline = ${ifline#!} ]]; then
					ifup $ifline || error=1
				fi
			done
			# bring up bond interfaces
			bond_up
			# bring up routes
			for rtline in "${ROUTES[@]}"; do
				if [ "$rtline" = "${rtline#!}" ]; then
					rtup $rtline || error=1
				fi
			done
		else
			network_up
		fi
		if (( ! error )); then
			add_daemon network
			sleep 5
			stat_done
		else
			stat_fail
		fi
		;;
En espérant que ça puisse servir aux passants :)
Bye.

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : ven. 11 mai 2012, 11:33
par benjarobin
@Tetsumaki Solution 3 (vraiment propre), ajouter un un script appelé par dhcpcd lorsque il à pu trouver une IPv4
Sinon l'origine de ton problème n'est pas là où tu le penses ! dhcpcd obtient une adresse IPv6 et donc "fork to background" avant d'avoir pu valider que l'adresse IPv4 est OK, et ce delai est d'environ 4-5 secondes

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : ven. 11 mai 2012, 11:57
par Tetsumaki
@benjarobin : quel script, peux-tu décrire la procédure ? je pense qu'il s'agit du fichier /etc/dhcpcd.conf mais que faut t'il ajouter ?
Merci d'avance :)

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : ven. 11 mai 2012, 14:31
par benjarobin
Regarde le man et ceci /usr/lib/dhcpcd/dhcpcd-run-hooks
Pour une procédure complète, je pense même faire un paquet, laisse moi le Week-end :-)

Re: [Réseau+fstab] Accéder à un répertoire distant.(résolu)

Publié : sam. 12 mai 2012, 15:49
par benjarobin
Voici le code :D Il suffit de créer ce fichier cat /usr/lib/dhcpcd/dhcpcd-hooks/90-run-daemon

Code : Tout sélectionner

start_network_daemons()
{
        . /etc/rc.conf
        . /etc/rc.d/functions

        # Start daemons
        for daemon in "${NETWORK_DAEMONS[@]}"; do
                case ${daemon:0:1} in
                        '!') continue;;     # Skip this daemon.
                        '@') ck_daemon "${daemon#@}" && start_daemon_bkgd "${daemon#@}" &>>/var/log/network_daemons.log ;;
                        *)   ck_daemon "$daemon"     && start_daemon      "$daemon"     &>>/var/log/network_daemons.log ;;
                esac
        done
}

if $if_up ; then
        case "$reason" in
                BOUND|INFORM|REBIND|REBOOT|RENEW|STATIC) ( start_network_daemons & ) &>/dev/null
        esac
fi
Puis il te suffit de rajouter à la fin de ton rc.conf ceci

Code : Tout sélectionner

NETWORK_DAEMONS=(netfs)
Il faut par contre bien penser à enlever netfs de DAEMONS