Tại sao trình quản lý mạng không khởi động khi khởi động?


10

Tôi nghĩ điều này đã bắt đầu xảy ra vài tháng trước khi tôi nâng cấp từ 10.04 lên 12.04.

Bất cứ khi nào tôi khởi động lại, trình quản lý mạng không khởi động. Tôi phải tự chạy sudo start network-manager, và sau đó mọi thứ hoạt động tốt.

Những điều tôi đã thử (khởi động lại sau mỗi lần sửa):

  • Đã xác minh rằng tất cả các liên kết /etc/rc*.d/*network-manager tồn tại theo cách họ nên.
  • Do tập tin cấu hình khởi động của nhà quản lý mạng đề cập đến local-filesystemsvà fstab của tôi có tham chiếu đến ổ cứng USB không được kết nối, tôi đã nhận xét dòng đó ra khỏi fstab.
  • sudo dpkg-reconfigure network-manager và sau đó sudo apt-get install --reinstall network-manager
  • Nhìn vào syslog cho các gợi ý, không thấy bất cứ điều gì nhảy ra.

Tôi không nghĩ rằng tôi đã sửa đổi /etc/init/network-manager.conf, nhưng đây là để tham khảo:

# network-manager - network connection manager
#
# The Network Manager daemon manages the system's network connections,
# automatically switching between the best available.

description "network connection manager"

start on (local-filesystems
      and started dbus
      and static-network-up)
stop on stopping dbus

expect fork
respawn

script
    # set $LANG so that messages appearing on the GUI will be translated. See LP: 875017
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec NetworkManager
end script

Câu trả lời:


15

Phần 'bắt đầu' cho bạn biết những sự kiện nào cần được phát ra trước khi bắt đầu sẽ bắt đầu quản lý mạng.

Trong trường hợp này là:

  • hệ thống tập tin cục bộ
  • xe buýt
  • mạng tĩnh

Odds là hai cái đầu tiên đã được phát ra nếu bạn đã khởi động máy tính để bàn.

mạng tĩnh được phát ra bởi /etc/network/if-up.d/upstart script, đặc biệt, sự kiện sẽ không được phát ra trừ khi mọi giao diện được định cấu hình là 'tự động' /etc/network/interfacesđược bật lên.

Trong trường hợp của tôi, tôi đã có một mục còn lại cho eth0 /etc/network/interfacesđược cấu hình để sử dụng DHCP, nhưng vì không có ethernet nào được cắm vào eth0 DHCP không bao giờ có thể thành công.

Bạn có thể yêu cầu khởi động để phát ra các sự kiện và có thể sử dụng điều này để kiểm tra xem đó có phải là sự kiện kết nối mạng tĩnh không.

  • Khởi động lại máy tính của bạn và không khởi động trình quản lý mạng
  • man initctl(bạn cần chạy lệnh emit bằng sudo để chạy man initctltrước để xác minh các lệnh được đăng trên internet)
  • sudo initctl emit static-network-up(bạn có thể cần Ctrl+ Ccái này sau một thời gian)
  • initctl status network-manager (để kiểm tra nếu nó bắt đầu)

Nếu điều này giải quyết vấn đề của bạn /etc/network/interfaces, hãy bình luận mọi thứ khác ngoài:

tự động lo
iface lo inet loopback

Sau đó khởi động lại và hy vọng trình quản lý mạng sẽ bắt đầu như mong đợi.


Bạn đã chết, đây là hành vi ngu ngốc ngu ngốc từ NetworkManager quyết định không khởi động vì một cái gì đó khác ngoài lotệp đó, ngay cả khi nó khiến WIFI hoàn toàn không được định cấu hình!
Forbesmyester

làm việc cho tôi, khá kỳ diệu: P
boh

5

Trên Arch Linux của tôi, tôi cần chạy lệnh sau và bây giờ NetworkManagersẽ tự động khởi động:

systemctl enable NetworkManager

Điều này cho phép NetworkManagerchạy khi khởi động. Đây là những gì tôi hiểu.


Cảm ơn, điều này đã giải quyết vấn đề của tôi. Đã thất bại sau khi cập nhật + sự cố trước khi khởi động lại. Mint 19.1
Toni Homedes i Saun

4

Có cùng một vấn đề nhưng không có giải pháp nào được đề xuất (bao gồm một số từ các diễn đàn khác).

Dù sao, sau khi đọc câu trả lời của Gordon , tôi chỉ cần xóa and static-network-updòng từ /etc/init/network-manager.conf. Nó đã làm việc.


Tôi đoán vấn đề ở đây là mạng tĩnh nên bị loại bỏ, nhưng không phải. Bạn có thấy thông báo khởi động "đang chờ cấu hình mạng" không?
Andy

@Andy, Nếu anh ấy không dây, anh ấy không có giao diện tĩnh. Nếu anh ta có auth eth0trong các giao diện của mình, nó sẽ đợi trong vài phút, thất bại và không bao giờ kích hoạt sự kiện.
Cerin

Tôi đoán ý bạn là auto eth0gì? Trong khi chờ vài phút, nó sẽ báo "chờ cấu hình mạng", đó là lý do tôi hỏi.
Andy

2

Tôi gặp vấn đề tương tự sau khi chuyển thinkpad của mình trong khi sử dụng lại đĩa cũ. Nó vẫn nhớ các địa chỉ MAC cũ. Tôi đã phải xóa chúng theo cách thủ công trong /etc/udev/rules.d/70-persistent-net.rules đã khắc phục sự cố cho tôi.


0

Tương tự ở đây vào ngày 12.04 - Tôi đã làm:

sudo -s
mv /etc/udev/rules.d/70-persistent-net.rules ~/
touch /etc/udev/rules.d/70-persistent-net.rules
reboot

Đã sửa!

Bạn cũng có thể chỉnh sửa tệp đó theo cách thủ công và sửa địa chỉ mac ...


0

Từ READMEtrên /etc/udev/rules.d:

Các tệp trong thư mục này được đọc bởi udev (7) và được sử dụng khi các sự kiện được thực hiện bởi kernel. Daemon udev xem thư mục này có inotify để các thay đổi cho các tệp này được tự động chọn , vì lý do này, chúng phải là các tệp và không phải là liên kết đến một vị trí khác như trong trường hợp trong Debian.

thêm nữa:

Viết quy tắc của riêng bạn trong thư mục này gán tên, liên kết tượng trưng, ​​quyền, v.v. mà bạn muốn. Chọn một số cao hơn các quy tắc bạn muốn ghi đè và số của bạn sẽ được sử dụng.

vì vậy xin vui lòng, đừng , như được mô tả trong câu trả lời @epek , sao chép / dán tệp, mà chỉ cần thêm một tệp khác ở đó với số nguyên cao hơn ở đầu tên tệp. Ví dụ

// Ubuntu core:
70-persistent-net.rules
// Custom overrides and/or additions:
80-persistent-net.rules

0

đối với Ubuntu 14.04 đã có "ứng dụng khởi động" nhấn tại nhà, hãy thêm add-cmd-sudo dịch vụ quản lý mạng khởi động lại commant- - [công việc của nó chỉ cài đặt mạng hợp lệ như ips, dns, gateway, v.v.]


0

Một cách giải quyết dễ dàng là chỉnh sửa /etc/rc.local để khởi động NetworkManager mỗi khi bạn khởi động máy tính. Điều này không thực sự giải quyết vấn đề gốc, nhưng nó làm cho mọi thứ trở nên đơn giản và đơn giản đối với tôi.

Đầu tiên, thực hiện lệnh này:

sudo vim /etc/rc.local

Sau đó, nội dung sẽ trông tương tự như thế này:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Sleeping a little might be necessary to let it catch up the boot. 
#However, for me, this sleep was a useless overhead.
#sleep 3 
service network-manager restart

exit 0
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.