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)作ったフォルダをターミナルにドロップ。パスが表示されるのでコピーします。
(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で、アプリケーションの強制終了画面をひらいて、その中からアプリを選択して終了してください。
この記事が気に入ったらサポートをしてみませんか?