外付けHDDが勝手にスリープしてファイルを開くたびに待たされるとイライラしますよね。
この記事を読むと、Macの基本設定と少しの工夫で外付けHDDのスリープを止める方法がわかり、作業効率がすぐに改善します。
| 項目 | 内容 |
|---|---|
| すぐにできる設定手順 | システム環境設定と簡単なコマンドを両方掲載し、画面を見ながら迷わず設定できます。 |
| プログラマーの小技 | マウント設定や自動マウントのちょっとした工夫で安定性を高める方法を紹介します。 |
| 問題別チェックリスト | アクセス遅延や電源の切れなどによるトラブルごとに優先すべき確認項目をまとめています。 |
まずは簡単な手順から試して、うまくいかないときは問題別のチェックを順に行えば解決しやすいように構成していますので安心して読み進めてください。
Macエンジニア焦らなくて大丈夫です。ゆっくり手順に沿って進めれば設定はかんたんに終わりますから、気軽に試してみてください。
Macで外付けHDDをスリープさせない基本の設定


外付けHDDが作業中にカリカリ止まると不安になりますよね。Macではシステム設定やちょっとした工夫で外付けHDDのスリープを止められます。
まずはシステム設定のトグルを確認するのが手っ取り早いです。それで解決しないときはpmsetコマンドや短いスクリプト、専用アプリで対応できます。どの方法が合うかは使い方に合わせて選んでください。
- システム設定で該当のスリープ設定をオフにする。
- pmsetコマンドでディスクスリープを無効にする。
- 定期的に外付けHDDにアクセスする小さなスクリプトを動かす。
- 外付けHDD専用のサードパーティーアプリを使う。



まずは気楽にシステム設定のトグルをいじってみてください。ほとんどの場合それでスッと解決しますよ。
電源アダプタ接続時とバッテリー駆動時の設定切り替え


Macは電源アダプタ接続時とバッテリー駆動時で別々の設定を持てます。外付けHDDを常時回したいなら両方でスリープ無効にするのが確実ですが、バッテリー持ちを優先したいならバッテリー時だけ節電寄りにするのが現実的です。
GUIで設定できない場合はpmsetコマンドで個別に切り替えられます。充電時とバッテリー時で別の値を設定しておくと便利です。
sudo pmset -c disksleep 0
sudo pmset -b disksleep 10
システム設定の省エネルギー/バッテリー項目で該当トグルを変更する手順
画面左上のAppleメニューからシステム設定を開いてください。
サイドバーのバッテリーまたは省エネルギーをクリックして設定画面を表示してください。
『ハードディスクを可能な場合はスリープさせる』や『ディスクスリープ』に該当する項目をオフにしてください。
Terminalで作業中だけMacをスリープさせない方法(caffeinate)


Terminalから作業している間だけMacがスリープしないようにするには、標準コマンドのcaffeinateが便利です。長時間のコピーやバックアップ中に外付けHDDが止まってしまう心配を減らせます。
caffeinateは実行中だけシステムのアイドルスリープを抑止したり、指定時間だけ抑止したりできます。ここでは使いやすい選択肢を示して、すぐに試せる形で説明します。
- Terminalでコマンドをそのままcaffeinateで囲んで実行する方法。
- caffeinateの-tで時間指定して一時的にスリープを防ぐ方法。
- ディスプレイだけを維持したいときは-d、アイドルスリープを防ぎたいときは-iを使い分ける方法。
実務では外付けHDDが勝手にスリープして接続が切れるとバックアップが途中で終わってしまうことがあるので注意が必要です。caffeinateなら必要な間だけ確実にスリープを抑えられるので安心して任せられます。
コピーやバックアップ実行中に使う簡単なコマンド例


コピーやバックアップを実行するときは、caffeinateでコマンドを囲むだけで簡単にスリープを防げます。通常は-iオプションでアイドルスリープを抑止し、rsyncなど長時間かかる処理と組み合わせるのがおすすめです。
さらに-tで最大時間を指定したり-dで画面だけ維持したりできます。以下は実務でよく使う具体例です。
caffeinate -i cp -R /Volumes/ExternalDrive/Folder ~/Backups/Folder
caffeinate -i rsync -a --progress /Volumes/ExternalDrive/ /Users/username/Backups/ExternalDrive/
Terminalでcaffeinateを使ってコマンドを囲む実行手順と注意点
Launch Terminalアプリを起動します。Spotlightやアプリケーションフォルダから起動できます。
caffeinate -iを先頭に付けて実行します。たとえばcaffeinate -i rsync -a –progress /Volumes/External/ /Users/you/Backup/のようにコマンドを実行します。
処理が終わるとコマンドが終了して自動で抑止が解除されます。必要ならCtrl+Cで手動終了できます。
外付けHDD本体のスピンダウンを防ぐ方法


外付けHDDは省電力で回転を止めることが多いです。作業中にアクセスが止まると待たされるので眠らせない設定が便利です。
対処法はいくつかあります。簡単に試せる定期アクセスのループと常用に向く自動起動の両方を用意しておくと安心です。
- 短期テスト向けにTerminalで定期アクセスする方法。
- 常用向けにlaunchdで自動起動する方法。
- ドライブメーカー提供のユーティリティで設定する方法。
- 運用を見直してNASや常時アクセス可能な環境に移行する方法。



慌てず順番に試してみてくださいね。まずは一番手軽な方法で様子を見てから慣れていくと安心です。
すぐ試せる簡易ループで定期アクセスする方法


もっとも手軽なのは定期的にファイルに触れてアクセスを発生させる方法です。Terminalで対象ボリューム上のファイル日付を更新しておくとドライブが眠りにくくなります。
短時間のテストや作業時に便利ですが長時間の常時稼働には注意が必要です。バッテリーの消費やHDDの寿命に配慮して間隔を決めてください。
必ず正しいボリューム名を指定してください。アンマウントや誤ったパスを触るとエラーが出ます。
Terminalでのtouchループ実行方法と安全に停止するやり方
外付けHDDのルートや隠しファイルに1つだけ置くと管理しやすいです。ボリューム名は実際の名前を使ってください。
短期的には端末でファイルの更新を繰り返すだけで効果があります。数分間隔で更新するとディスクが眠りにくくなります。
終了は端末で実行中プロセスを止めてから行ってください。ジョブを停止してからアンマウントすると安全です。
常用するならlaunchdで自動起動する方法


頻繁に外付けHDDを使うならlaunchdで自動化すると便利です。ユーザ領域のLaunchAgentsに設定するとログイン時に自動で動き再起動後も継続します。
plistで実行間隔や実行時の挙動を決められます。ボリュームが未マウントだと動作しないので起動時のチェックを入れると安心です。
~/Library/LaunchAgentsにplistを置いてロードする具体的な手順
ファイル名はcomユーザ名.keepalive.plistのようにしてStartIntervalやRunAtLoadを指定します。ProgramArgumentsで実行するコマンドを指定してください。
作成したplistをホーム下のLibraryLaunchAgentsフォルダに入れます。フォルダがなければ作成してください。
launchctlでロードすると自動起動します。launchctl listで登録状況を確認して動作を確かめてください。
停止はlaunchctl unloadで行いplistを削除すれば自動起動は止まります。変更時は再ロードして反映してください。
外付け接続時だけ自動でスリープ制御を切り替える応用


外付け接続時だけ自動でスリープ制御を切り替えたい場面は多いです。ここでは手軽に済ませる方法と自分で細かく制御する方法、それからlaunchdを使ってほぼ完全自動化する方法の3つを紹介します。
- サードパーティアプリで簡単設定。手間が少ない反面、細かい条件指定はしにくいです。
- シェルスクリプトで起動停止を自動化。柔軟でログも出せるのでトラブル対応がしやすいです。
- launchdのWatchPathsで接続検出を完全自動化。OSレベルで動くので安定性が高いです。
エンジニア目線の助言としては、ボリューム名だけで判定すると似た名前のメディアで誤動作することがあるので、可能ならUUIDで絞り込むと安心です。まずは短いテストで動作を確かめてから運用に移すことをおすすめします。
マウント検出でcaffeinateやスクリプトを自動実行する方法


マウント検出でcaffeinateや任意スクリプトを自動実行するには、接続イベントを拾う仕組みが必要です。macOSではlaunchdのWatchPathsやフォルダ監視ツールで/Volumes配下の変化を検知できます。
実装のコツは対象を明確にすることです。ボリューム名やUUIDで判定し、マウント時にcaffeinateを起動しアンマウント時に確実にプロセスを止めるスクリプト構成にすると安定します。
WatchPathsやスクリプトでマウント検知→スリープ防止を起動する基本手順
マウント時にcaffeinateをバックグラウンドで起動しPIDをファイルに保存するシェルスクリプトを用意します。アンマウント時はそのPIDを参照して終了させます。
WatchPathsに/Volumes/ボリューム名または/Volumesを指定するplistを作ります。必要ならスクリプト内でUUIDチェックを行って対象を絞ります。
launchctlでplistを読み込み外付けHDDを接続してcaffeinateが起動するかを確認します。ログを確認し問題があればスクリプトを修正します。
よくある質問


- 外付けHDDが勝手にスリープして困るときはどうすればいいですか。
システム設定で「ハードディスクを可能なときスリープさせる」のチェックを外すと、多くの場合スリープを止められます。さらにターミナルで sudo pmset -a disksleep 0 を実行するとシステム全体でディスクスリープを無効にできるので、状況に応じて試してみてください。
- ターミナルの pmset コマンドは安全ですか。
基本的には安全で効果的です。ただし管理者権限が必要なのでコマンドをコピーして正確に実行し、元の設定値をメモしておくといつでも元に戻せて安心です。
- 外付けドライブ本体が独自にスリープする場合はどうすればいいですか。
一部のドライブはファームウェアやメーカー設定で自前のスリープを行います。その場合はメーカーのユーティリティを使うか、定期的に小さなアクセスを送るアプリを使うと回避できることが多いです。
- 常時稼働させると寿命が心配ですか。
常時通電はわずかに負担になりますが、頻繁な起動停止はより大きな負担になることが多いです。用途に合わせてバックアップや状態チェックを行いながら運用すると安心できます。
まとめ


外付けHDDをスリープさせない設定について、手早くまとめます。システム設定だけで済む方法から、ちょっとしたコマンドや常駐アプリで確実に防ぐ方法まで触れましたので、自分の使い方に合わせて選んでください。設定を変えるときはまず一つだけ試して様子を見ると安心です。
- macOSの設定で省エネルギーまたはバッテリーの「ハードディスクを可能な場合はスリープさせる」をオフにする。
- ターミナルのpmsetコマンドでディスクのスリープ設定を変更する方法を使う。簡単なコマンドで設定を戻せるので試しやすい。
- サードパーティ製の常駐アプリで定期的にドライブにアクセスさせてスリープを防ぐ。自動で動かせるので手間が少ない。
- ケーブルや外付けケースの電源設定を確認する。ドライブ側の設定が影響していることがある。
注意点として、スリープを無効にすると消費電力や駆動音が増えたり、HDDの寿命に影響が出ることがあります。バックアップや運用スケジュールを見直して、本当に常時動かす必要があるかを考えてください。必要に応じて設定を元に戻せるように手順をメモしておくと安心です。
スリープ無効化は便利ですが、HDDの寿命や発熱、電気代への影響に注意してください。



まずは一つの方法を試してみましょう。うまくいかなければ元に戻して別の方法を試すだけなので気楽にやってみてくださいね。
