Ви можете скористатися "правильним" методом для зміни MAC-адреси, якщо ви робите це в розширених мережевих налаштуваннях у VirtualBox. Однак тимчасова зміна, як і в іншій відповіді Zuul, може бути найкращою для ваших цілей, оскільки вона змінить MAC, не викликаючи занадто багато додаткових проблем - проте перезавантаження не переживе.
Зміна його у VirtualBox звичайно переживе перезавантаження, але проблема, з якою ви стикаєтеся, є udev
. Це процес, який розглядає обладнання та встановлює це обладнання /dev
(або все, що ще може бути потрібно зробити). Одне з речей, які він робить за замовчуванням, - це намагатися підтримувати стійкі імена для мережевих інтерфейсних карт [nics]. Це тому, що, коли у вас є декілька nics, ви хочете, щоб вони завжди мали одне і те ж ім'я ethX, так що ваша /etc/network/interfaces
конфігурація орієнтується на правильний nic кожного завантажувача. ОС не може розраховувати на те, що вони щоразу перебувають фізично на одному місці - ви можете переміщати їх, наприклад, або деякі системи не повідомляють про свої фізичні з'єднання в тій же послідовності кожного завантаження.
Тому udev
використовується правила стійкості на основі MAC-адреси мережевої карти. Якщо в ньому є запис для eth1 з відомою MAC-адресою, а на картці з’являється інша MAC-адреса, вона призначить інше ім'я пристрою ethX для інтерфейсу.
Щоб протистояти цьому, потрібно просто оновити udev
правила. Редагувати:
vi /etc/udev/rules.d/70-persistent-net.rules
і шукайте рядок із поточним MAC:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Якщо ви зміните тут MAC-адресу на нову, яку ви вибрали у налаштуваннях VirtualBox, вона збереже той самий номер розробника ethX наступного завантаження.
Найкращою послідовністю було б, мабуть, спочатку відредагувати його, потім вимкнути VM, потім відредагувати налаштування VB MAC, а потім завантажити.