web-dev-qa-db-ja.com

MACを自動的に変更する16.04

そのため、eth0がsystemdで他の何か(enpXsX)と呼ばれるという一般的な問題に遭遇しました。そこで、/ etc/udev/rules.d/10-network.rulesファイルを作成してみました。それはうまく機能します。問題は、このサーバーの正確なコピーを取得し、SDカードを使用して、テストのために定期的に複数の物理サーバー間で移動する必要があることです。 10-network.rulesはMACアドレスを必要とするため、カードを新しいデバイスに接続するたびに変更され続けます。自動的に変更するスクリプトを作成し、起動時にサービス(changeMAC.service)として実行します。

このサービスは正常に実行されます。残念ながら、networking.serviceを開始する前にMACアドレスを変更しても、ネットワークは常に失敗します。動作させるには、再起動する必要があります。最初の起動時に正しく起動するために必要です。

Systemd-analyzeプロットを使用すると、changeMAC.serviceがnetworking.serviceの前に実際に完了していることがわかります。問題はもっと早く開始する必要があるかもしれないと思った。ただし、現在1枚のSDカードがあり、一度に起動することができます。しかし、そのイメージを取得してVirtualBoxで実行するためにコンピューターに配置すると、再起動が必要になります。 SDカードとvhdの違いを見つけることができません。

また、ifup、ifdown、/ etc/init.d/networking restart、systemctl start networking.serviceを使用して、ネットワークに状況を再評価させ、10-network.rulesを参照することも試みました。最初の3つはエラーを生成して実行されず、最後の3つは実行されますが、networking.serviceは再び起動に失敗します。

だから、10-network.rulesを必要とする人がそれを取得できるようにchangeMAC.serviceを時間内に実行する方法を知る必要があります。システム。

2
khm

GRUB_CMDLINE_LINUX_DEFAULT/etc/default/grubにオプションを追加して、予測名をオフにすることができます。

GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0" 

その行に他のオプションを保持できます。これにより、MACアドレスを設定した10-network.rulesファイルを心配する必要がなくなります。

ホストを再起動する前に、その行を変更した後、必ずgrubを更新してください。

Sudo update-grub

お役に立てれば!

2
Terrance