このファイルは、/etc/udev/rules.d/70-persistent-net.rules
ファイルが存在しない場合、リブート時にLinuxシステムでudevを使用して自動的に生成されます。しかし、サーバーを再起動せずにコマンドを使用してこのルールファイルを作成する方法を知りたいです。
しばらくの間、Googleが検索した結果、ルールファイルが次のスクリプトによって生成されることがわかりました。
/lib/udev/write_net_rules
ただし、このスクリプトはudevによって開始されると予想され、一部の環境変数が正しく設定されているため、コマンドラインからこのスクリプトを実行できません。手動で起動すると、「$ INTERFACEが見つかりません」というエラーメッセージが表示されます。スクリプトが開始される前に環境変数INTERFACE = eth0を設定しても、「ミスティング無効な一致」というエラーは引き続き印刷されます。 2つのインタフェース(eth0
および)があり、eth1
これら2つのインタフェースのルールファイルを生成したいということは言うまでもありません。
また、udev自体からスクリプトを起動することを望んで、このようなudevイベントをトリガーすることについて考えていましたが、何も変更されませんでした。
udevadm trigger --type=devices --action=change
/etc/udev/rules.d/70-persistent-net.rules
もしそうなら、再起動せずにファイルから永続的なネットワークルールを再生成する方法を知っている人はいますか?
答え1
マニュアルページによると、--action=change
これがデフォルトですudevadm
。
-c, --action=ACTION
Type of event to be triggered. The default value is change.
だから試してみることをお勧めします--action=add
。役に立ちます:
/sbin/udevadm trigger --type=devices --action=add
答え2
Ubuntu Server 16.04LTSには70-pertant-net.rulesは存在しません。
私がしたことは、次のように実行するだけでした。
ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
次に、次のようにファイルを作成します。
sudo vi /etc/systemd/network/10-internet.link
そして以下を追加してください
[Match]
Path=pci-0000:(your device mac address)
[Link]
Name=eth0 (or whatever you want to name it)
:wq
文書を保存
その後、再起動し、/etc/network/interfaces ファイルを調整します。その後、再起動します。
答え3
私も同じ問題がありましたが、まだリストからインターフェースを見ることができることがわかりましたip addr
。私は以下をrootとして使用しました:
# ip addr # to get my mac addresses
# export INTERFACE=eth0; export MATCHADDR="xx:xx:xx:xx:xx:xx"; /lib/udev/write_net_rules
# replace the 00's with the real mac addr
各インターフェイスに対してこの操作を繰り返します。これは私のファイルを「回復」するために使用されます。 (注:単一の呼び出しですべてのインタフェースが一覧表示され、一致するインタフェースの名前変更が追加されるため、単一の呼び出しの後に出力ファイルを確認することをお勧めします。)
オペレーティングシステムと現在のUDEV実装とサポートスクリプトの間には間違いなく違いがあります。これが正常に完了したときにCentOS 6.8を使用していました。
クレジット - 主にこのウェブサイトを参照しました。スクリプトの変更については、以下にいくつかの説明がありますが、環境変数を使用する方がよりきれいであるため、これを好みます。https://access.redhat.com/discussions/1240213