Ubuntu

複製的 Linux 系統和 /etc/udev/rules.d/70-persistent-net.rules

  • January 26, 2015

我設置了一個 Ubuntu 系統並正確配置了它,包括eth0/etc/network/interfaces. 然後,我對該系統進行了映像並將其複製到一個新系統上。

當我第一次啟動系統時,一切都很好,但幾次重新啟動後,我收到了網路配置超時的問候。當我登錄時,我發現它eth0不可用。

我最初的研究讓我嘗試了幾次,但沒有明顯效果ifdown -aifup -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 是Fl​​exera提供的一種許可技術。它們曾經被稱為 GlobeTrotter Software。該技術允許軟體綁定到物理主機,或者可以從中央伺服器管理許可證作為“令牌”,客戶端可以在一段時間內檢查令牌。許可證通常與主機相關聯,並且該主機通常由您可以使用命令找到的唯一編號標識hostid

例如:

$ hostid
a8c0c801

**第 2 項:**在我的情況下,它不是虛擬機。我已經將一個物理系統複製到另一個物理系統上。

我對此作出回應:那麼您唯一的選擇是將新系統的 MAC 地址更改為與其他系統的 MAC 地址相同。意識到這2個系統不能存在於同一個網路上,否則會相互衝突。此外,Flex 許可通常不使用 MAC,它們使用可使用命令辨識的數字hostid

參考

引用自:https://unix.stackexchange.com/questions/110496