I have a CIFS share mounted on a Linux machine. The CIFS server is down, or the internet connection is down, and anything that touches the CIFS mount now takes several minutes to timeout, and is unkillable while you wait. I can't even run ls in my home directory because there is a symlink pointing inside the CIFS mount and ls tries to follow it to decide what color it should be. If I try to umount it (even with -fl), the umount process hangs just like ls does. Not even sudo kill -9 can kill it. How can I force the kernel to unmount?
11 Answers
I use lazy unmount: umount -l
(that's a lowercase L
)
Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)
![](../../users/profiles/7506.webp)
- 2,482
- 1
- 20
- 13
-
45This didn't work for me at first. After experimenting a while (in a new virtual terminal each time) I came up with this: ```sudo umount -a -t cifs -l```. Either this did the trick, or the first umount took a while (120s? 300s?) to complete. I got lots of warnings about umount being blocked for more than 120 seconds. – Peter Jaric Mar 12 '12 at 12:06
-
2And then I had to kill all the hanging umounts before I could mount again. – Peter Jaric Mar 12 '12 at 12:29
-
15
-
4This didn't work for me really. I tried everything else above and the cifs mount disappeared from my /etc/mtab listing but it cannot be remounted, so it's effectively useless. The cifs mount freezes when my computer suspends itself while the cifs share is mounted. – DH4 Sep 23 '12 at 18:43
-
I concur, umount -a -t cifs -l was what I needed too to get past the dreaded "Host is Down" thx. – Pooch Oct 06 '14 at 20:44
-
This is not working for me. I am able to unmount the share but when I try to remount it I get the following error: `mount error(12): Cannot allocate memory Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)`. Does anyone know what does this mean? – Natesh Raina Aug 25 '16 at 05:17
-
-
Don't forget to specify the type `-t cifs` or you'll unmount EVERYTHING (trust me). Ha. – moodboom Jan 20 '20 at 14:45
umount -a -t cifs -l
worked like a charm for me on CentOS 6.3. It saved me a server reboot.
-
8Would you mind to elaborate on what `-a` and `-l` switches are and how they are helping? – Isaac Dec 20 '14 at 09:28
-
10-a and -t cifs unmounts all cifs filesystems. it's better to specify the one you want to unmount – dwery Nov 20 '15 at 08:26
-
2This is perfect if you mounted via a file browser and you cannot locate the offending mount point - provided you don't mind it unmounting everything! – sage Dec 03 '15 at 17:49
-
1
On RHEL 6 this worked:
umount -f -a -t cifs -l
![](../../users/profiles/866057.webp)
- 755
- 6
- 14
-
This worked, has to wait a full 30 minutes (timeout) before I could remount. Probably best to do a soft mount as jnice indicates. – XMAN Sep 12 '18 at 22:53
This works for me (Ubuntu 13.10 Desktop to an Ubuntu 14.04 Server) :-
sudo umount -f /mnt/my_share
Mounted with
sudo mount -t cifs -o username=me,password=mine //192.168.0.111/serv_share /mnt/my_share
where serv_share is that set up and pointed to in the smb.conf file.
![](../../users/profiles/3258894.webp)
- 129
- 1
- 2
I had this issue for a day until I found the real resolution. Instead of trying to force unmount an smb share that is hung, mount the share with the "soft" option. If a process attempts to connect to the share that is not available it will stop trying after a certain amount of time.
soft Make the mount soft. Fail file system calls after a number of seconds.
mount -t smbfs -o soft //username@server/share /users/username/smb/share
stat /users/username/smb/share/file
stat: /users/username/smb/share/file: stat: Operation timed out
May not be a real answer to your question but it is a solution to the problem
-
20If you look at `man mount.cifs` you'll notice that `soft` is actually the default. – Benj May 01 '13 at 10:13
I had a very similar problem with davfs. In the man page of umount.davfs
, I found that the -f -l -n -r -v
options are ignored by umount.davfs
. To force-unmount my davfs mount, I had to use umount -i -f -l /media/davmount
.
![](../../users/profiles/1067124.webp)
- 4,344
- 4
- 26
- 40
Try umount -f /mnt/share. Works OK with NFS, never tried with cifs.
Also, take a look at autofs, it will mount the share only when accessed, and will unmount it afterworlds.
There is a good tutorial at www.howtoforge.net
![](../../users/profiles/8220.webp)
- 20,782
- 5
- 75
- 102
umount -f -t cifs -l /mnt &
Be careful of &
, let umount
run in background.
umount
will detach filesystem first, so you will find nothing abount /mnt
. If you run df
command, then it will umount /mnt
forcibly.
![](../../users/profiles/2902057.webp)
- 918
- 1
- 19
- 41
![](../../users/profiles/4518793.webp)
- 11
- 2
There's a -f option to umount that you can try:
umount -f /mnt/fileshare
Are you specifying the '-t cifs' option to mount? Also make sure you're not specifying the 'hard' option to mount.
You may also want to consider fusesmb, since the filesystem will be running in userspace you can kill it just like any other process.
![](../../users/profiles/4558.webp)
- 7,078
- 3
- 26
- 27
-
4
-
have you rebooted since adding the '-t cifs' option to mount? I don't think there's anything you can do to fix your stuck mount point right now, your only hope is to try and mount it in a way that's more resistant to failure in the future. – Chris AtLee Sep 16 '08 at 19:33
A lazy unmount will do the job for you.
umount -l <mount path>
![](../../users/profiles/6876037.webp)
- 750
- 2
- 10
- 23
![](../../users/profiles/4797231.webp)
- 1
- 2