MacのRAMディスク:ターミナルのコマンドと無料アプリ

MacのRAMディスク:ターミナルのコマンドと無料アプリ

ディスクユーティリティに「新規RAMディスク」のボタンはありませんが、macOSでRAMディスクは作れます。標準のターミナルコマンドhdiutilとdiskutilを使えば、1行でメモリ上にディスクを作成できます。以下では、コマンド、サイズの計算、ディスクの取り出し方、この方法でできないこと、アプリのほうが簡単な場合を説明します。

要点
  • 2GBのRAMディスク:diskutil erasevolume APFS RAMDisk $(hdiutil attach -nomount ram://4194304)
  • サイズは512バイトのセクター数で指定します。GB数×2097152です。
  • 取り出しはFinderかhdiutil detachで行います。ファイルは消え、メモリは戻ります。
  • 再起動するとディスクも消えます。無料アプリのExlade RamDiskなら、ファイルごと元に戻せます。

ターミナルでRAMディスクを作成する

ターミナル(「アプリケーション」→「ユーティリティ」)を開き、1行実行します。次のコマンドは、RAMDiskという名前の2GBのディスクを作成します。

diskutil erasevolume APFS RAMDisk $(hdiutil attach -nomount ram://4194304)
  • hdiutil attach -nomount ram://4194304はメモリ上にブロックデバイスを作り、/dev/disk4のようなデバイス名を表示します。
  • diskutil erasevolume APFS RAMDisk ...はそのデバイスをフォーマットし、/Volumes/RAMDiskとしてマウントします。FinderにはUSBメモリーのように表示されます。
  • Mac OS拡張にするには、APFSの代わりにHFS+と書きます。一時的なディスクならどちらでも使えます。

sudoも管理者パスワードも不要です。

セクター数

ram://の後の数値は、MBではなく512バイトのセクター数です。1GBは1024×1024×1024÷512=2097152セクター、1MBは2048セクターです。

ディスクのサイズ セクター数 書き方
512MB 1048576 ram://1048576
1GB 2097152 ram://2097152
2GB 4194304 ram://4194304
4GB 8388608 ram://8388608
8GB 16777216 ram://16777216

diskutil erasevolumeは、渡されたデバイスを何であっても消去します。$(...)の形を崩さず、hdiutilからRAMデバイスを受け取るようにしてください。diskutil listで確認しない限り、ディスク番号を手で入力しないでください。

対応するmacOS:これらのコマンドは長年macOSに入っていて、macOS 15 SequoiaとmacOS 26 Tahoeでも、Apple SiliconとIntelの両方で使えます。hdiutilのマニュアルページにも今もram://の例があります。APFSにはmacOS 10.13 High Sierra以降が必要で、HFS+はどのバージョンでも使えます。

RAMディスクを取り出す

Finderでディスクの横にある取り出しボタンをクリックするか、hdiutilが表示したデバイス名で次のどちらかを実行します。

hdiutil detach /dev/disk4
diskutil eject disk4

デバイス名がわからなくなったら、hdiutil infoかdiskutil listでもう一度確認できます。ディスク上のものはすべて削除され、メモリはmacOSに戻ります。

ターミナルの方法でできないこと

得意なこと
  • macOSに標準で入っていて、インストール不要
  • 管理者権限が不要
  • 1回のセッションや1回の大きなビルド用のディスク
制限
  • 再起動するとすべてのファイルごと消えます
  • サイズは固定で、変えるには取り出して作り直します
  • メモリが戻るのはディスクを取り出したときだけです
  • スクリプトを書かない限り、ログイン時には作成されません
  • DerivedDataなどのキャッシュは手で移動する必要があります

ログインのたびにディスクを用意するには、コマンドをシェルスクリプトに書き、LaunchAgentで起動します。~/Library/LaunchAgentsに置く、RunAtLoadを指定した.plistファイルです。それでもディスクは空の状態で作られます。ファイルの保存と復元はスクリプトで行う必要があります。

アプリを使う方法:Mac版Exlade RamDisk

Exlade RamDiskは、macOS 15以降、Apple SiliconとIntelに対応した無料のRAMディスクアプリです。メニューバーに常駐し、管理者権限は不要で、家庭でも職場でも無料です。WindowsとLinuxでも動作します。リリースのお知らせをご覧ください。

  ターミナル Exlade RamDisk
再起動後 消える 作り直され、必要ならファイルも保持
サイズの変更 取り出して作り直す いつでも可能、ファイルは残る
DerivedData、npmのキャッシュ 手で移動 テンプレートが移動
暗号化 diskutil apfsのコマンドを追加 APFSの暗号化、ランダムなキー
メモリ不足 自分で監視 ファイルを保存し、使われていないディスクの取り出しを提案
インストールする

ダウンロードページからダウンロードして「アプリケーション」にドラッグするか、eramdiskツールと一緒にHomebrewでインストールします。

brew install --cask exlade-ci/tap/exlade-ramdisk
ディスクを作成する

「新規RAMディスク」をクリックして名前とサイズを設定するか、テンプレートを選びます。「Xcode」はDerivedData用に8GBのディスクを、「npm」はnpmのキャッシュ用に2GBのディスクを作成します。Swift Package Manager、CocoaPods、Homebrew、Chromeのキャッシュと、TMPDIRも移動できます。Xcodeとnpmには各ツールの設定で新しい場所が設定され(Xcodeは再起動します)、TMPDIRはその後に起動したアプリに適用されます。ほかのフォルダーはリンクに置き換わるので、アプリは同じパスを使い続けられます。

再起動後も残す

「RamDiskの起動時に作成」をオンにし、ファイルが大切なら「次回起動時までファイルを保持」もオンにします。ファイルは5分、10分、30分ごとと、スリープの前に保存されます。続けて、設定で「ログイン時に開く」をオンにします。

メモリを監視させる

「設定」→「動作」の「メモリ不足時に対処」をオンにすると、保持するファイルを保存し、10分間何も使っていないディスクの取り出しを提案します。いっぱいになったディスクは大きくできます。

Mac版Exlade RamDiskの設定の「動作」タブ:ディスクがほぼいっぱいのとき、メモリ不足時に対処、使われていないディスクを取り出す

開発者の方へ:テンプレートで移動するフォルダーは、Exlade RamDiskのフォルダーとテンプレートのページで説明しています。

よくある質問

Macで起動時にRAMディスクを作るにはどうすればよいですか?

macOSは自動では作りません。ログイン時にLaunchAgentからターミナルのコマンドを実行するか、アプリを使います。Exlade RamDiskでは、ディスクの「RamDiskの起動時に作成」と、設定の「ログイン時に開く」をオンにします。

8GBは何セクターですか?

16777216セクターです。8×1024×1024×1024バイトを512で割った値です。どのサイズでも、GB数に2097152を掛けるか、MB数に2048を掛けます。

APFSとHFS+のどちらにすべきですか?

どちらでも使えます。一時的なディスクならHFS+(Mac OS拡張)で問題ありません。暗号化したRAMディスクが必要ならAPFSにする必要があります。Exlade RamDiskは、暗号化するディスクには常にAPFSを使います。

RAMディスクはApple Siliconで使えますか?

はい。ターミナルのコマンドはMシリーズのMacでもIntel搭載のMacでも同じで、Exlade RamDiskはユニバーサルアプリです。Apple SiliconではメモリをGPUと共有するので、8GBのMacではディスクを小さめにしてください。Exlade RamDiskのメモリ管理もご覧ください。

Exlade RamDiskを無料でダウンロード

Windows 10と11、macOS 15以降、Ubuntu、Debian、Fedoraに対応しています。登録は不要で、試用期間もありません。

無料ダウンロード 機能