TLDR;再起動せずにどのように_/etc/udev/rules.d/70-persistent-net.rules
_に変更を適用しますか? (イーサネットインターフェイスの論理名については このドキュメント を参照してください。)
ロングバージョン:
remastersys 11.04で作成されたイメージを実行する起動可能なUSBフラッシュドライブがあります。このブート可能なUSBドライブを使用して、任意のコンピューターからDHCPサーバーを実行できるようにしたいと思います。これを行うには、eth0
_の_/etc/network/interfaces
_に静的IPアドレスを割り当て、_eth0
_の_/etc/default/isc-dhcp-server
_を参照する必要があります。
ただし、ネットワークカードにはMACアドレスに基づいてethXが割り当てられるため、これはUSBフラッシュドライブが使用される最初のコンピューターでのみ機能します-以降の各コンピューターのNICは_eth1
_、_eth1
_など.
この問題を解決するために働くことができる2つの戦略があるようです:
ethX
の実行時に表示される最初のifconfig
に基づいて、_/etc/network/interfaces
_および_/etc/default/isc-dhcp-server
_を動的に書き換えます。これは、NIC =は実際にコンピューター内にあります。/etc/udev/rules.d/70-persistent-net.rules
_を書き換えて、NICに割り当てられたMACアドレスはすべて_eth0
_という名前になります。networking
と_isc-dhcp-server
_を再起動することでこれらのファイルへの変更を適用できるため、#1ができることを知っています。
ただし、このUSBドライブは別のコンピューターで使用されるため、_/etc/udev/rules.d/70-persistent-net.rules
_が大量の凝り固まりを構築すると信じているため、#2は私にとってはきれいに見えます。
任意の助けをいただければ幸いです。
私はオプション#1(ethXを必要とするさまざまな設定ファイルを動的に書き換える)に行き着きました。これは簡単なRubyスクリプトで簡単にできました。
動的な書き換えを行うスクリプトがstartup.rb
の場合、startup-wrapper.rb
で実際のスクリプトを呼び出すexec 'Sudo startup.rb'
というラッパーを作成し、startup.rb
がルート権限で実行されるようにします。
次に、gnome-terminal -e /path/to/startup-wrapper.rb
というコマンドを使用して、スタートアップアプリケーションにエントリを作成しました。これにより、起動時にSudo
のパスワードの入力が求められます。