Unmounting the unresponsive CD/DVD/Floppy drive

The newbie states that when he pushes the Eject button on the DVD drive of a server running a certain Redmond-based operating system, it will eject immediately. He then complains that, in most enterprise Linux servers, if a process is running in that directory, then the ejection won't happen.

For too long as a Linux administrator, I would reboot the machine and get my disk on the bounce if I couldn't figure out what was running and why it wouldn't release the DVD drive. But this is ineffective. Here's how you find the process that holds your DVD drive and eject it to your heart's content:

First, simulate it. Stick a disk in your DVD drive, open up a terminal, and mount the DVD drive:

mount /media/cdrom
cd /media/cdrom
while [ 1 ];  do echo "All your drives are belong to us!";  sleep 30; done

Now open up a second terminal and try to eject the DVD drive:

eject

You'll get a message like:

umount: /media/cdrom: device is busy

Before you free it, let's find out who is using it.

fuser /media/cdrom

You see the process was running and, indeed, it is our fault we can not eject the disk. Now, if you are root, you can exercise your godlike powers and kill processes:

fuser -k /media/cdrom

Boom! Just like that, freedom. Now solemnly unmount the drive:

eject

fuser is good.

I have just found one case where fuser will not be of any help. If the directory is a mount point the system will refuse to allow any modifications to it but fuser will not report any process as the culprit so keep that in mind. - 17 May 2010.

Source: 10 Essentials Tricks for admin

Your thoughts

No comments

Add comment

* - required field

*




*