解决方法:

1,比较简单的,重启一下就可以了。

2在释放该设备之前,让我们找出谁在使用它。

 # fuser /media/cdrom 

 进程正在运行,无法弹出磁盘其实是我们的错误。

 现在,如果您是根用户,可以随意终止进程:

 # fuser -k /media/cdrom 

 lsof列出当前正在被打开的文件

 

,lsof有什么用?

  lsof可以找出被特定进程所打开的文件,目录,套接字,设备.

   例子:比如有时我们不能umount掉一个分区时,我们会需要检查,是哪些进程在使用当前的分区

       以便找出进程后将它关闭

   一个与脚本相关的例子:

       我们使用ftp接收别人上传的文件,有程序被放到crond中定时进行处理,

       此时就有一个问题;我们如何得知当前被处理的文件是否上传完了,

       比如:如果上传的是一张图片,且正在传输中我们就进行了处理,则我们会得到一张残缺不全的图片

       解决方法:用lsof对文件进行检查,如果有进程在访问,就表示还未上传完成,可以先跳过当前文件

       

二,lsof的用法举例

1,检查目录和文件

    [root@localhost cdrom]# umount /mnt/cdrom

       umount: /mnt/cdrom: device is busy.

       (In some cases useful info about processes that use

        the device is found by lsof(8) or fuser(1))

    在做umount设备时, device isbusy是令人头痛的提示

    大家看,我使用的是fedora 10,umount会自动给出让大家用lsoffuser进行检测的信息

    [root@localhost cdrom]# lsof /mnt/cdrom

    COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME