Реинкарнация блога
Апр 04

DVD Drive iconВ комментариях к одной из старых статей мне был задан вопрос: как отключить оптический привод в системе, если вдруг он стал вести себя странно. Первое, что приходит в голову: разобрать компьютер и отключить дисковод. Но потом, когда дисковод потребуется, нужно будет снова разбирать компьютер, а это не всегда удобно. Поэтому отключать дисковод будем программно. В этой небольшой инструкции я расскажу, как заставить систему думать, что у неё нет никакого оптического привода.

Самый простой способ программно отключить CD/DVD–ROM в системе — это сделать так, чтобы система вообще не знала, что в мире бывают такие устройства и разучилась с ними работать. В Mac OS X за работу с оптическими устройствами (и не только с ними) отвечают несколько KEXT–файлов, или так называемых программных бандлов (bundle), — специальных загружаемых программных модулей, позволяющих ядру системы работать с различными устройствами (проще говоря, — драйвера).

Теперь для начала эксперимента запустите DIsc Utility (это можно сделать, например, вызвав Spotlight и набрав там "Дисковая утилита"). В открывшемся окне посмотрите на список устройств — там есть DVD-ROM.

Дисковая утилита, DVD-ROM

Кроме того, при запуске программы вы услышите характерное жужжание привода: система опрашивает устройство, чтобы вывести вам информацию о нём.

Закройте дисковую утилиту и запустите терминал.
Выполните в терминале последовательно команды, перечисленные в списке ниже:

sudo kextunload -b com.apple.iokit.IOSCSIMultimediaCommandsDevice
sudo kextunload -b com.apple.iokit.IOBDStorageFamily
sudo kextunload -b com.apple.iokit.IODVDStorageFamily
sudo kextunload -b com.apple.iokit.IOCDStorageFamily

Для выполнения этих команд вам потребуется ввести административный пароль.

Важное замечание

Если вы попытаетесь сделать это при запущеном приложении, так или иначе использующем привод (например, оставите Disc Utility перед выполнением команд открытым) — вы получите от системы уведомления об ошибках. Что–то вроде такого:

Rodion-Baskakov:~ home$ sudo kextunload -b com.apple.iokit.IOSCSIMultimediaCommandsDevice
(kernel) Can't unload kext com.apple.iokit.IOSCSIMultimediaCommandsDevice; classes have instances:
(kernel) Kext com.apple.iokit.IOSCSIMultimediaCommandsDevice class SCSIMultimediaCommands has 1 instance.
(kernel) Kext com.apple.iokit.IOSCSIMultimediaCommandsDevice class IOSCSIMultimediaCommandsDevice has 1 instance.
(kernel) Kext com.apple.iokit.IOSCSIMultimediaCommandsDevice class IOSCSIPeripheralDeviceType05 has 1 instance.
(kernel) Kext com.apple.iokit.IOSCSIMultimediaCommandsDevice class IODVDServices has 1 instance.
Failed to unload com.apple.iokit.IOSCSIMultimediaCommandsDevice - (libkern/kext) kext is in use or retained (cannot unload).

Ничего страшного, в общем–то, не произойдёт, но лучше, когда ошибок нет. Поэтому постарайтесь не использовать диск во время его отключения.

Теперь система не знает, что такое оптический привод и игнорирует неизвестное ей устройство, поскольку модуля, умеющего с ним обращаться в системе больше нет. Чтобы проверить это, снова запустите Дисковую Утилиту (Disc Utility) и убедитесь, что из списка устройств DVD–ROM исчез.

Disc Utility, No DVD-ROM

По правде говоря, из списка он пропадёт уже после первой команды, но для верности выполните все.

Когда вам снова потребуется работа с приводом, выполните в Терминале следующие команды, которые загрузят в систему необходимые модули:

sudo kextload -b com.apple.iokit.IOCDStorageFamily
sudo kextload -b com.apple.iokit.IODVDStorageFamily
sudo kextload -b com.apple.iokit.IOBDStorageFamily
sudo kextload -b com.apple.iokit.IOSCSIMultimediaCommandsDevice

Теперь диск снова доступен.

Если у вас старая система

Вполне может оказаться так, что на вашей системе приведённые команды не сработают. В этом случае попробуйте другие:

sudo kextunload IOSCSIArchitectureModelFamily.kext/Contents/PlugIns/IOSCSIMultimediaCommandsDevice.kext
sudo kextunload IOBDStorageFamily.kext
sudo kextunload IODVDStorageFamily.kext
sudo kextunload IOCDStorageFamily.kext

и

sudo kextload IOCDStorageFamily.kext
sudo kextload IODVDStorageFamily.kext
sudo kextload IOBDStorageFamily.kext
sudo kextload IOSCSIArchitectureModelFamily.kext/Contents/PlugIns/IOSCSIMultimediaCommandsDevice.kext

Теперь можете сохранить эти команды в CLIX или сделать себе небольшой консольный скрипт, который будет при запуске выполнять необходимый вам набор команд для того, чтобы отключить CD/DVD–ROM от Mac OS X или наоборот, включить его.

Если этот блог нравится Вам настолько, что Вы хотели бы перечислить его автору денег, просто сделайте это, нажав на кнопку Donate:

Спасибо в любом случае. :)

Связанные записи

метки: , , , , , , ,

оценка:
НеинтересноИнтересно - рейтинг: +12, голосов: 12

Комментарии к статье “Как отключить CD/DVD-ROM в Mac OS X”

  1. Андрей

    Здравствуйте.

    Спасибо за Ваши наблюдения и конспекты – очень познавательно и полезно!
    Искал ответ на свой вопрос, но не нашёл.
    Вопрос.
    На macbook pro (2010) изъят dvd (по причине редкого использования и помещён в выносной корпус, что успешно функционирует). Вместо dvd установлен второй hdd с помощью специального адаптера-переходника (брал на ebay). Всё работает замечательно, но смущает один момент: при логичном желании неиспользуемому в определённое время hdd делаю eject – диск пропадает с рабочего стола, затихает его мотор, но через секунд 20 мотор запускается, но сам диск не маунтится. Не могу программно его отключить и так же программно включить когда это требуется. Будьте любезны подскажите что делать – жаль диск крутить вхолостую и доп. шумок от него не столь приятен. Предполагал, что данная в этой теме комманда поможет, но не сработало. Возможно её нужно правильно подкорректировать, заточить “под hdd” ? Cпасибо.

  2. Андрей

    ps: Проблемы в маунте hdd нет – всё работает и маунтится при желании с помощью полезной утилиты MountnuoM. Хочу просто сказать системе в определённое время “этот диск не используется, питание отключено” и наоборот – “диск используется, питание подключено”. Как быть? Вопрос, полагаю, актуален не только для меня одного. Спасибо.

  3. Антон

    Для меня также актуально, но к сожалению пока правильного ответа нема (

  4. akuba

    жаль ты перестал писать – очень полезные вещи

  5. михаил

    У меня следующая проблема – при запуске компьютера, он три раза с диким скрежетом, прям завыванием, прокручивает dvd-rom. если проделать операцию с отключением в терминале, дисковая утилита его не видит, но, стоит перезагрузить комп, он так же завывает и опять его видит. При этом не принимает диски, просто невозможно их туда впихнуть. помогите разобраться, macbook pro7,1 13″ mac os 10.6.8. заранее спасибо

Написать отзыв

Подписаться именем или OpenID