印刷

これまでの設定で(CUI環境下での)動作上の問題が無いことが確認できたところで、SDカード上で動作していることからフラッシュメモリの書き込み回数制限が気になるところ。
そこで、CUI環境での使用のみならばRAM(=RAMディスク)上で動作するようにシステムを調整できるはずなので、そのように設定してみよう。
(念のため書きますが、これから実施する設定でGUI環境が動作するかについては未確認なのでその点はご了承ください。)

 


1.基本設定の変更

GUI使用は考慮しなくて良いので、書き込み回数制限のあるSDカード上にスワップファイルやテンポラリファイルを作成しないよう設定を変更する。

 

2.スワップファイルの生成を抑止する

まずは、dphys-swapfile サービス(自動起動)設定の記述を変更してスワップファイルを生成しないようにしましょう。

 

(1)設定状況の確認

設定の確認コマンドを実行する。

 

$ chkconfig dphys-swapfile --list

と、このときコマンド実行時にエラーとなりました。chkconfig コマンドが存在しないとのこと。

ならば、chkconfig コマンドをインストールします

 

$ sudo apt-get install chkconfig 

インストールが無事成功したのでリトライ...

 

$ chkconfig dphys-swapfile --list
dphys-swapfile 0:off 1:off 2:on 3:on 4:on 5:on 6:off

 

今度は無事結果が表示されました。
あわせて、この結果からサービスが有効になっていることも確認できました。

 

(2)サービス(自動起動)設定の無効化

前の手順で、サービスが有効になっていることが確認できたので無効化します。

 

$ chkconfig dphys-swapfile off

と、ここで、”パーミッションがない”とエラーがになってしまいました。たしかに、管理者ではない一般ユーザでシステムの変更コマンドを実行したのだから当たり前ですね。

というわけで、管理者権限でリトライします。

 

$ sudo chkconfig dphys-swapfile off

さて...
今回はエラー発生していないようなので成功したようです。再び状態を確認しましょう。

 

$ chkconfig dphys-swapfile --list
dphys-swapfile 0:off 1:off 2:off 3:off 4:off 5:off 6:off

どうやらうまくいったようです。すべてoffになっているのでサービスの停止を確認できました。

 

3.テンポラリファイルの生成を抑止する

テンポラリファイルの生成を抑止するのは現実的ではないので、RAMDISK上に展開されるように設定変更することで、SDカードデバイスへの書き出し(生成)を抑止することにします。

(1)マウントポイントを確認

OS起動時に、/tmpディレクトリと/var/tmpディレクトリを、RAMディスク上にマウントするように変更します。

変更前のディスク使用状況を確認しておく。

 

$ df -h

ファイルシス         サイズ   使用     残り  使用%  マウント位置
rootfs             15G   2.1G    12G    15%  /
/dev/root          15G   2.1G    12G    15%  /
devtmpfs          215M      0   215M     0%  /dev
tmpfs              44M   224K    44M     1%  /run
tmpfs             5.0M      0   5.0M     0%  /run/lock 
tmpfs              88M      0    88M     0%  /run/shm
/dev/mmcblk0p1     56M   9.5M    47M    17%  /boot

 

(2)マウントポイントを追加(変更)

以下のように、設定ファイルを編集する。

対象設定ファイル : /etc/fstab

<変更前>

 

proc             /proc       proc     defaults           0        0
/dev/mmcblk0p1   /boot       vfat     defaults           0        2
/dev/mmcblk0p2   /           ext4     defaults,noatime   0        1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that

 

<変更後>

 

proc             /proc       proc     defaults           0        0
/dev/mmcblk0p1   /boot       vfat     defaults           0        2
/dev/mmcblk0p2   /           ext4     defaults,noatime   0        1
# a swapfile is not a swap partition, so no using swapon|off from here on, use dphys-swapfile swap[on|off] for that 
# tmpファイルをRAMディスク上に展開する記述
tmpfs            /tmp        tmpfs    defaults,size=32m,noatime,mode=1777       0        0 <-追記した
tmpfs            /var/tmp    tmpfs    defaults,size=16m,noatime,mode=1777       0        0 <-追記した

 

(3)再起動

設定変更後にシステムを再起動します。

# shutdown -r now
 

(4)変更の確認

再起動してから状態を確認すると...

 

$ df -h
ファイルシス        サイズ   使用     残り  使用%  マウント位置
rootfs             15G   2.1G    12G    15%  /
/dev/root          15G   2.1G    12G    15%  /
devtmpfs          215M      0   215M     0%  /dev
tmpfs              44M   224K    44M     1%  /run
tmpfs             5.0M      0   5.0M     0%  /run/lock 
tmpfs              88M      0    88M     0%  /run/shm
/dev/mmcblk0p1     56M   9.5M    47M    17%  /boot
tmpfs              32M      0    32M     0%  /tmp
tmpfs              16M      0    16M     0%  /var/tmp



これより、以上の手順で無事設定は反映されました。

 

以上でスワップファイルとテンポラリファイルに関する設定は終了です。