Macの外付けハードディスクをスリープさせない

私は、最高のコストパフォーマンスを誇るM1 Mac miniを使っています。最低限のモデルでも、バリバリ映像編集もやれてます。
ただ、ひとつの問題が…それは、ストレージです。M1 Mac mini ではストレージを増やすには、外付けのハードディスクやSSDを用意しなくてはなりません。
そして、外付けの最大の問題が、勝手に寝てしまう(スリープする)というものです。
スリープに入ったあと、そのディスクにアクセスすると、そこからディスクの回転が始まって、回転が安定するまで作業が滞ってしまうというものです。
これが結構ストレス。
ググってみると、「システム設定>省エネルギー>可能な場合はハードディスクをスリープさせる」をオフにするといいというものが出てきますが、あれは嘘です。あくまで内蔵のハードディスクの設定です。
外付けのハードディスクは、その機器自体が自分の判断でスリープしちゃうのです。じゃあ、どうすんの?ってことで、力技で叩き起こすことにしました。

使うのは、AppleScript。
アプリケーションフォルダの「ユーティリティ」の中にある「スクリプトエディタ」を起動してください。

アプリケーション>ユーティリティ の中
起動したら、「新規書類」をクリック

そして、次のテキストをコピーして保存。
保存名は適当でOKです。私の場合は「diskknock」としました。

 === ▼▼ この下から ▼▼ ===
global waitSeconds

#動かす間隔(秒)
set waitSeconds to 60
#24時間は動くようにしてる
set MaxNum to 86400 / waitSeconds

#今あるフォルダを捨てて新しく作る
tell application "Finder"
try
move POSIX file "/Volumes/BK001/diskspinkeep/MakeMeUp" to trash
end try

try
move POSIX file "/Volumes/BK001/diskspinkeep/MakeMeUp-knock" to trash
end try

try
make new folder at folder "diskspinkeep" of disk "BK001" with properties {name:"MakeMeUp"}
end try

delay waitSeconds

end tell

#リネームしまくり
repeat with Num from 1 to MaxNum

tell application "Finder"
try
set name of folder "MakeMeUp" of folder "diskspinkeep" of disk "BK001" to "MakeMeUp-knock"
end try

delay waitSeconds

try
set name of folder "MakeMeUp-knock" of folder "diskspinkeep" of disk "BK001" to "MakeMeUp"
end try

delay waitSeconds
end tell

end repeat
 === ▲▲ この上まで ▲▲ ===

スクリプトエディタにペースト

やってること

外付けディスク内にフォルダを作って、定期的にリネームすることで、眠らないようにしてます。
上のスクリプトでは、BK001という外付けディスクに「diskspinkeep」というフォルダを作って、その中に「MakeMeUp」というフォルダを作り、60秒ごとにそれを「MakeMeUp-knock」という名前に変えたり、戻したりしています。

そのままでは使えない。あなたの環境にあわせて要調整

(1)外付けディスクの中にフォルダを作って適当な名前にする。できればアルファベットの方が安全
(2)ターミナルを起動する

アプリケーション>ユーティリティの中にあります

(3)作ったフォルダをターミナルにドロップ。パスが表示されるのでコピーします。

パスをコピー。この状態で左カーソルキー(←)を2回押してマウスを左にドラッグすると範囲が指定できるので、⌘+Cでコピる

(4)パスを書き換え
スクリプトエディタで
move POSIX file "/Volumes/BK001/diskspinkeep/MakeMeUp" to trash

/Volumes/BK001/diskspinkeep
をあなたのパスに書き換えてください。例の場合は
/Volumes/BK001/TEKITO/MakeMeUp

MakeMeUpは、そのフォルダの中に作成するフォルダ名です。任意でOKできればアルファベットで。
上の1行は、このスクリプトを走らせた時に、残っている「MakeMeUp」があればゴミ箱に捨てるという意味です。なければスルーします。

同じように、その下の方の
move POSIX file "/Volumes/BK001/diskspinkeep/MakeMeUp-knock" to trash
のパスも書き換えます。例の場合だと
move POSIX file "/Volumes/BK001/TEKITO/MakeMeUp-knock" to trash

MakeMeUp-knockは、「MakeMeUp」をリネームしたあとの名前です。
これも任意でOK

更にパス設定。まだまだ続くよ

次に変更するのが下の箇所

make new folder at folder "diskspinkeep" of disk "BK001" with properties {name:"MakeMeUp"}

これは、ディスク「BK001」の直下のフォルダ「diskspinkeep」の中に「MakeMeUp」というフォルダを作るという意味です。

「BK001」と「diskspinkeep」をあなたの環境に合わせて変更してください。「MakeMeUp」は、先程ゴミ箱に捨てるようにしたフォルダ名と同じならなんでも大丈夫です。

今度は違う表現のパスを変更、負けるな!

次に変更するのが下のところ

set name of folder "MakeMeUp" of folder "diskspinkeep" of disk "BK001" to "MakeMeUp-knock"

これは、ディスク「BK001」の中のフォルダ「diskspinkeep」の更に中のフォルダ「MakeMeUP」の名前を「MakeMeUp-knock」に変更するという意味。例の環境だとこうなります。

set name of folder "MakeMeUp" of folder "TEKITO" of disk "BK001" to "MakeMeUp-knock"

「BK001」、「diskspinkeep」はあなたの環境に合わせて、「MakeMeUp」「MakeMeUp-knock」は冒頭でゴミ箱にすてたフォルダ名と一致させてください。
変更は以上です。

最後にアプリにする

スクリプトエディタの「ファイル>書き出す」を選択してその先の画面でアプリケーションを選択して保存してください。もちろんスクリプトは、⌘+Sでスクリプトとして保存して置いてください。

メニュー>ファイル>書き出す
アプリケーションを選択して保存

起動方法

アプリケーションとして書き出したものをダブルクリックすると起動できます。外付けのディスクへのアクセスを許可するか?っぽいことを聞いて来るので了解してください。たぶん2回ぐらい聞いてきます。聞いてくるのは起動時だけで、その後は大丈夫です。

リネーム間隔について

デフォルトでは60秒ごとにフォルダ名を変える(=ディスクを起こす)ようになっています。

set waitSeconds to 60

の60を変更するとその間隔が変わります。もし、60でスリープするようだったら短くしてみてください。私は30でやってます。

ちなみにその下の

set MaxNum to 86400 / waitSeconds

は、24時間=(86400秒)を間隔で割って、何回リネームさせるかを決めています。つまり、このスクリプトは24時間は動き続けることになります。
86400を大きくするとより長い間動き続けることになります。

※重要※ 終了させかた

このアプリ、困ったことになぜか⌘+Qでは終了できません。
⌘+option+escで、アプリケーションの強制終了画面をひらいて、その中からアプリを選択して終了してください。




この記事が気に入ったらサポートをしてみませんか?