Error with CIFS on shutdown in Linux
by Justin Garrison • 2009/01/19 • How-to, Linux, Linux Mint, Ubuntu • 2 Comments
I kept getting this error with Linux Mint and my NAS. When I shutdown I got an error saying:
CIFS VFS server not responding
and the system would hang before shutting down and sometimes not shutdown at all. Of course with so many people using Linux the problem was only a Google search away.
I found that the problem is because Linux Mint would turn off the network connection before it would unmount the mounted volumes I had. It does this for security reasons because if you have system folders or home folders mapped to network shares it needs to have those system folders until it is done shutting down. Of course you would still run into problems when the network connection is killed but I don’t program so I am sure there are other reasons why it is done this way.
Anyway, a good solution is to have the drives unmounted earlier in the shutdown process. To do this we are going to make symbolic links to the script that unmount the volumes for us and then just put that in the folder that is processed earlier during shutdown and reboot. I found bits and pieces on how to do this in the Ubuntu forums but I found a good blog with all this info in one place here.
The code you need to run to make the symbolic links is here.
ln -s /etc/init.d/umountnfs.sh /etc/rc0.d/K15umountnfs.sh
ln -s /etc/init.d/umountnfs.sh /etc/rc6.d/K15umountnfs.sh
Here is a quick explanation of what this does from the other blog I found.
This will create two symbolic links to the umountnfs.sh script, one in runlevel 0 (shutdown) and one in runlevel 6 (reboot). The links have a “K” prefix to let the init system know that the script should be called with “stop” as an argument, and they have a priority of 15 to ensure that they are run before avahi-daemon and dhcdbd are stopped
OK that fix didn’t work. I finally found a solution that really works. Do this in a terminal instead.
You will see two files S31umountnfs.sh and S15wpa-ifupdown.sh. The number still represents the order at which the script runs. All you need to do is change when the umountnfs.sh script runs. Do that by typing in:
sudo mv S31umountnfs.sh S14umountnfs.sh
You will need to run the command one more time in the /etc/rc0.d folder too.
Now my shutdown doesn’t hang anymore on unmounting the CIFS mounts.
I hope this helps.
Man, I don’t know what I would do with rc-update. Gentoo just makes it so easy! And when services are on the same run level, it refers to directives in the init script to see which order to take them on and off-line.
Gentoo may make a lot of things hard, but as far as package management, and run levels, I’ve never found something that does it better.
err… That should have been without in that first sentence = )