JAVA、PHP、前端、APP、网站开发 - 开发技术学习

开发技术学习 » 服务器 » 解决Red Hat系统umount: device is busy的问题

解决Red Hat系统umount: device is busy的问题

此文被围观2677日期: 2013-01-14 分类 : 服务器  标签:  ·······

解决Red Hat系统umount: device is busy的问题

在Red Hat/CentOS系统中,要解除某个设备的挂载,经常会弹出 device is busy 的提示,这是因为系统中还有程序或用户在访问着设备上的文件,如果冒然强制卸载,可能会导致数据丢失和设备损坏,“Device is busy” 是一种保护措施。
[root@localhost ~]# df -h               //查看现有挂载情况
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       19G  2.4G   15G  14% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/hdc              2.9G  2.9G     0 100% /mnt/cdrom
[root@localhost ~]# umount /mnt/cdrom    //解除挂载
umount: /mnt/cdrom: device is busy       //提示设备忙
umount: /mnt/cdrom: device is busy
解决办法:
[root@localhost ~]# fuser -mv /mnt/cdrom

                     USER        PID ACCESS COMMAND
/mnt/cdrom:          zhang3     5110 ..c.. bash
fuser (find user processes) 程序可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,这里我们看到,原来是一个叫zhang3的用户还在这个目录里,这里还给出了 进程号。知道了进程号,我们就可以调用kill命令来杀死该进程了。 -m 参数表示该文件系统对应的设备 -v 参数输出详细信息(Verbose) 如果你懒得看哪些程序正在使用这个设备,可以直接调用fuser -km /mnt/cdrom杀死所有正在访问该目录的进程,然后再umount就OK了。
[root@localhost ~]# fuser -km /mnt/cdrom      //显示正在使用当前目录的进程,并直接kill
/mnt/cdrom:           4370c
[root@localhost ~]# umount /mnt/cdrom          //解除挂载成功
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       19G  2.4G   15G  14% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm
除了fuser,也可以使用lsof程序来查看正在使用该文件系统的的进程
localhost ~]# lsof /mnt/cdrom
COMMAND  PID   USER   FD   TYPE DEVICE   SIZE NODE NAME
bash    5110 zhang3  cwd    DIR   22,0 413696 2560 /mnt/cdrom/Server
lsof (list open files) 命令列出特定的文件系统、目录或设备上所有打开的文件以及与它们相关联的进程。在大多数 UNIX 和类 UNIX 系统上都可以使用 lsof 命令。

站点声明:部分内容源自互联网,为传播信息之用,如有侵权,请联系我们删除。

© Copyright 2011-2024 www.kfju.com. All Rights Reserved.
超级字帖 版权所有。蜀ICP备12031064号