ステージングサーバーのハードドライブを別の互換性のあるハードウェア(64ビット、同じプロセッサ「世代」、ノートブック - >デスクトップ)構成に移動した後、ネットワークは起動しません。
具体的には:
ifconfig
のみ表示lo
sudo service networking restart
示す:
-
stop: unknown instance:
networking stop/waiting
明らかに、システムおよび/またはカーネルの一部が新しいハードウェア設定に合わせて誤って設定されています。
何が間違っているかを検出してアクティブにするにはどうすればよいですかeth0
?
問題のシステムはUbuntu 14.04 Serverディストリビューションですが、問題が普及していると思われます。
答え1
Linuxシステムを複製する際の注意点の1つは、永続ネットワークデバイスのudevの命名規則です。
udevはこのファイルを作成して更新し、/etc/udev/rules.d/70-persistent-net.rules
MACアドレスをインターフェイス名にマッピングできます。これはスクリプトを通して行われます/lib/udev/write_net_rules
。各MACアドレス(一部例外あり、参考資料を参照/lib/udev/rules.d/75-persistent-net-generator.rules
)は、デフォルトでethというインターフェイスにマッピングされます。N、どこN0から始めて上がります。一例:
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:de:ad:be:ef",ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
マッピングを変更するには、項目を編集していいえこのファイルから自動的に削除されます。インターフェイス名は次のとおりです。安定追加のNICを追加したり、不要なNICを削除したりしても同様です。一方、発見したように、レプリケーションを介してこのファイルを別のシステムにコピーすると、新しいハードウェアへのインターフェイスは次のようになります。次へ追加このファイルの場合、eth1、eth2などの最初の使用可能なインターフェイス名を使用すると、eth0は新しいシステムに存在しないMACアドレスを参照します。
ディスクを移行した場合は、古いハードウェアインターフェイスを含む行をコメントアウトし、新しいハードウェアによって追加されたエラーエントリを目的のインターフェイス名で編集(または削除)してから再起動できます。最初は、ディスクを以前のハードウェアに戻すときに簡単に復元できるようにコメントを提案しましたが、@Guido van Steenはより簡単なソリューションを提供しました。ファイルを70-persistent-net.rules
別のものに移動します(ただし、新しい名前の下にある場合は注意してください)。新しい名前で)同じディレクトリに! )再起動してください。
答え2
@mark-plotnickのコメントによると:新しいハードウェアはMacアドレスが異なります。以前のMacアドレスはまだにハードコードされています/etc/udev/rules.d/70-persistent-net.rules
。ファイルの名前を変更するだけです。この場合、再起動すると、新しいMACアドレスを使用してファイルが再生成されます。