Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92222
  • 博文数量: 26
  • 博客积分: 1050
  • 博客等级: 少尉
  • 技术积分: 276
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-05 20:44
文章分类

全部博文(26)

文章存档

2010年(26)

我的朋友

分类: LINUX

2010-12-23 21:33:53

Linux: umount 时出现 "Device is busy" 的解法

当任何目录有 mount, 然后有程序使用/挂在那个目录上的话, 就没有办法 umount 掉, 於 umount 时会出现 Device is busy 的讯息.

要怎麼找出是哪个程序挂在那个目录上? 然后去把那个程式砍掉呢?

使用 fuser 的指令

那要怎麼找出是哪个程式挂在那个目录上?可以使用 fuser - identify processes using files or sockets

假设现在 mount 起来的目录是 /media/share

    * 查询: fuser -m /media/share
    * 显示: /media/share: 25023c

就代表是 process 25023(pid) 有使用到此目录, 后面 c 代表的意思可参考下述:

    * c: current directory.
    * e: executable being run.
    * f: open file. f is omitted in default display mode.
    * F: open file for writing. F is omitted in default display mode.
    * r: root directory.
    * m: mmap'ed file or shared library.

要把这个资源释放的话, 可以有下述做法:

    * kill -9 25023 # ps aux | grep 25023 应该就会看到它
    * fuser -m -v -i -k /media/share # 会问你是不是要把 25023 这个 kill 掉, 选 y 就会 kill 掉

          提示信息如下:
          USER      PID   ACCESS COMMAND
          /meida/share: root      25023 ..c..  bash
          Kill process 25023 ? (y/N) y

阅读(1418) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-26 17:30:01

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com