見出し画像

#コンピュータ談義 #備忘録 #RAM Disk on macOS Monterey

煩雑に書き込み・消去を行う為にSSD を使うのに罪悪感を感じていたのでRAM Disk を使う様にしました。
(SSD はデーター書き込み回数が寿命に直結するので….)

RAM Disk アプリ?

まずはMac 用のRAM Disk アプリを探してみました。
iRAMDisk などが検索に引っかかりましたが、これがアプリストアに見つからず。orz

アプリストアで'RAM Disk' で検索しても殆どヒットせずでした。

UNIX 的に解決?

更に検索した所、どうも特別にツールを導入しなくても簡単にRAM Disk を実装できる事が判りました。
下記はその際に行った備忘録となります。

私はMonterey 12.6 で動作確認しましたが、殆どのバージョンのMacOS にて同様の手順で実装可能だと思います。

現在MacPro Late 2013 にはメインメモリーが64GB搭載されていますので、16GBをRAM Disk に割り当てる事にしました。

RAM Disk 実装手順

環境(フォルダー)作成

ホームディレクトリの直下に"bin" という名前のディレクトリーを作成し、その中にスクリプトファイルその他を置くようにしました。

私は古いUNIX系エンジニアです!😊

スクリプトの用意

下記スクリプトファイルを用意します。
ファイル名は何でも良いですが、拡張子には注意が必要となります。

#!/bin/sh
set -eu

SIZE=16000  # Mega Bytes
CACHE_PREFIX=${HOME}/RAMDisk

rm -rf   "${CACHE_PREFIX}"
mkdir -p "${CACHE_PREFIX}"

device=$(hdiutil attach -nomount ram://$((SIZE * 1024 * 2 ** 10 / 512)))
newfs_hfs -v "RAMDisk" ${device}
mount -o noatime -t hfs ${device} "${CACHE_PREFIX}"

cp -p ~/bin/DS_Store_forRAMDisk ~/RAMDisk/.DS_Store

sleep 5 
killall Terminal
exit

重要ポイント

  • スクリプトファイルの拡張子は'.command' とする。
    私は'ramdisk.command' としました。

最初拡張子を’.sh' としていたため、自動実行が動作せず…. orz

  • スクリプトファイルに実行権限を付ける
    chmod +x ramdisk.command

  • ターミナルを終了する為に'killall Terminal' を実行しています。
    他のログインスクリプトで使用しているとまずいので、5秒の待ち時間を入れています。

  • 下記行はRAMDisk のFinder での内容表示を固定する為に入れていますが、好みによっては無くても良いかと思います。

cp -p ~/bin/DS_Store_forRAMDisk ~/RAMDisk/.DS_Store
  • RAMDisk の容量はスクリプト内の"SIZE" で指定しています。
    単位はメガバイト。

スクリプトの確認

ターミナルを開いてスクリプトを実行します。

スクリプト実行が完了すると、ウィンドウは閉じ、ターミナルは終了します。

結果確認

デスクトップに"RAMDisk" のデバイスアイコンが表示されれば確認完了です。
(注:デスクトップの設定によっては表示されない事もあるかと思います)

また自分のホームホルダーでも"RAMDisk"が確認出来ると思います。

フォルダー初期設定の保存

この工程は必須ではありませんが、RAMDisk を開いた際のウィンドウ動作を自分好みにする場合は行って下さい。

一度RAMDisk を開いて、ウィンドウで右クリックをし”Show View Options”を選択します。

ここで一度設定を行います。

一旦ウィンドウを閉じます。

ターミナルを開いて下記コマンドを実行します。

cp -p ~/RAMDisk/.DS_Store ~/bin/DS_Store_forRAMDisk


スクリプトの登録

毎回スクリプトを実行するのも面倒なので、ログイン時に自動的に実行される様に設定します。

[リンゴマーク]
 -[システム環境設定]
  -[ユーザとグループ]で設定したいユーザを選んで表示します

[ログイン項目]タブを選択

[+]をクリックするとファイル選択ウィンドウが表示されますので、スクリプトファイルを選択します。

"Hide" にチェックを入れておいた方が良いでしょう。

ウィンドウを閉じて完了です。


実測 (ベンチマーク)

簡単にベンチマークを行ってみました。
ランダムライトの数値が低く出ていますが、実使用上遅い感じは全くしませんでした。

参考値として、内蔵1TB SSD のベンチマーク結果です。





#コンピュータ談義 #備忘録 #RAMDisk #Monterey #Mac #MacOS




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