システムを停止後にNICを交換する手順を記載します。複数のNICを交換したい場合は、一度に交換せずに1枚ずつ交換してください。交換したNICごとに、交換手順を実施してください。
NICのインタフェース名を収集します。
/sys/class/netディレクトリから、インタフェース名を収集します。
# cd /sys/class/net # ls eth0 eth1 lo
NICとMACアドレスの対応を確認します。
手順1.で収集したすべてのインタフェース名に対応するMACアドレスを確認します。
# cat eth0/address <MACアドレス>
NICとバスアドレスの対応を確認します。
手順1.で収集したすべてのインタフェース名に対応するNICのバスアドレスを確認します。
# ls -l eth0/device lrwxrwxrwx 1 root root 0 Apr 9 09:17 eth0/device -> ../../../0000:01:06.0
コマンド出力結果で表示されるシンボリックリンク先ファイルの最下位層のファイル名(実体はディレクトリ)が、バスアドレスです。
バスアドレスは、次の情報で構成されているデバイスを識別するためのアドレス情報です。
[<セグメント番号>:]<バス番号>:<スロット番号>.<ファンクション番号>
セグメント番号は、機種によっては表示されないため、バス番号の一部として取り扱います。
手順1.~手順3.で収集した情報から、NICのハードウェア情報管理表を作成します。
インタフェース名 | MACアドレス | バスアドレス |
---|---|---|
eth0 | <MACアドレス> | <バス番号>:<スロット番号>.<ファンクション番号> |
… | … | … |
udevルールファイルを編集し、交換するNICの定義行をコメント行にするか、または削除します。
# vi /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. ・・ # PCI device 0xXXXX:0xXXXX (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", \
ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="ethX"
行末の¥は、改行しないことを表します。
システムをシャットダウンします。
# shutdown -h now
NICを交換します。
シングルユーザモードでシステムを起動します。
OSの設定ファイルを更新します。
9-1. 再度、手順1.~手順4.を実施し、NIC交換後のハードウェア情報管理表を作成します。
9-2. NIC交換前後のハードウェア情報管理表を比較して、MACアドレスが一致しないNICを抽出し、交換したNICのポートを特定します。
9-3. 手順9-2.で確認したMACアドレスが一致しないNICのポートに対して、「インタフェース名-バスアドレス」の対応状況を比較します。
交換前後で「インタフェース名-バスアドレス」の対応が一致している場合
インタフェース名の入れ替わりは発生していません。この場合、NIC交換後のハードウェア情報管理表にあるMACアドレスをインタフェース設定ファイルに設定します。
交換前後で「インタフェース名-バスアドレス」の対応に不一致があった場合
インタフェース名の入れ替わりが発生していますので、次の対処を実施します。
対象とするNICのポートの交換前バスアドレスを確認します。
確認したバスアドレスを交換後のハードウェア情報管理表から探します。
バスアドレスに対応するMACアドレスを取得し、インタフェース設定ファイルを更新します。
udevルールファイルの該当するインタフェース名定義行のMACアドレスを修正します。
交換前のNICのポートに対応するインタフェース定義行がudevルールファイルに残った状態の場合、交換前のインタフェース名定義行を削除してください。また、新しいMACアドレスに対応するインタフェース名定義行が追加されています。新しいインタフェース名定義行のインタフェース名を意図したインタフェース名に修正してください。
注意
複数のポートを持つNICの場合、すべてのポートに対応するインタフェース設定ファイルの編集が必要です。
手順9-3.を繰り返してください。
udevルールファイルを確認します。
udevルールファイルのMACアドレスおよびインタフェース名が、インタフェース設定ファイルの内容と一致していることを確認します。
システムをリブートします。
# shutdown -r now
NICのハードウェア情報管理表を更新します。
手順4.で作成したNICのハードウェア情報管理表のMACアドレスを更新します。