Khắc phục lỗi khởi động Ubuntu do chờ cấu hình mạng

Khi khởi động hệ thống Ubuntu 18.04.5, thông báo "A start job is running for wait for network to be configured" thường xảy ra do systemd chờ giao diện mạng hoàn tất cấu hình. Dưới đây là các giải pháp hiệu quả:

1. Thiết lập chế độ tùy chọn cho giao diện mạng

Phương pháp tối ưu nhất là đánh dấu giao diện không bắt buộc trong cấu hình Netplan:

sudo nano /etc/netplan/00-config.yaml

Thêm tham số is-optional: true cho giao diện cần bỏ qua:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp-ipv4: yes
      is-optional: true  # Đánh dấu giao diện không bắt buộc
      
    enp0s8:
      addresses: [10.0.0.5/24]
      gateway4: 10.0.0.1

Áp dụng cấu hình:

sudo netplan thử-nghiệm
sudo reboot

2. Điều chỉnh thời gian chờ của dịch vụ systemd

Giảm thời gian chờ mặc định (120 giây) xuống mức hợp lý:

sudo systemctl edit systemd-networkd-wait-online.service

Thêm cấu hình sau vào tập tin:

[Service]
TimeoutStartSec=5s
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --timeout=5

Tải lại cấu hình và khởi động lại:

sudo systemctl daemon-reload
sudo reboot

3. Vô hiệu hóa dịch vụ chờ mạng (trong trường hợp đặc biệt)

Chỉ áp dụng khi hệ thống không phụ thuộc vào mạng từ giai đoạn khởi động:

sudo systemctl mask systemd-networkd-wait-online.service
sudo systemctl unmask systemd-networkd-wait-online.service  # Để khôi phục sau này

Lưu ý: Thao tác này ảnh hưởng đến tất cả dịch vụ phụ thuộc network-online.target.

Phân tích kỹ thuật

Tham số is-optional trong Netplan tương đương với thiết lập RequiredForOnline=no trong systemd-networkd. Khi kích hoạt, hệ thống sẽ:

  • Bỏ qua trạng thái giao diện mạng này khi xác định network-online.target
  • Cho phép tiến trình khởi động tiếp tục ngay cả khi giao diện chưa sẵn sàng
  • Không ảnh hưởng đến việc cấp phát IP sau khi hệ thống đã chạy

Chẩn đoán vấn đề

Kiểm tra thời gian khởi động dịch vụ:

systemd-analyze blame | grep networkd

Xem nhật ký chi tiết:

journalctl -u systemd-networkd --boot -p 3

Kiểm tra trạng thái giao diện mạng:

networkctl status enp0s3

Lựa chọn giải pháp phù hợp

Môi trường Giải pháp khuyến nghị
Máy ảo/VPS Thiết lập is-optional: true cho tất cả giao diện
Máy chủ vật lý Điều chỉnh TimeoutStartSec = 15s
Máy trạm không cần mạng khởi động Mask dịch vụ chờ mạng

Thẻ: netplan systemd-networkd Ubuntu-networking

Đăng vào ngày 5 tháng 6 lúc 02:15