さとーC++ぶろぐ

アクセスカウンタ

zoom RSS /lib/init/rw と /dev/shm の tmpfs のサイズを変える Linux

<<   作成日時 : 2007/11/06 17:01   >>

ブログ気持玉 0 / トラックバック 1 / コメント 1

Debian Linux を普通にインストールすると
ハードディスクのマウント以外に,FileSystemが tmpfs の
ファイルシステムのものが入る。

具体的には,ハードディスクなどの空き容量を表示するコマンド
df -h を実行すると,以下の様になっている。

Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda1 XX.XG XXXM XX.XG XX% /
tmpfs XXXM 0 XXXM 0% /lib/init/rw
tmpfs XXXM 0 XXXM 0% /dev/shm

/dev/hda1 は,ハードディスクだ。
じゃあ,tmpfs は何??
しかも,サイズはどちらも,メインメモリ容量の半分となっている。

色々調べると,tmpfs はRAMディスクらしい。しかも,使った分だけメモリを確保するらしい。
デフォルトでの容量上限は,メインメモリの半分らしい。取りすぎです。(汗)

ほほぉ。

でも,容量がメモリの半分。それが2つ・・・。

「え?」

どちらも使い切ると空きメモリ容量が0になるんじゃ???(汗

気持ちが悪いので,容量を減らす方法を調べる。

起動時にマウントしているのだから,/etc/fstab に書いてあるだろうと
見てみたが,この tmpfs の記述がない。

なんで??

マウント済み一覧の /etc/mtab を見ると書いてある。
/etc/mtab はマウント済みの一覧が記録してあるそうな。
ここにはある。

/etc/mtab の内容の例

/dev/hda1 / ext3 rw,noatime,errors=remount-ro 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0



じゃあ,どっか別の場所でマウントしているんだな。
どこだ・・・。

/etc/ 以下を色々調べてみる。

あった。

/dev/shm のマウント場所
  /etc/init.d/mountdevsubfs.sh
   リンク: /etc/rcS.d/S04mountdevsubfs.sh

/lib/init/rw のマウント場所
  /etc/init.d/mountkernfs.sh
  リンク: /etc/rcS.d/S02mountkernfs.sh

これらのファイルは,起動時のマウント系スクリプトだ。
/etc/init.d/mountdevsubfs.sh の
中身を良く見てみると,SHM_SIZEでサイズを指定しているみたい。
SHM_SIZE を設定している場所を探すと,/etc/default/tmpfs にあった。
名前もそれっぽい。
/dev/shm の tmpfs の容量の指定は, /etc/default/tmpfs の中の
SHM_SIZE=
で指定できるみたいだ。
SHM_SIZE=40960000
とかにすると,40MBになる。


じゃぁ,/lib/init/rw は・・・。どこにもないっぽい。
/etc/init.d/mountkernfs.sh の内容を良く見てみると,
RW_SIZE で,サイズを指定している記述を見つける。
このRW_SIZEの設定がないとデフォルトのサイズ,
つまり,メインメモリの半分が指定されてしまう。
/etc/init.d/mountkernfs.sh を編集するのはよくないので,
設定ファイルを参照していないか,良く見てみると,
こちらも, /etc/default/tmpfs を読み込んでいる。
じゃあ,
RW_SIZE=40960000
と書き足してやれば,良いのか。


再起動すれば,容量が40MBになっているはず。
df -h

Filesystem サイズ 使用 残り 使用% マウント位置
/dev/hda1 XX.XG XXXM XX.XG XX% /
tmpfs 40M 0 40M 0% /lib/init/rw
tmpfs 40M 0 40M 0% /dev/shm


設定後の /etc/mtab の内容の例。tmpfs のsize=のオプションが増えているのがわかる。

/dev/hda1 / ext3 rw,noatime,errors=remount-ro 0 0
tmpfs /lib/init/rw tmpfs rw,nosuid,mode=0755,size=40960000 0 0
proc /proc proc rw,noexec,nosuid,nodev 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev,size=40960000 0 0
devpts /dev/pts devpts rw,noexec,nosuid,gid=5,mode=620 0 0

この場合でも, /etc/fstab には変更がない。

あと,/etc/init.d/mtab.sh には, mountkernfs.sh と mountdevsubfs.sh の中身など,色々含まれています。。。

/lib/init/rw と /dev/shm の両方 のマウント場所
  /etc/init.d/mtab.sh
   リンク: /etc/rcS.d/S12mtab.sh


----------------------

要約すると:
/etc/default/tmpfs の内容を下記の通りにして,再起動すると40MBにできる。
SHM_SIZE=40960000
RW_SIZE=40960000

----------------------

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(1件)

タイトル (本文) ブログ名/日時
Ubuntu で tmpfs の容量設定
Ubuntu で tmpfs の容量設定 ...続きを見る
さとーC++ぶろぐ
2008/10/10 18:48

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(1件)

内 容 ニックネーム/日時
たいへん参考になりました
小関博
URL
2011/10/29 11:49

コメントする help

ニックネーム
URL(任意)
本 文
/lib/init/rw と /dev/shm の tmpfs のサイズを変える Linux さとーC++ぶろぐ/BIGLOBEウェブリブログ
文字サイズ:       閉じる