To see what processes lock your cdrom drive, you can use the "fuser" command (from psmisc package) or "lsof" (from lsof package).
Supposing your cdrom is /dev/hdc, you can try these commands:
$ fuser /dev/hdc
# lsof /dev/hdc
Then you can kill the misbehaving process(es) and unmount your cdrom drive with the "eject" command. If unmounting the cdrom with "eject" doesn't seem to work, you can set the "setuid to root" bit for "eject" by running as root "chmod 4755 /usr/bin/eject".
More info here:
http://www.crazysquirrel.com/computi...nmounting.jspx