воскресенье, 16 декабря 2012 г.

Настройка HDD в optibay MacBook Pro

  После установки SSD в MacBook Pro 13" mid 2012, ноутбук стал абсолютно бесшумным. MacBook'ом без HDD я пользовался пару недель, затем приехал заказанный на ebay optibay (переходник при помощи которого можно поставить hdd или 2-ой ssd вместо ненужного оптического привода).
  В установке нет ничего сложного, полно инструкций, например, у ifixit. Первый запуск, и я понимаю, что не смогу больше работать при постоянном шуме винчестера :) Сперва я руками через дисковую утилиту отключал/подключал HDD, но решение мягко говоря "так себе". Тут я приметил незадействованную(после изъятия оптического привода) кнопку eject. Было решено повесить на нее отключение/подключение HDD в оптибэй.
  Итак, сперва настроим некоторые параметры HDD, т.к. со значениями по-умолчанию HDD только через 10 минут уходит в сон, даже после отключения.
  1. Устанавливаем время, через которое засыпает винчестер. Идем в терминал и набираем комманду:

sudo pmset -a disksleep ЗНАЧЕНИЕ

где ЗНАЧЕНИЕ - время в минутах, через которое засыпает диск. Я поставил 1 минуту(забегу вперед, диск засыпает в итоге быстрее, пару секунд). Значение по-умолчанию 10 минут.
  2. Настраиваем такой параметр HDD, как APM. Качаем утилиту HDAPM
Пробуем настроить APM. Сперва нужно узнать номер диска, который стоит в optibay.
Набираем в терминале:

diskutil list

В итоге получаем что-то похожее на это:
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *256.1 GB   disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            255.0 GB   disk0s2
   3:                 Apple_Boot Recovery HD             850.8 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk1
   1:                        EFI                         209.7 MB   disk1s1
   2:                  Apple_HFS Macintosh HDOLD         199.4 GB   disk1s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk1s3
   4:                  Apple_HFS Data                    549.8 GB   disk1s4

По размеру можно понять, что HDD - это disk1. Убедиться можно командой:

diskutil info /dev/disk1

Результат:
  Device Identifier:        disk1
  Device Node:              /dev/disk1
  Part of Whole:            disk1
  Device / Media Name:      WDC WD7500BPKT-75PK4T0 Media
  Volume Name:              Not applicable (no file system)
  Mounted:                  Not applicable (no file system)
  File System:              None
  Content (IOContent):      GUID_partition_scheme
  OS Can Be Installed:      No
  Media Type:               Generic
  Protocol:                 SATA
  SMART Status:             Verified
  Total Size:               750.2 GB (750156374016 Bytes) (exactly 1465149168 512-Byte-Blocks)
  Volume Free Space:        Not applicable (no file system)
  Device Block Size:        512 Bytes
  Read-Only Media:          No
  Read-Only Volume:         Not applicable (no file system)
  Ejectable:                No
  Whole:                    Yes
  Internal:                 Yes
  Solid State:              No
  OS 9 Drivers:             No
  Low Level Format:         Not supported

Пробуем настроить APM:

sudo hdapm disk1 ЗНАЧЕНИЕ от 1 до 254

Я себе поставил:

sudo hdapm disk 1

Далее настраиваем  автозагрузку hdapm:
  • идем в Finder, переходим в /Library/LaunchDaemons 
  • копируем файл hdapm.plist на рабочий стол
  • открываем его через TextEdit, редактируем, должно получиться что-то похожее на это:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>hdapm</string>
<key>ServiceDescription</key>
<string>Set ATA Advanced Power Management level</string>
<key>LaunchOnlyOnce</key>
<true/>
<key>RunAtLoad</key>
<true/>
        <key>UserName</key>
        <string>root</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/hdapm</string>
<string>1</string>
<string>-log</string>
</array>
</dict>
</plist>
  • сохраняем изменения и копируем hdapm.plist обратно в /Library/LaunchDaemons 
  • в терминале набираем команду:
sudo chown root:wheel /Library/LaunchDaemons/hdapm.plist

С настройкой HDAPM закончили.
  3. Теперь настроим клавишу eject. Качаем и устанавливаем утилиты KeyRemap4MacBook и NoEjectDelay.
Далее идем в Системные Настройки - KeyRemap4MacBook. В "Change Eject Key" выбираем "Eject to Command+Control+Option+Shift+E".
  4. Сделаем скрипт, который будет отключать/подключать диск. Готовый скрипт нашел здесь. На хоткей повесим его при помощи Automator. Открываем Automator, выбираем "Службы", далее выбираем Утилиты - Запустить  Apple Script.


В "Служба получает" выбираем <нет входных данных> в "любой программе".
Затем вставляем сам скрипт:


on run {input, parameters}
set myVolumeLabel to "Data"
tell application "Growl"
set the allNotificationsList to {"HD mounted", "HD unmounted"}
register as application "Disk Mounter" all notifications allNotificationsList default notifications allNotificationsList icon of application "Disk Utility.app"
end tell
tell application "Finder"
set diskDev to do shell script "diskutil list | grep \"" & myVolumeLabel & "\" | grep -o 'disk[0-9]*' "
if not (disk myVolumeLabel exists) then
do shell script "diskutil mountDisk " & diskDev
tell application "Growl" to notify with name "HD mounted" title "HD mounted" description "Hard drive has been successfully mounted." application name "Disk Mounter" icon of application "Disk Utility.app"
else
do shell script "diskutil unmountDisk " & diskDev
tell application "Growl" to notify with name "HD unmounted" title "HD unmounted" description "Hard drive has been successfully unmounted." application name "Disk Mounter" icon of application "Disk Utility.app"
end if
end tell
return input
end run

В строчке set myVolumeLabel to "Data" меняем Data на название любого тома на вашем HDD в optibay. Сохраняем службу, я обозвал "HD mount".
  5. Далее ставим запуск службы на сочетание Command+Control+Option+Shift+E. Для этого идем в Системные Настройки - Клавиатура - Службы - HD mount (или как вы обозвали), выбираем и задаем сочетание Command+Control+Option+Shift+E.
  6. И последнее, отключаем автоматическое монтирование разделов HDD в оптибэй после запуска системы. В терминале набираем

sudo pico /etc/fstab

Добавляем в конец строки с UUID и типом файловой системы вашего диска
Что-то похожее на:


UUID=3445234B-87B4-3F5E-B02B-52032B4DF645 none hfs rw,noauto
UUID=D5F04609-67E4-30DF-B1D4-8321A831D240 none hfs rw,noauto


  Сколько разделов на винчестре столько и строчек. UUID можно посмотреть через "Дисковую утилиту". Выбираем нужный раздел и нажимаем вверху кнопку "Инфо". Строка "Уник. универс. идентификатор" и есть UUID. Если такой строки нет, значит для этого раздела не нужно добавлять строку в fstab, пропускаем его.
  Чтобы сохранить изменения нажимаем Control + O, затем Enter. Для выхода Control + X.

Вуаля! Теперь hdd можно подключать и отключать одним нажатием клавиши. После отключения винчестера MacBook становится бесшумным. Единственное исключение - при открытии "Дисковой утилиты"(и тому подобных программ) винчестер будет оживать на время. Если в некоторые моменты времени HDD беспричинно оживает, разбирайтесь почему, такого не должно быть. Например, у меня iStat каждые 10 минут проверяет S.M.A.R.T статус винчестеров, что раскручивает HDD в optibay. Никакие настройки в самой программе пока не помогли, возможно придется удалить iStat, чтобы добиться полной тишины когда мне это нужно.

2 комментария:

  1. О! Спасибо за обзор, пойду тоже поставлю, вот тут решил заказать optibay
    http://youroptibay.ru/upgrade-kits/macbook/optibay-and-external-usb-case-for-apple-superdrive

    ОтветитьУдалить
  2. проблема с скриптом что не так делаю,делал все по инструкции

    ОтветитьУдалить