Как отключить CD/DVD-ROM в Mac OS X

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 или наоборот, включить его.

Adblock
detector