Чи можу я налаштувати свій Macbook, щоб відключити всі зовнішні накопичувачі, коли закриваю кришку?


10

У мене є новий 13-дюймовий Macbook Pro, який працює Mavericks. Цей комп'ютер підключений до зовнішнього накопичувача USB, який я використовую для резервного копіювання Time Machine та для зовнішнього зберігання, резервні копії Time Machine відбуваються кілька разів на день, і накопичувач в основному неактивний для більшості день.

Коли я поспішаю на зустріч, до серверної кімнати або я їду додому наприкінці дня, я хотів би зробити наступне:

  1. Закрийте кришку мого Macbook швидко.
  2. Нехай Mac автоматично відключає всі зовнішні накопичувачі якнайшвидше та при необхідності примусово. Я готовий зачекати кілька секунд, коли всі фари вимкнуться.

Чи є спосіб змусити комп'ютер автоматично відключати всі зовнішні накопичувачі, як тільки я закриваю кришку на своєму Mac?

Наразі, якщо я забув відключити зовнішні накопичувачі, мій Mac карає мене пізніше помилкою "Диск не вийнято належним чином. Якщо можливо, завжди виймайте диск перед тим, як відключити його чи вимкнути його".

Я знаю, що найкраща практика завжди чисто знімати диск перед тим, як видаляти інтерфейс диска, але я шукаю автоматичне рішення. Мене не дуже турбує, якщо одне резервне зображення Time Machine буде перервано або пошкоджено, оскільки одна з наступних копій буде спрацьовувати, і мені дуже рідко виникає необхідність відновлення з резервного копіювання. Оскільки файлова система є файловою системою журналу, журнал прозоро переймається багатьма іншими помилками пошкодження файлової системи.


Оскільки вихід із облікового запису вимикає всі диски, чи є істотний мінус просто виходу? Крім того, я вважаю, що ОС вимиває всі записи файлової системи IO, тому ймовірність виникнення фактичної проблеми із викидом під час сну мені здається досить низькою - вдвічі це стосується файлових систем, котрі передаються в журнал.
bmike

Відповіді:


8

Існує ряд програм, які можуть запускати сценарії в режимі сну:

  • SleepWatcher - простий, але ефективний.
  • Сценарій - також можна запускати сценарії в інший час, наприклад після пробудження.
  • ControlPlane - більш настроюється, дозволяє запускати сценарії після багатьох різних подій.

Сценарій bash, такий як наведений нижче, демонтуватиме всі визначені диски:

VOLUMES="/Volumes/drive1 /Volumes/drive2 /Volumes/drive3"
for volume in $VOLUMES ; do [ -d $volume ] && umount -f $volume done

Демонтувати всі томи, крім /:

umount -A

чи більш чисто…

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

6

Інший варіант - Jettison (доступний через App Store) - саме цим я користуюся вже пару місяців і взагалі не виникло жодних проблем. Нещодавно він отримав можливість автоматичного перезарядження все ще підключених дисків під час пробудження зі сну.

Новіша версія v1.3.0 (лише для прямого завантаження - я припускаю, що вона на шляху до App Store) коштує дорожче, і вони пояснюють, чому це є в їх FAQ.

Якщо я прочитав це правильно, можна було придбати версію App Store за два долари, а потім безкоштовно оновити її до прямої завантаження, але я цього не підтвердив і не пробував.

Не зовсім дороге за будь-яку ціну, але не безкоштовно, як здається варіант SleepWatcher.


4

Я докладно поясню відповідь @ grgarside.

Я використовую SleepWatcher

  1. Встановити з портів:

    sudo port install sleepwatcher
    
  2. Прочитайте посібник за адресою /opt/local/share/doc/sleepwatcher/ReadMe.rtfта через man sleepwatcher. Прочитайте цей старий Machint від Macworld: вилікуйте Mac від безсоння за допомогою системи SleepWatcher . Відповідно до Machint, я можу просто додати код до ~/.sleepта ~/.wakeup, або до глобальних файлів /etc/rc.sleep& /etc/rc.wakeup.

  3. Помістіть такий код у ~/.sleep:

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Активуйте сонник. Змінити <key>Disabled</key><true/>на <key>Disabled</key><false/>.

    sudo vim /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl load /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl list | grep sleepwatcher
    
  5. Перевірте:

    ps aux |grep [s]leepwatcher
    root              421   0.0  0.0  2459568   1012   ??  Ss    2:45PM   0:00.00 /opt/local/bin/daemondo --label=sleepwatcher --start-cmd /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup ; --pid=exec
    root              422   0.0  0.0  2460656   1888   ??  S     2:45PM   0:00.17 /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup
    
  6. Готово!


Я міг би скористатись оглядом на цю відповідь, щоб переконатися, що я активував .plistріч правильно.
Стефан Ласєвський

Дотримуйтесь цього покроково, але це не працює для мене. Після сну я відключаю підключення зовнішнього жорсткого диска, MacBook5,3 прокидається, і коли я відкриваю кришку, я отримую помилку про неправильно викинутий диск.
Саару Ліндесткек

Це працює для мене, але лише іноді. Не знаю чому.
Стефан Ласевський

1
Я все ще в ML, тому це не конкретно для Mavericks, і я не отримую помилок, коли машина активна. Я помітив, що сценарій. Sleep іноді виконується на хвилі, ніби у нього не вистачає часу, коли він лягає спати.
Saaru Lindestøkke

1
Крім того, хороший гід тут: damacy.net/post/9377132648 / ...
Dan
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.