複製的 Linux 系統和 /etc/udev/rules.d/70-persistent-net.rules
我設置了一個 Ubuntu 系統並正確配置了它,包括
eth0
在/etc/network/interfaces
. 然後,我對該系統進行了映像並將其複製到一個新系統上。當我第一次啟動系統時,一切都很好,但幾次重新啟動後,我收到了網路配置超時的問候。當我登錄時,我發現它
eth0
不可用。我最初的研究讓我嘗試了幾次,但沒有明顯效果
ifdown -a
。ifup -a
研究最終指向我
/etc/udev/rules.d/70-persistent-net.rules
,在那裡我發現新系統的 MAC 地址創建了 eth1。好主意,但不是我想要發生的。剛剛啟動時,發現
/etc/udev/rules.d/70-persistent-net.rules
現在有六個不同硬體地址的六個條目,我覺得很奇怪,因為只有一個介面。我的問題是:我是否
ifup -a
以某種方式創建了要創建的新 MAC 地址?如果沒有,有什麼想法是怎麼發生的?我更改/etc/udev/rules.d/70-persistent-net.rules
了目前硬體地址的名稱eth0
,它似乎可以正常工作,但我可以確保地址不會在重新啟動時再次更改嗎?
當我複製虛擬機(VM)時,我不時在 CentOS 下遇到同樣的問題。問題源於原始 VM 將條目放入此文件以設置乙太網設備
eth0
。範例 .rules 文件
# 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. # net device () (custom name provided by external tool) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
當您複製第一個虛擬機時,問題就出現了,這會導致在某些虛擬化技術(例如 KVM for one )下創建一個新的 MAC 地址。當複製的 VM 被引導並被視為新的乙太網設備時,會自動檢測到這個新的 MAC 地址
/lib/udev/write_net_rules
,因此將第二個條目添加到上述文件中。SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
我通常
70-persistent-net.rules
在編輯器中打開這個文件,然後簡單地合併這些行,以便將新的 MAC 地址分配給eth0
設備並重新啟動。... # net device () (custom name provided by external tool) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
編輯#1
OP 用以下新資訊跟進了這個問題。
**項目#1:**嗯。這在我的情況下不起作用,因為我正在執行具有與 mac 地址相關的 flex 許可證的軟體。不斷更改地址使所述軟體無用..
@Zobal - 我對 Flex 很熟悉。由於它是一個 VM,您可以更改 VM 的 MAC(在 VM 軟體中 - VirtualBox、KVM 等)。
注意: Flex 是Flexera提供的一種許可技術。它們曾經被稱為 GlobeTrotter Software。該技術允許軟體綁定到物理主機,或者可以從中央伺服器管理許可證作為“令牌”,客戶端可以在一段時間內檢查令牌。許可證通常與主機相關聯,並且該主機通常由您可以使用命令找到的唯一編號標識
hostid
。例如:
$ hostid a8c0c801
**第 2 項:**在我的情況下,它不是虛擬機。我已經將一個物理系統複製到另一個物理系統上。
我對此作出回應:那麼您唯一的選擇是將新系統的 MAC 地址更改為與其他系統的 MAC 地址相同。意識到這2個系統不能存在於同一個網路上,否則會相互衝突。此外,Flex 許可通常不使用 MAC,它們使用可使用命令辨識的數字
hostid
!參考