2011-09-06 18:56:31 +0000 2011-09-06 18:56:31 +0000
46
46

CentOS 6 / RedHatで新しいネットワークカードを自動検出する方法を教えてください

仮想環境でCentOS 6を使っています。仮想版のCentOSをクローンすると、古いethアダプタが「削除」され、新しいものとネットMACアドレスに置き換えられます。しかし、ifcfg-ethnファイルはまだ存在しています。私は、CentOSが自動的にネットワークアダプタ/ ethファイルを再スキャン&再作成する方法を見つけようとしています。 http://www.centos.org/docs/5/html/Installation_Guide-en-US/s1-s390info-addnetdevice.html

私はGUIでこれを行うための迅速な方法があることを知っているが、我々はサーバーを使用しているので、GUIはこの場合には適用されません。ヘルプをお願いします。

編集しました。@OldWolfさんがKudzuを提案されていますが、KudzuはCentos 5の時点で削除されているので、むしろ避けたいところです。Linuxが初期インストール時に実行する手順があります - 誰かが手動で起動できるように、それが何であるかを把握するのを助けてくれませんか?

回答 (8)

52
52
52
2011-09-08 19:34:54 +0000

CentOS 6では、すべてが udev によって処理されるようになりました。007の中に入って、/etc/udev/rules.dファイルを削除して再起動してください。手前でそれを開くと、元の NIC MACが70-persistent-net.rulesとしてリストアップされていて、新しいものがeth0としてリストアップされているのを見ることができるでしょう。

このファイルを削除すると、起動時に検出プロセスが強制的に再実行され、クローニングプロセスからの荷物、つまり古いNIC NIC MACアドレスが残らないようになります。それは苦痛ですkudzuは過去のバージョンでそれを処理するだけであろう。

5
5
5
2012-11-19 06:44:46 +0000

このツールも使えます(これはGUIツールではなく、TUIツールです)。Text-based User Interface)

[root@localhost ~]# system-config-network-tui

上のコマンドを入力してEnterキーを押すと、この画面が表示されます。

4
4
4
2013-03-13 00:47:09 +0000

/etc/sysconfig/network-scripts/ifcfg-eth0 - HWADDR=行を削除

/etc/udev/rules.d/70-persistent-net.rules - ATTR{address}==から次のカンマまでを削除

これでVMをクローンしてmacアドレスを変更すると、どちらのファイルにもmacアドレスが書き込まれないのでネットワーキングが動作するようになりました。

4
4
4
2012-11-19 06:21:11 +0000

永続ルールファイルを削除:

rm /etc/udev/rules.d/70-persistent-net.rules

ifcfg-eth0 を編集:

nano /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR の行を完全に削除してください (または新しい NIC の MAC アドレスに合わせて変更してください)

システムを再起動:

reboot

再度 NIC を変更した場合は、ステップ 1 と #3 を繰り返してください。

3
3
3
2013-05-21 15:57:29 +0000

CentOS 6 の仮想マシンを大量に作っては削除しているので、VirtualBox のクローン時に eth0 を修正するために Bashfu を書いてみました。

1
1
1
2013-09-01 01:17:52 +0000

私はVmwareではなく、Virshを使ったKVMを使用しています。最初のブート後、私はこのようなスクリプトを作成しました

cat /etc/init.d/manglemac 
#!/bin/bash
#
# manglemac This starts and stops mangle-mac
#
# chkconfig: 2345 11 88
# description: This obtains tha mac of eth0 and writes into ifcfg

mac=$(grep -H . /sys/class/net/*/address | grep eth0 | cut -d ':' -f2-10)
match_mac=$(grep $mac /etc/sysconfig/network-scripts/ifcfg-eth0)

if [-z "$match_mac"];
then
   echo HWADDR=$mac >> /etc/sysconfig/network-scripts/ifcfg-eth0
fi

と init に追加しました

chkconfig --add manglemac

HWADDR または UUID の /etc/sysconfig/network-scripts/ifcfg-eth0 にすべての参照を削除し、また /etc/udev/rules.d/70-persistent-net.rules から udev の規則を削除しました。全て正常に動作しています。私が作ったスクリプトは非常にシンプルですが、正常に動作しますが、ネットワーク(eth0のみ)の設定についていくつかの仮定をしています。

1
1
1
2011-09-06 21:04:42 +0000

もし mac アドレスだけが問題なら、以下のように実行してみてください。

TEST=`ifconfig | grep eth | awk '{ print $5}'`; sed "s/HWADDR.*/HWADDR\=$TEST/g" ifcfg-eth0 > TMP; mv TMP ifcfg-eth0

HWADDR エントリを更新するには

Edit: 仮想ハードウェアの変更が問題のようなので、以下を試してみてください。(未テストで ここ から参照 )

/etc/sysconfig/hwconf を編集して、以前の NIC への参照をすべて削除し、kudzu を再起動して新しいハードウェアが検出されるかどうかを確認してください。再起動が必要になるかもしれません。

0
0
0
2015-05-01 00:14:57 +0000

複数のNICを扱っていて、上記のようなものは何も効かなかったので(VMware Fusion 7/VMware 6以下)、スクリプトを書いてみました。tarballはこちらです。

付属のREADMEはこちら:

  • このtarballと関連スクリプトは、最近クローンしたVMware CentOS 6以下のマシンのMACアドレスを変更します(systemdは使用しません)。 )
  • クローンするマシンで必要なのは一度だけです:

問題点:

  • 理由はわかりませんが、すべてのNICを認識させるためにネットワークを再起動する必要があることがあります:

  • これは私にとって問題ではありませんが、スクリプトはlshwifcfg-eth?と同じ順番でNICを返すことに依存しています

  • これはあなたのNICデバイスがe1000であると仮定しています。VMware標準ですか?

  • 万が一うまくいかず、たくさんのNICを持つマシンをたくさん使っている場合には、ifcfg-eth?ファイルの番号を入れ替えて、lshwが返すものと一致するようにした方がいいかもしれません。

  • 最初のスタートアップの後、/usr/bin/change_mac_address.pl/usr/bin/change_mac_address.pl.old に移動されます - これは再起動のたびに実行されないようにします。

関連する質問

3
13
5
11
9