りんごが好きなのでぃす

Macを中心に、たま〜にiPhoneやiPadなどの話題も届けていたら今年で26年目を迎えてました

外付けHDD内のiTunesライブラリが壊れる問題に暫定対処してみました

 

f:id:kjx130:20160110153942j:plain

OSのメインテナンス性を考慮して写真.appやiTunes.appのライブラリは外付けHDDに入れて使っていて、昨年11月にこれをG-Technology製のG-Drive(2TB)に換えました。

ちなみに新品は高すぎるのでメーカーリファビッシュ品です (^_^;)

で、HDDを換えてからやたらとiTunesライブラリのファイルが壊れる不具合が起こるようになりました。エントリーした時点では原因に気づいていませんでしたが、状況については以下のエントリの通り。

ringosuki.hateblo.jp

何がトリガーになっているのか

再整備品であるとか、OS X El Capitanは動作保証環境に含まれてないという "そもそも論" もありますが、とりあえずそういう現実からは目を背け(苦笑)何きっかけでトラブルが起こるかというと……

  • 外付けHDDが省エネモードに入っている時に iTunes.app を起動
  • 外付けHDDが省エネモードに入っている時に iTunes.app を終了

100%ではありませんが、いずれかの操作を行うと高確率でiTunesが初期状態に戻ってしまいます。

通常、アクセス先のディスクが寝ている場合はまず呼び起こすところから始まるはずで、この子の場合も上記操作をするとスピンアップはするんだけどそのあとに何らかの理由でライブラリが壊れてしまう模様。

寝ないようにすりゃ良いじゃん

……と思ったので、Keep Drive Spiningというアプリを使ってドライブを起こしたままにしておく方法も採ってみたところトラブルは起きなくなりましたが、アクセス頻度を考えると回転させ続けるのは効率が悪いので1週間ほどで却下。

OSの省エネモードを弄れば良いという話もネット上でチラホラ見かけて試してみたものの、こちらについてはうちの子には効果が見られず……。

起きるようにすりゃ良いいじゃん

で、たどり着いたのがこの方法。

要するにiTunesを起動、または終了させようとした時に半自動的に外付けHDDが回り始めるようにすりゃ良いので……

  • iTunesを起動させるためだけのアプリ
  • iTunesを終了させるためだけのアプリ

をそれぞれAutomator.appで作り、これをiTunesライブラリが入っているHDDに保存。

これをDockに登録しておけば起動(終了)アプリをクリックするたびに外付けHDDに保存されているアプリケーションにアクセスすることになるのでディスクの回転が始まってから起動(終了)のプロセスが走る……といった寸法。

ただし難点が……

イチイチめんどうくさいw

あと、起動はまだしもcommand+Qしちゃうことがしばしば (^◇^;)

起きるようにすりゃ良いじゃん・改

起動用、終了用にアプリを分けているのも操作がめんどうくさく感じる要因の1つでもあるので、これをひとまとめにしたアプリケーションをAppleScriptで作ることにしました。

記述はこんな感じ。

if application "iTunes" is running then
    tell application "iTunes"
        display dialog "iTunesを終了します"
        delay 3
        quit
    end tell
else
    tell application "iTunes" to activate
end if

iTunesが起動してたら終了して、そうじゃなければ(=起動していなければ)起動して……というだけのものだけど起動時の挙動にはまだ若干調整の余地あり?(保留中)

(^◇^;).。oO(プログラミングの知識は全くないので無慈悲なツッコミはご遠慮くださいw)

あとはアプリケーション形式で保存して、これを外付けHDDに入れてDockから呼び出すようにする、と。

万が一に備えてiTunesのcommand+Qを無効化しておくと良いかもしれない?

まとめ

HDDを買い換えるとか、もっとちゃんとしたプログラムを書くとか、あるいはiTunesをハックするなんて玄人技ももしかしたらあるのかもしれないけど私には無理w

G-TechnologyかAppleに何とかして欲しいと言いたいところでもあるけど、これも多分無理でしょうね。

もっとスマートで確実な方法があれば良いんだけどなぁ (ノД`):.