Raspberry Pi OSにtmpfsを活用しSDカードに優しいシステムを

公開 | 更新 

組み込み系Linuxシステムでよく見かける tmpfs  は、一時ファイルの格納先のファイルシステムとして広く採用されていて、 Raspberry Pi のシステムでもVolumioなどでよく見掛けます。今回は tmpfs  が一時ファイルの格納先に使われていないシステムへの導入方法をまとめました。

OpenWRTに使われるtmpfsの例

GL-iNet GL-AR750Sポータブルルータで稼働するOpenWRTなど、組み込み系ではよくtmpfsが効果的に採用されています。

今回はRaspbian Stretchの動くRaspberry Pi 3B+を例に進めますが、Raspberry Piのみならず広範囲なLinux系システムに於いても、普遍的に使えると思います。

 

tmpfs化する箇所の現状確認

Raspbian Stretchでtmpfsへ変更するのは次の2箇所、

  • /tmp
  • /var/tmp

システムによってはこれらは既にtmpfs化されていることが多いのですが、Raspbian Jessieの頃から使っているこのデバイスでは、未だtmpfsにはなっていませんでした。

SDカードへの負荷を抑えるならば、 /var/log もtmpfs化したいところですが、起動の度にログが消えてしまうのはトラブルシューティング時に不安なので除外しました。

まずこれらのディレクトリの詳細を確認して、いずれもスティッキービット付(誰でも読み書き可能も、削除は所有者とrootのみ)であることを覚えておきます。

 

fstabへ記述

得られた現在のパーミッション情報(1777)を元に、root権限で /etc/fstab へtmpfs化する2つのマウントポイントを以下のように追加します。

 

手動マウントによる確認

これでシステムの起動時にtmpfsとしてマウントされるようになったので、再起動の前にまずは手動でマウントしてみます。

正常にtmpfsとしてマウントされました。

 

デバイスの再起動後も正しく自動マウントされ、利用されている様子を確認できました。

 

2024年8月追記)/var/tmpはtmpfsにしない方が良い

パッケージマネージャでインストールや更新されるパッケージによっては、 /var/tmp に大きめの作業スペースが必要になる他、そもそも /tmp と異なり /var/tmp は中身の保持期間が比較的長いそうなので、tmpfsにするのは /tmp のみとしておいた方が良さそう(以下は raspberrypi-sys-mods パッケージの更新でinitramfsをゴニョゴニョしようとしてコケる例)。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA