UbuntuでRAMDISKにテンポラリやログを移す

SDカードにUbuntuをインストールしてテスト用のサーバーを作ったけど、SDカードの寿命を考えて少しでもアクセスを減らすためにテンポラリやログファイルをRAMDISKに移す方法。ちょっとしたテスト用だから遡ってログファイルなんて見ないし保存する必要もないので。メモリーカードで運用するRaspberry PIと同じ手法。ただし、ディレクトリがないとエラーになる処理もあったり、思わぬところでエラーになると面倒なので、お勧めはしない。
RAMDISKを割り当てる
/etc/fstabに以下の行を追加する。/var/log, /var/tmp, /tmpのディレクトリをRAMDISKに割り当てる。サイズは適宜。
$ sudo nano /etc/fstabtmpfs /var/log tmpfs defaults,noatime,size=64m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=256m 0 0
tmpfs /tmp tmpfs defaults,noatime,size=512m 0 0
RAMDISKにディレクトリを作成する
ディレクトリが必要そうなものはあらかじめ作っておく。これ以外にもエラーや警告が出るものがあればその都度追加するということで。/etc/rc.localを開いてexit 0の行の前に以下の行を追加する。
$ sudo nano /etc/rc.localmkdir -p /var/log/apache2
mkdir -p /var/log/apt
mkdir -p /var/log/fsck
mkdir -p /var/log/samba
chown root.adm /var/log/samba
 
touch /var/log/lastlog
touch /var/log/wtmp
touch /var/log/btmp
chown root.utmp /var/log/lastlog
chown root.utmp /var/log/wtmp
chown root.utmp /var/log/btmp
再起動して確認する
ここまで設定出来たら再起動する。
$ sudo reboot
dfコマンドを使って、上で指定した/var/tmp, /var/log, /tmpのFilesystemがtmpfsになっているか確認する。
$ df -hFilesystem      Size  Used Avail Use% Mounted on
tmpfs           256M     0  256M   0% /var/tmp
tmpfs            64M  308K   64M   1% /var/log
tmpfs           512M  4.0K  512M   1% /tmp