RamDiskで快適な生活を

最近メモリも安いので,ついつい大容量なものを買って付けてしまう今日この頃.
Macbookのはメモリ8Gあるけど,VMwareを使ってガリガリやらない限りは使いきれるわけもない.
でも,せっかく買ったメモリなので,有効活用すべくRamDiskにして/tmpなんかに使おうという魂胆でございます.
SSDな人なんかは,SSDへの書込み回数が減って幸せかと思います.体感速度はそんなに変わらないかも…
HDDな人は単純に早くなって幸せかと思われます.
MacRamDiskの作成方法は調べればいくらでも出てくるけど,毎回調べるのもめんどくさいのでここにメモ.

GUIで設定したい人は,RamdiskOnMenubarというアプリがある.
が,別途アプリをインストールしなくてもターミナルでできるし,RamDiskなんてOSが上がってからコロコロ設定しなおすものでもないので,1回だけ設定すればいい.
ってことで,今回はターミナルで作業する.

RamDiskの作成には,hdidというコマンドを使う.
まずはRamDiskを作成するときにどれだけの容量を割り当てるか計算する..
容量の指定は,512バイトのブロック単位で指定する.
今回は、128MB作るとして,128 x 1024 x 1024 / 512 = 262144 と指定.
実行結果には,作成されたRamDiskのパスが返ってくる.
そしてHFS+でフォーマットする.
フォーマットには,diskutilをいうコマンドを使う.

% sudo hdid -nomount ram://262144
/dev/disk1
% newfs_hfs /dev/disk1

んで,シンボリックリンクを消してからマウントして終わり.

% sudo unlink /tmp
% sudo mount -t hfs /dev/disk1 /tmp

rc.localなんかにコマンドをずらずらと書いておけば起動時に実行されて幸せなのではないでしょうか.
ちなみにRamDiskを削除するときは,

% sudo hdiutil detach /dev/disk1

で削除できる.
マウントしてる場合は,アンマウントしていないと怒られる.

最後にrc.localの中身をダンプ

#!/bin/sh

# Ramdisk for tmp
NUMSECTORS=262144
ramdisk=`hdid -nomount ram://$NUMSECTORS`
newfs_hfs -v "tmp" $ramdisk
mount -t hfs $ramdisk /mnt/mfs

RamDiskは/mnt/mfsにマウントしていて,/tmpのシンボリックリンク先を/mnt/mfsしている.