ディスクユーティリティに「新規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分間何も使っていないディスクの取り出しを提案します。いっぱいになったディスクは大きくできます。

開発者の方へ:テンプレートで移動するフォルダーは、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のメモリ管理もご覧ください。