QNAPでhostsを設定してみよう

  • 2024年1月21日
  • 2024年1月20日
  • Tips

※本ポストは QuTS hero 5.1.4.2596 にて適用可能だった方法となります。

あまり用途は無いと思いますが、/etc/hosts に特定の値を追加しておきたい場合もあるかと思います。

sshで接続して当該ファイルを直接編集しても、再起動時に編集前の状態に戻ってしまうため、スクリプトで直接追記してみる方法を考えてみました。

場合によっては筐体初期化となってしまう可能性もあるため、あくまで参考に留めて下さい。


下準備

スタートアップスクリプトの場所が置いてある場所を確認します。

まず、
https://www.qnap.com/ja-jp/how-to/faq/article/running-your-own-application-at-startup
を参照し、お使いのQNAPの/tmp/config にマウントすべき場所を確認しておきます。

以下、

mount $(/sbin/hal_app –get_boot_pd port_id=0)6 /tmp/config

で接続可能であることを前提に記述します。


実作業

  1. QuTSにssh接続します
  2. rootに昇格します
    sudo -i

    ※コンソールマネジメントメニューに入った場合は、Q、Yの順で抜けます

  3. /tmp/config にスタートアップスクリプトの場所をマウントします
    mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config

     

  4. 正しい位置に接続出来た事を確認します
    ls /tmp/config

    マウント位置が正しければ、smb.conf.cksum uLinux.conf smb.conf system.map.key が見える筈です

  5. autorun.shを編集します
    cd /tmp/config
    vi autorun.sh
    #!/bin/sh
    SCRIPT_DIR=$(dirname $0)
    ${SCRIPT_DIR}/add-hosts.sh &

     

  6. /etc/hosts にホスト名hogeな行を追加するスクリプト add-hosts.sh を作成します
    ホスト名やIPアドレスは適宜変更ください
    OS起動後、/etc/hostsが見える状態になっており、かつ、hogeが書かれていない場合、hogeを追加します

    vi add-hosts.sh
    #!/bin/sh
    ls -l /etc/hosts 2>&1
    status=$?
    while [ $status -ne  0 ]
    do
            sleep 60
            ls -l /etc/hosts 2>&1
            status=$?
    done
    if grep -q hoge /etc/hosts; then
      :
    else
      echo "192.168.0.1 hoge" >> /etc/hosts
    fi

     

  7. スクリプトの属性を変更します
    chmod 755 autorun.sh add-hosts.sh

     

  8. スクリプトの場所から抜けます
    cd /
    umount /tmp/config
    exit
    exit

     

  9. QuTSでautorun.shを使うよう設定をします
    コントロールパネル → ハードウェア と進み、『起動時にユーザー定義処理を実行』、にチェックを入れ、『適用』をクリックします
  10. NASを再起動して結果を確認します

以上です。