あらすじ
MacBook Pro の記憶容量がだいぶ少なくなってきました。というわけでこれを買いました。
- Nifty 【MacBook Pro Retina 13インチ用】 MiniDrive Retina 13 (4GBマイクロSDカード付属 最大128GBまで対応) シルバー MD3-RP-R13SR4G
- TOSHIBA(東芝) microSDXCカード Class10 読込最大30MB/S 64GB 海外パッケージ品 SD-C064GR7AR30
iTunes のフォルダを移動させてシンボリックリンク貼ると結構容量に余裕がでます。やったね。
% /usr/sbin/diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *121.3 GB disk0 1: EFI EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 120.5 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *61.9 GB disk1 1: Windows_NTFS MiniDrive 61.9 GB disk1s1
問題発生
なんですが MacOSX では外部ストレージが装着されたままだと Deep Sleep してくれないらしいです。つまりある朝出かけようとすると MacBook Pro のバッテリーが無くなってしまっているなんてこった。
スリープモード
Mac はスリープモードになると、メモリーに電力供給が行われている状態と、そうでないモードが存在します。
メモリーに電力供給が行われている状態、つまりメモリーにデータが保存された状態です。
そこから長時間スリープモードはメモリの内容を HDD(SSD) に書き出してメモリー電力供給を行わない状態に移行した状態がディープスリープです。
どうする?
sleep したタイミングを察知するスクリプトが存在するので、sleep, wakeup のタイミングで都度外部ストレージを mount, unmount すれば行ける気がする。
sleepwatcher
% brew install sleepwatcher % echo "/usr/sbin/diskutil list | grep -e 'disk[1-9]s.*' | sed 's/.*\(disk[0-9].*\)/\1/' | xargs -I{} /usr/sbin/diskutil unmount {}" > ~/.sleep % echo "/usr/sbin/diskutil list | grep -e 'disk[1-9]s.*' | sed 's/.*\(disk[0-9].*\)/\1/' | xargs -I{} /usr/sbin/diskutil mount {}" > ~/.wakeup % chmod +x ~/.sleep % chmod +x ~/.wakeup
動作確認
% /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup
この状態で別のターミナルを開いて sleep させる
% /usr/local/sbin/sleepwatcher --now
以下のようになっていればOK
% /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup Volume MiniDrive on disk1s1 unmounted sleepwatcher: sleep: /Users/okamuuu/.sleep: 0 Volume MiniDrive on disk1s1 mounted sleepwatcher: wakeup: /Users/okamuuu/.wakeup: 0
sleepwatcher を常時起動させる
% cp /usr/local/opt/sleepwatcher/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/ % launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
確認
% launchctl list | grep sleepwatcher 3022 0 de.bernhard-baehr.sleepwatcher
時々うまく動作していない時があるんだけど、まあ普段持ち歩かないので私の場合そこまで害はない。 持ち歩く用のPCの場合は素直に新しいPC買ったほうがいいかも。
おしまい。