読み取り専用で実行するようにraspbian jessieを設定しています。書き込みのみ可能/tmp
で、システムはDHCP IP情報を書き込むように構成されています/tmp
。
を除くすべてがうまくいきます/etc/resolv.conf
。起動中は更新されません。
シンボリックリンクを試してみました。
rm /etc/resolv.conf touch /tmp/resolv.conf ln -s /tmp/resolv.conf /etc/resolv.conf
ただし、/tmp
再起動後に消去されたため存在し/tmp/resolve.conf
ないため、更新できません。
だから起動中にファイルを作成してみました。
touch /tmp/resolv.conf
存在する/etc/rc.local
このファイルは、DNSエントリがないため、dhclientが実行された後に生成されます。システム起動後にdhclientを実行すると、DNSサーバーはファイルに正常に書き込まれます。
resolv.conf
読み取り専用ファイルシステムで作業する方法は?
答え1
dhclient-script のマニュアルページで、
つながる
起動時に、クライアントスクリプトは最初に/etc/resolv.confファイルを生成するために使用されるシェル関数make_resolv_confを定義します。デフォルトの動作をオーバーライドするには、Enter フックスクリプトでこの関数をオーバーライドします。
make_resolv_conf関数を定義した後、クライアントスクリプトは実行可能な/etc/dhcp/dhclient-enter-hooksスクリプトがあるかどうかを確認し、Bourneシェル '.'を使用してインラインスクリプトを呼び出します。注文する。 OPERATIONの下に記録された環境全体はこのスクリプトで使用でき、スクリプトの動作を変更する必要がある場合は環境を変更できます。スクリプトの実行中にエラーが発生した場合は、exit_status変数をゼロ以外の値に設定でき、/ sbin / dhclient-scriptはクライアントスクリプトが終了した直後にそのエラーコードで終了します。
/etc/dhcp/dhclient-enter-hooks
したがって、アイテムを編集して追加し、/tmp/resolv.conf
アイテムがない場合は正しい権限で作成し、必要に応じてシンボリックリンクを削除して再作成できる必要があります。
Debianを確認すると、スクリプトの一部があるディレクトリがあるように見えるdhclient-enter-hooks.d
ので、dhclientの配布/バージョン(この場合はRaspbian)に応じてそこに何かを追加できます。
答え2
確認するhttps://wiki.debian.org/ReadonlyRoot#resolv.conf。使用することをお勧めします構成ファイルの解析パック。すでにソフトウェアを操作しているため、機能するには少しの修正が必要になることがありますが、これはこの問題と他の問題に対する慎重な解決策です。
答え3
これをやった
rm /etc/resolv.conf ln -s /tmp/resolv.conf /etc/resolv.conf sed -i 's/\/etc\/resolv.conf/\/tmp\/resolv.conf/g' /sbin/dhclient-script