※本ポストは 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
で接続可能であることを前提に記述します。
実作業
- QuTSにssh接続します
- rootに昇格します
sudo -i
※コンソールマネジメントメニューに入った場合は、Q、Yの順で抜けます
- /tmp/config にスタートアップスクリプトの場所をマウントします
mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config
- 正しい位置に接続出来た事を確認します
ls /tmp/config
マウント位置が正しければ、smb.conf.cksum uLinux.conf smb.conf system.map.key が見える筈です
- autorun.shを編集します
cd /tmp/config vi autorun.sh #!/bin/sh SCRIPT_DIR=$(dirname $0) ${SCRIPT_DIR}/add-hosts.sh &
- /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
- スクリプトの属性を変更します
chmod 755 autorun.sh add-hosts.sh
- スクリプトの場所から抜けます
cd / umount /tmp/config exit exit
- QuTSでautorun.shを使うよう設定をします
コントロールパネル → ハードウェア と進み、『起動時にユーザー定義処理を実行』、にチェックを入れ、『適用』をクリックします - NASを再起動して結果を確認します
以上です。