質問:
VM のクローンまたはコピーが発生したときに変更された場合に備えて、ifcfg-eth0 スクリプトの HWADDR 行が起動時に自身で検証/更新されるようにする方法を見つけたいと思います。そのような方法はありますか? CentOS 6 では、ifcfg-eth0 スクリプトから HWADDR 行を削除すると、スクリプトはより動的になりましたが、CentOS 7 では、HWADDR 行なしで ifcfg-eth0 が ifcfg-eno1677776 に戻らないようにする方法をまだ見つけていません。ご協力ありがとうございます!
背景:
私はVMware Workstation経由でCentOS 7.2.1511仮想マシンを実行しています。デフォルトでは、CentOS 7はeth0ネットワークスクリプトの命名規則が変更され、ネットワークスクリプトの名前を使用するように設定されました。cfg-eno1677776 さんまたは似たようなもの。私はソフトウェアを持っています重く依存しているeth0命名規則を変更しました。cfg-eno1677776 さん脚本:
/etc/sysconfig/network-scripts/ifcfg-eno1677776
名前を変更する/etc/sysconfig/network-scripts/ifcfg-eth0
変更中ifcfg-eth0(HWADDRは から取得
/sys/class/net/eno1677776/address
):BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no HWADDR=00:0c:29:d6:d2:65
追加したネット.ifnames=0最後までGRUB_CMDLINE_LINUXファイル内の行
/etc/sysconfig/grub
。再起動して ifconfig を実行します (そして祝いましょう!):
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.176.15.148 netmask 255.255.252.0 broadcast 10.176.15.255 inet6 fe80::20c:29ff:fed6:d265 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d6:d2:65 txqueuelen 1000 (Ethernet) RX packets 2141073 bytes 749959853 (715.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 65237 bytes 35352127 (33.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
起動するたびに、この eth0 インターフェイスはそのまま残ります。ただし、この VM はチーム メンバー間で配布され、最終的には顧客に配信されます。ここで問題が発生します。VMware は、配布用に VM のスナップショットを複製できるという点で優れていますが、これにより VM の MAC アドレスが変更されます。
編集:
grub2-mkconfig -o /boot/grub2/grub.cfg
動作させるには、@larsks が推奨する以下の変更を行った後に実行する必要があります。私の場合は動作しました!
答え1
最も簡単な解決策は、カーネルのコマンドラインで次のオプションを設定して、「予測可能なデバイスの命名」動作を無効にすることです。
biosdevname=0 net.ifnames=0
これを設定すると、システムの最初のイーサネットインターフェースはeth0
、2番目は というeth1
ように名前が付けられます。これは文書化されています。ここ。
これを設定すると、HWADDR
構成ファイルからその行を削除するだけで、すべてが期待どおりに動作するはずです。