Không thể bắt đầu Nâng giao diện mạng sau khi nâng cấp lên 16.04


28

Tôi vừa nâng cấp một máy chủ ảo 14.04 lên 16.04. Sau khi khởi động lại VM tôi thấy lỗi sau:

[FAILED] Failed to start Raise network interfaces.
 See 'systemctl status networking.service' for details

Sau khi đăng nhập, tôi có thể chạy lệnh được đề cập và nhận đầu ra sau (hình ảnh vì tôi không thể kết nối):

nhập mô tả hình ảnh ở đây

Cấu hình trong có /etc/network/interfacesvẻ ổn - có tính năng eth0 được cấu hình thủ công (không sử dụng dhcp tại đây)

Điều làm tôi băn khoăn là ifconfig -adanh sách đó

  • ske160
  • lo

Nơi tôi mong đợi

  • eth0
  • lo

Đang cố gắng nâng cấp thiết bị eth0 qua

sudo ifup -v eth0 

đầu ra:

...
Cannot find device "eth0"
Failed to bring up eth0.

Bản thân thiết bị mạng có dây ảo vẫn được cấu hình trong chính VM như trước đây.

ip linkcũng hiển thị loens160- nơi ens160có địa chỉ mac được cấu hình trong vmware cho thiết bị mạng ảo được định cấu hình duy nhất.

CẬP NHẬT

Tôi có thể giải quyết vấn đề nếu tôi thay đổi tất cả các tham chiếu của eth0 /etc/network/interfacesthành ske160.

NHƯNG - điều này cảm thấy sai đối với tôi vì một số lý do:

  1. Tôi muốn hiểu vấn đề này
  2. Tôi muốn gắn bó với eth0 thay vì ske160

Vì vậy, xin vui lòng ai đó có thể giải thích sự thay đổi này, điều này đã không xảy ra với một số máy 14.04 khác trên cùng một máy chủ mà tôi cũng đã nâng cấp lên 16.04.


1
Có thể được nhân đôi thành: askubfox.com/questions/704361/ trên
dufte

Một mô tả tương tự về bản sửa lỗi có ở đây: Askubfox.com/a/830163/543586
theINtoy

Câu trả lời:


15

Lý do

Vấn đề được gây ra bởi Dự đoán-Mạng-Giao diện-Tên từ systemd / udev.

Giải pháp có thể

Theo nguồn này, bạn có thể:

  • Bạn vô hiệu hóa việc gán tên cố định, để tên hạt nhân không thể đoán trước được sử dụng lại. Đối với điều này, chỉ cần che giấu tệp quy tắc của udev cho chính sách mặc định: ln -s / dev / null /etc/udev/rules.d/80-net-setup-link.rules
  • Bạn tạo sơ đồ đặt tên thủ công của riêng bạn, ví dụ bằng cách đặt tên giao diện của bạn là "internet0", "dmz0" hoặc "lan0". Để tạo các tệp .link của riêng bạn trong / etc / systemd / network /, hãy chọn một tên rõ ràng hoặc sơ đồ đặt tên tốt hơn cho một, một số hoặc tất cả các giao diện của bạn. Xem systemd.link (5) để biết thêm thông tin.
  • Bạn truyền net.ifnames = 0 trên dòng lệnh kernel

Giải pháp ứng dụng

Tôi đã tạo ra một tập tin mới 10-rename-network.rulestrong /etc/udev/rules.d/và bổ sung các nội dung sau đây với nó:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="ff:ff:ff:ff:ff:ff", NAME="eth0"

Ở đâu

  • eth0 = tên giao diện mạng mong muốn, được sử dụng trong /etc/network/interfaces
  • ff:ff:ff:ff:ff:ff = địa chỉ mac phần cứng của thiết bị mạng

Tôi khuyên bạn nên khởi động lại sau khi hoàn thành việc này để đảm bảo thay đổi là dính.


Tôi phát hiện ra rằng tôi phải chạy update-initramfs -uđể thay đổi có hiệu lực
Aneel

Trên hệ thống Debian của tôi, tệp là '/etc/udev/rules.d/70-persistent-net.rules'
jeremiah

6

Giải quyết bằng cách thay đổi tập tin /etc/network/interfaces.d/setup từ:

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp

đến:

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet dhcp

1

Trong trường hợp của tôi, vấn đề này liên quan đến việc cố gắng đưa lên cây cầu của tôi br0. Tôi đã quên làm điều này:

sudo apt-get install bridge-utils

trước đây và vì vậy bộ điều hợp của tôi không thể bắt đầu.


2
Điều này khác với vấn đề của OP. Tôi không chắc câu trả lời này thuộc về câu hỏi này!
Zanna

0

Bạn có thể muốn xóa / sửa đổi bộ đệm udev cho các tên giao diện mạng liên tục / nhất quán, nằm ở đây: /etc/udev/rules.d/70-persistent-net.rules

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.