Как вынуть диск из CD-ROM при ошибке "device is busy" в Linux

При чтении CD и DVD дисков в Linux устройство чтения замыкается и не отдает диск при нажатии кнопки выброса диска на лицевой панели. Отмонтировать и выбросить диск программно не получится если какой-нибудь процесс открыл файл на диске. При невозможности вынуть диск привычными методами из за ошибки "device is busy", главное не бить по клавиатуре, не пинать компьютер и не делать "Куищще", а выяснить какой процесс держит диск командой lsof /media/cdrom, снять его командой под рутом killall имя_процесса, отмонтировать и вытащить диск как обычно.

Блог: RU Linux

Менее злостно: просто сделать lsof | grep /dev/cdrom и посмотреть, кто держит привод. Разобраться с теми задачами можно и без killall...

Не всегда получается по-доброму. При автоматическом монтировании диска с помощью Konqueror в KDE 3.3 у меня даже после закрытия Konqueror иногда остаются запущенные им Bash и еще какие-то процессы без окон от KDE, которые либо висят, либо сами выгружаются через некоторое (до полминуты) время. А как с ними разобраться? Может что-то настроено неправильно, но killall это лечит :)

Каждый раз когда такое происходит при моей девушке, она говорит всякие неприятные вещи про Linux и восхваляет Windows :) Из за множества таких вот архитектурных мелочей, ставящих безопасность важнее удобства пользования, подвинуть Windows на десктопах будет непросто.

Проверено на Debian. 1. Если видимые глазу приложения не "держат" привод, то можно попробовать дать команду "eject /dev/устройство". Выполнять из-под root. На 90% случаев помогает. 2. Отключать блокирование лотка самого привода следующим образом: "echo "0" > /proc/sys/dev/cdrom/lock". Сию команду лучше забить в какой-либо стартовый скрипт.

О! Класс! Обязательно попробую 2. Интересно, Linux также будет светить синим экраном?...

Вы знаете, времена вылетания ядра в "kernel panic" при не отмонтированном, но физически извлеченном носителе давно прошли. Для исключения необходимости ручного монтирования/отмонтирования предлагаю обратить взор в сторону udev/autofs. После правильной настройки - никаких "device is bisy".

Меня в принципе устраивает монтирование вручную, так даже удобнее. Не всегда надо раскручивать забытый в устройстве диск. Ручное отмонтирование особенно удобно при работе с флэшками и флоппиками. Лишь бы отмонтировалось нормально. Я думаю это проблема KDE 3.3 и Konqueror. Вчера дискету, примонтированную Konqueror, не смог нормально из него отмонтировать по той же причине "device is busy". Может потому, что у меня в нем открыта панелька с терминалом... Точно! Кажется она не всегда меняет текущий путь при клике мышью в дереве и продолжает держать устройство. Вот откуда Bash в списке процессов. Седня вечером попробую.

P.S. Ваш сайт лежит :)

Не. Не то. В моем случае диск держит famd (File Alteration Monitor). Запускается он при первом монтировании диска и не выгружается сам, если его килл, то он больше не появляется и все нормально работает. Я famd не настраивал, он себя так по дефолту ведет в моем Debian.

Это древняя и живучая бага, по слухам исправленная в KDE 3.4.