【Ubuntu 24.04】起動が遅い!systemd-networkd-wait-onlineの待機時間を消す方法

公開日:

この記事では Ubuntu Server 24.04 LTS にデスクトップ環境を導入した後に発生する、起動時の長い待機時間(systemd-networkd-wait-online.service)を解消する方法を解説します。

起動遅延の解消ガイド

はじめに

Ubuntu Serverにデスクトップ環境(GUI)をインストールすると、起動時に以下のメッセージが表示され、数分間待たされることがあります。

A start job is running for Wait for Network to be Configured

これは不具合ではなく、「IPアドレスが確定するまで起動を待つ」というサーバー用の設定が、デスクトップ化しても残っているために発生します。

検証環境

本記事は以下のような環境で動作確認を行なっております。

OSアーキテクチャ稼働環境詳細(ハード/ソフト)
Ubuntu 24.04aarch64仮想環境UTM 4.7 / Mac mini M4 Pro

対処法1:Netplan設定の修正(推奨)

最も安全で正しい解決策は、ネットワーク設定ファイル(Netplan)に「このインターフェースの接続完了を待たなくて良い」と明記することです。

  1. STEP

    設定ファイル名を確認

    /etc/netplan/ ディレクトリ内のファイルを確認します。

    Terminal window
    ls /etc/netplan/
    # 例: 50-cloud-init.yaml または 00-installer-config.yaml
  2. STEP

    ファイルの編集

    見つけたファイルをエディタで開きます。

    Terminal window
    sudo nano /etc/netplan/50-cloud-init.yaml
  3. STEP

    optional: true の追記

    対象のインターフェース(例: enp1s0eth0)のブロック内に、optional: true を追加します。 ※インデント(字下げ)の位置を正確に合わせてください。

    /etc/netplan/50-cloud-init.yaml
    network:
    ethernets:
    enp1s0: # 環境によって名前は異なります
    dhcp4: true
    optional: true # ★この行を追加
    version: 2
  4. STEP

    設定の適用

    保存してエディタを終了し、以下のコマンドで適用します。

    Terminal window
    sudo netplan apply

    これで次回の起動時から待機時間がなくなるはずです。

対処法2:systemd-networkdの無効化(強力)

対処法1でも直らない場合、あるいはサーバー用のネットワーク管理機能(systemd-networkd)自体が不要な場合(デスクトップ用のNetworkManagerのみで管理したい場合)は、サービスごと停止します。

  1. STEP

    サービスの停止と無効化

    Terminal window
    # サービスを停止
    sudo systemctl stop systemd-networkd
    sudo systemctl disable systemd-networkd
  2. STEP

    待機サービスのマスク

    起動をブロックしている待機サービスを強制的に無効化(マスク)します。

    Terminal window
    sudo systemctl disable systemd-networkd-wait-online.service
    sudo systemctl mask systemd-networkd-wait-online.service

動作確認

再起動して、スムーズにログイン画面が表示されるか確認します。

Terminal window
sudo reboot

技術的背景:なぜ起きるのか?

この問題は、Ubuntuにおける「サーバー」と「デスクトップ」の設計思想の違いによるものです。

サーバー (systemd-networkd)デスクトップ (NetworkManager)
起動時の挙動IP確定までOS起動をブロックするネットワーク未接続でも画面を出す
理由起動直後からSSHやWeb接続が必要だからユーザーがログイン後にWi-Fiに繋ぐから

Ubuntu Serverに後からGUIを入れると、この2つの仕組みが同居してしまいます。 結果として、GUIを使いたいのに「サーバーとしての責務(IP確定待ち)」を果たそうとして、起動がブロックされていたのです。

今回行った設定は、「このインターフェースはサーバー的に待たなくて良い(optional)」と伝えるか、または「サーバー管理機能を止める」という対処になります。

まとめ

  • 推奨: Netplanに optional: true を追記する。
  • 代替: systemd-networkd-wait-online サービスを mask する。

これでストレスなくデスクトップ環境を利用できるようになります。

関連記事