mount、umount、fuser命令使用小结
问题:Linux下共享Window文件夹
mount -t cifs -o username=administrator,password=xxxxx //192.168.11.17/Data/ /mnt/databak/之后想卸载挂载目录,使用umount /mnt/databak卸载挂载点时,会遇到“device is busy”提示,这时fuser就能查出谁在使用这个资源;当然umount –lf [挂载点] 也可以强制卸载。
解决:使用fuser -m -v /mnt/databak/看哪个用户,哪个进程占用此设备,再用fuser -m -v-k /mnt/databak/杀掉该进程
一、mount命令
1.功能:文件挂载
2.格式:mount [-参数] [设备名称] [挂载点]
3.常用选项:
-a :安装在/etc/fstab文件中类出的所有文件系统。
-f :伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。
-n :不把安装记录在/etc/mtab 文件中。
-r :”将文件系统安装为只读。
-v :详细显示安装信息。
-w:将文件系统安装为可写,为命令默认情况。
-t <文件系统类型> :指定设备的文件系统类型,常见的有:
ext2 是linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT/2000/XP的文件系统
auto 自动检测文件系统
-o <选项> :指定挂载文件系统时的选项,有些也可写到在 /etc/fstab 中。常用的有:
defaults 使用所有选项的默认值(auto、nouser、rw、suid)
auto/noauto 允许/不允许以 –a选项进行安装
dev/nodev 对/不对文件系统上的特殊设备进行解释
exec/noexec 允许/不允许执行二进制代码
suid/nosuid 确认/不确认suid和sgid位
user/nouser 允许/不允许一般用户挂载
codepage=XXX 代码页
iocharset=XXX 字符集
ro 以只读方式挂载
rw 以读写方式挂载
remount 重新安装已经安装了的文件系统
loop 挂载“回旋设备”以及“ISO镜像文件”
二、umount命令
1.功能:
来自: http://man.linuxde.net/umount
来自: http://man.linuxde.net/umount
来自: http://man.linuxde.net/umount
来自: http://man.linuxde.net/umount
2.格式:
umount (选项) (参数)3.常用选项
来自: http://man.linuxde.net/umount
-h:显示帮助
-n:卸载时不要将信息存入/etc/mtab系统中
-r:如果无法卸载,则尝试以只读的方式重新挂入文件系统
-t<文件系统类型>:仅卸除选项中所指定的文件系统
-v:执行时显示详细的信息
-V:显示版本号
三、fuser命令
1.功能:fuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。
2.常用选项:
-c :和-m一样,用于POSIX兼容。
-k :杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。结合 –signal
-signal: 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。
-l :列出所有已知的信号名称。
-i :杀掉进程之前询问用户,如果没有-k这个选项会被忽略。
-m name: 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。
-n space :指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口,可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。
-s :静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。
-u :在每个PID后面添加进程拥有者的用户名称。
-v :详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.
3.使用示例:
1)运行下面命令看一下哪个用户哪个进程占用着此设备
fuser -m -v /mnt/databak/
2)运行下面命令杀掉占用此设备的进程
fuser -m -v -k /mnt/databak/
或者fuser -m -v -k -i /mnt/databak/(每杀掉一下进程会让你确认)
3)执行umount就可以正常卸载了
更多推荐
所有评论(0)