絖綛 N@i.jp  昨日:00046549
 今日:00019559
 総計:00651596
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Buffalo LS210Dでsmartdを動かす

LS-VLで実施した一連のことをLS210Dでもやろうとしているのですが・・・


 LS-VLに対して実施した一連のことと同じ事をLS210Dでも行おうとしているのですが、システムが微妙に変わっていて、ちょいちょい躓いています。rootでログインできるようにした次は smartdを動作させようとしています。LS-VLで行った手順はLS-VLでsmartdを有効化してみたに書いてあるのですが、やはりこれにも違いがありました。

  1. "/etc/default/smartmontools" ファイルの作成

     以前は必要なのか良く理解しないまま ”/etc/default/smartmontools” ファイルを作っていたのですが、このファイルは smartdをブート時に起動させるスクリプトで読み込んでいるようですね。でも、今回に限れば特に作らなくても大丈夫だと思われます。でも、まぁ一応念のため作っておくことにしましょうか。
     任意のディタで ”/etc/default/smartmontools” ファイルを作り、以下のように記述します。

    enable_smart="/dev/sda"
  2. "/etc/smartd.conf" の編集

     smartd の設定ファイルを編集します。LS-VLでは smartd設定ファイルは "/usr/local/etc/smartd.conf" に置かれていたのですが、LS210D では場所が変わって "/etc/smartd.conf" に置かれていました。
     編集する内容は LS-VLの時と変わりはありません。注意すべき点も同じで23行目付近にある DEVICESCAN の前に # を付けてコメントアウトしましょう。

  3. ブート時に自動的に起動させるようにする

     これが最大の問題でした。LS210Dの中を探しても smartdの起動スクリプトが見つかりません。仕方ないので、LS-VLの smartd起動スクリプトから必要な部分だけを抜き出して自力でスクリプトを作成しました。内容は以下のようになります。

    #! /bin/sh
    smartd_opts="--configfile=/etc/smartd.conf"
    
    SMARTD_BIN=/usr/sbin/smartd
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    SMARTDPID=/var/run/smartd.pid
    [ -x $SMARTD_BIN ] || exit 0
    RET=0
    
    # source configuration file
    [ -r /etc/default/smartmontools ] && . /etc/default/smartmontools
    
    smartd_opts="--pidfile $SMARTDPID $smartd_opts"
    
    case "$1" in
    start)
    	echo -n "Starting S.M.A.R.T. daemon: smartd"
    	if start-stop-daemon --start --quiet --pidfile $SMARTDPID ¥
        	--exec $SMARTD_BIN -- $smartd_opts; then
    	    echo "."
    	else
    	    echo " (failed)"
    	    RET=1
        	fi
    	;;
    stop)
    	echo -n "Stopping S.M.A.R.T. daemon: smartd"
    	start-stop-daemon --stop --quiet --oknodo --pidfile $SMARTDPID
    	echo "."
    	;;
    restart|force-reload)
    	$0 stop
    	$0 start
    	;;
    *)
    	echo "Usage: /etc/init.d/smartmontools {start|stop|restart|force-reload}"
    	exit 1
    esac
    exit $RET

     何の事はない、LS-VL内にあった smartd起動スクリプトからDebian部分を抜き出しただけです。これを "/etc/init.d/smartd.sh" というファイル名で作りました。実行権を付けて起動実験してみます。

    # chmod +x /etc/init.d/smartd.sh
    # /etc/init.d/smartd.sh start
    Starting S.M.A.R.T. daemon: smartd.
    # ps -efa | grep smartd
     3486 root     /usr/sbin/smartd --pidfile /var/run/smartd.pid --configfile=/etc/smartd.conf
    

     うまく起動しているようです。あとはこれがブート時に呼び出されるようにすれば良いのですが、これが何故かうまくいかない・・・LS210Dでは "/etc/rc.d"配下のディレクトリ構造が、

    # ls -l /etc/rc.d
    total 12
    drwxr-xr-x    2 root     root          4096 Dec 13 15:32 extensions.d/
    lrwxrwxrwx    1 root     root             9 Nov  1  2007 init.d -> ../init.d/
    drwxr-xr-x    2 root     root          4096 Dec  3 09:44 initweb.d/
    drwxr-xr-x    2 root     root          4096 Oct  2 10:04 sysinit.d/
    

    となっていました。"/etc/init.d/rcS" スクリプトを読むと、以下の順でファイル名が 'S' で始まるスクリプトを実行して行くように読めました。

    1. /etc/rc.d/sysinit.d/
    2. /etc/rc.d/extensions.d/

    実際、上記のディレクトリ配下には名前が "Snn_xxxxx.sh"、"Knn_xxxxx.sh"(nnは数字、xxxxxはスクリプト名)のシンボリックリンクが置かれています。先頭が 'S' のスクリプトが起動、'K' のスクリプトが停止ですね。数字nnは起動、停止の順番を制御するためのものです。そこで、"/etc/rc.d/extensions.d/" に "S99_smartd.sh" という名前で "/etc/init.d/smartd.sh" へのシンボリックリンクを置いてみました。しかし再起動しても smardが起動してくれない。何故?

     止むを得ず、"/etc/init.d/rcS" スクリプトの最後で "/etc/init.d/smartd.sh" を直接呼び出すようにしました。

    # tail /etc/init.d/rcS
    
    /etc/init.d/wol.sh start wol_ready_check
    #exec_sh consoled.sh
    
    #Start SSH daemon
    /usr/sbin/sshd
    
    #Start smart daemon
    /etc/init.d/smartd.sh start
    

    何とか LS210Dのブート時に smartdが起動されるようになりました。何となく釈然としないけど、まぁいっかぁ。。。


< 過去の記事 [ 12月の 全てのカテゴリ リスト ] 新しい記事 >

2024 calendar
12月
1234567
891011121314
15161718192021
22232425262728
293031


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.