Làm cách nào để tôi có thể thay đổi thiết bị mạng mặc định của bộ phận tiếp theo và thành một bộ phận cũ trên ethora 19 trên Fedora 19?


22

Tôi vừa cài đặt Fedora 19 trên máy trạm VMware 9. Thiết bị mạng mặc định là "ske33" thay vì "eth0" trên RHEL.

Lý do tôi phải sử dụng "eth0" là thành phần cấp phép của một trong các sản phẩm của chúng tôi phải được liên kết với "eth0".

Có một số bài viết thảo luận về các vấn đề tương tự, hầu hết trong số đó là cho hệ điều hành cũ. Tôi chưa tìm thấy cái nào phù hợp với hoàn cảnh của mình.


Fedora 19 khác biệt đáng kể so với RHEL 5.5 vì trong câu hỏi này được đánh dấu trùng lặp và câu trả lời không giống nhau.
mattdm

Câu trả lời:


31

Cách dễ nhất để khôi phục lại cách cũ Kernel / module / udev đổi tên giao diện ethernet của bạn là cung cấp các tham số kernel này cho Fedora 19 :

  1. net.ifnames = 0
  2. tên sinh học = 0

Để làm như vậy, hãy làm theo các bước sau:

  1. Chỉnh sửa / etc / default / grub
  2. Ở cuối dòng GRUB_CMDLINE_LINUX nối thêm " net.ifnames = 0 biosdevname = 0 "
  3. Lưu các tập tin
  4. Nhập " grub2-mkconfig -o /boot/grub2/grub.cfg "
  5. Nhập " khởi động lại "

Nếu bạn không cung cấp các tham số này trong quá trình cài đặt, có thể bạn sẽ cần điều chỉnh và / hoặc đổi tên các tệp giao diện tại / etc / sysconfig / network-scripts / ifcfg- * .

Lên đến Fedora 18 , chỉ cần biosdevname = 0 là đủ.

Ví dụ, trong một máy nhất định, trong một nghiên cứu toàn diện, tôi đã nhận được:

-Không có tham số: NIC được xác định là " enp5s2 ".
-Parameter biosdevname = 0: NIC được xác định là " enp5s2 ".
-Parameter net.ifnames = 0: NIC được xác định là " em1 ".
-Parameter net.ifnames = 0 AND biosdevname = 0: NIC được xác định là " eth0 ".


Cảm ơn bạn rất nhiều cho các bước chi tiết! Mọi thứ MathWorks cung cấp cho tôi đều dành cho các phiên bản cũ hơn của Fedora.
Tiến sĩ Watson

@ dr-watson: Lên đến Fedora 14, ethX là cách đặt tên mặc định cho giao diện ethernet. Trong Fedora 15, việc đặt tên thiết bị mạng nhất quán đã được triển khai. Từ Fedora 15 đến 18, chỉ cần biosdevname = 0 là đủ để giữ tên ethX. Không có chi.
Guilsson

3
Giải pháp này cũng hoạt động trên Fedora 20. Cảm ơn.
heuristicus

Cũng làm việc trên Fedora 21
Eric Grunzke

Ubuntu 14.04 cũng vậy.
sjas

9

Bạn có thể làm điều này bằng cách sử dụng quy tắc udev, như vậy:

cat > /etc/udev/rules.d/99-rename-to-eth0.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$(cat /sys/class/net/ens33/address)", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF

Cảm ơn ví dụ. Đối với những người khác, đáng lưu ý rằng giá trị /sys/class/net/ens33có thể khác nhau tùy thuộc vào các giá trị được trả về bởi bios và được tìm thấy trong đầu ra của lspci -vv | grep -A25 Ethernet. Ngoài ra, nếu mục đích là sử dụng eth0làm tên thì có thể phù hợp hơn khi chỉ định các cờ khởi động hạt nhân để vô hiệu hóa việc đặt tên "có thể dự đoán" của thiết bị.
Đánh dấu Edington

7

Trong Fedora 20, mọi thứ dường như đã thay đổi hơn một chút.

1) đối số kernel grub
Có, cả "net.ifnames = 0" và "bioevame = 0" dường như cần thiết.

2) / etc / sysconfig / network-scripts / ifcfg-ethX
Vâng, những điều này cũng cần thiết.

3) /etc/udev/rules.d/60-net.rules
Nếu bạn có nhiều giao diện và muốn kiểm soát việc đặt tên cho từng thiết bị thay vì để kernel thực hiện theo cách riêng của mình, /etc/udev/rules.d/60 -net.rules dường như cần thiết để ghi đè /usr/lib/udev/rules.d/60-net.rules như sau.

# PCI device 0x1011:0x0019 (tulip) {SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:f0:4c:f5:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:a4:4c:b5:26:48", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

4) yum remove biosdevnamedường như không cần thiết.


1
Cảm ơn đã phá vỡ các yếu tố khác nhau. Có vẻ như bạn có một lỗi đánh máy ở điểm số 1, nên là "tên sinh học" chứ không phải là "tên sinh học".
Đánh dấu Edington

2

Điều này khác ở Fedora 19 so với các phiên bản trước. Có hai điều cần giải quyết:

  1. Xóa tên miền sinh học nếu nó được cài đặt. ( yum remove biosdevnamehoặc đặt -biosdevnametrong khởi động của bạn.
  2. Vô hiệu hóa quy tắc udev: ln -s /dev/null /etc/udev/rules.d/80-net-name-slot.rules

Thông tin thêm có thể được tìm thấy tại http://fedoraproject.org/wiki/Features/SystemdPredictableNetworkInterfaceNames


2

Mặc dù câu trả lời được chấp nhận không cung cấp giải pháp hiệu quả, nhưng nó không giải thích tại sao ens33nó được sử dụng. Các liên kết bên dưới cung cấp thông tin cơ bản về lý do tại sao thiết bị mạng được đặt tên khác ngoài eth0và cách đặt tên trong các biến thể của RHEL 7:

Cũng đáng lưu ý rằng các giá trị như "33" xuất hiện ens33đến từ giá trị khe cắm bộ điều hợp PCI được BIOS trả về. Sử dụng lệnh này để xem những giá trị nào mà hệ thống của bạn đã liệt kê cho "Khe vật lý":

lspci -vv | grep -A20 Ethernet

Thông tin bổ sung về phần "đảm bảo" của tên có thể được tìm thấy trong mã nguồn udev .


1

Đối với Fedora-24:

  1. Chỉnh sửa /etc/default/grub

  2. Ở cuối GRUB_CMDLINE_LINUXdòng nối thêmnet.ifnames=0 biosdevname=0

  3. Lưu các tập tin

  4. Kiểu

    grub2-mkconfig -o /boot/grub2/grub.cfg"
    

    hoặc loại

    grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
    
  5. Kiểu reboot


Tại sao thiết bị mạng biến mất hoàn toàn khỏi hệ thống nếu tôi áp dụng phương pháp này cho Fedora 26? ifconfigchỉ trả lại lovirbr0, nhưng ban đầu enp4s0không còn ở đó.
ajeh

Để tự trả lời: cần phải cẩn thận để thay đổi tất cả các tập lệnh mạng được sử dụng với ethNviệc đặt tên để sử dụng quy ước đó. Tôi đã để lại enp4s0trong một kịch bản.
ajeh
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.