Ubuntu 16.04で起動を高速化するために必要なことを理解しようとしています。 dmesgを実行し、出力を保存しました here 。約10秒後にはすべてうまくいかないようです。
Systemdで最も時間がかかっているものを調べることができます。
systemd-analyze blame
スワップスペースの/ etc/fstabのUUIDを編集すると(Sudo blkid
の出力と一致するように)チャームのように機能しました。
注:その後、/etc/crypttab
ファイルにスワップエントリがある場合、UUIDまたはパス(つまり、UUID = somethingまたは/ path/to/swap)。
私のSSDでは、起動が2分から10秒未満に短縮されました。
問題は、この問題が始まったときに、パーティションをめちゃくちゃにすることなく、14.04から16.04に通常のアップグレードを行っただけです。明らかに、アップグレード手順にはいくつかの問題があります。
アップグレード後に起動時間が長くなるという同様の問題が発生しました。
問題は何でしたか?スワップ領域を削除したため、/ etc/fstabファイルと新しいファイルシステムに競合がありました。ブートローダーは、それを見つけるために約1分30秒待機しました。
問題の解決方法 Sudo blkidを実行する
/ etc/fstabファイルを開き、uuidと一致するパーティションを比較します。不一致がある場合は、それを変更して再起動します。
これは回避策ですが、これによりブート時間が大幅に短縮されました(1分24秒から16秒に)。
Sudo vim /etc/systemd/system.conf
これらの2つのパラメーターのコメントを解除し、必要なタイムアウトを設定します。
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
注:ハードウェアのニーズに合わせてこれらの値を最適化してください。5〜60秒。
here これらのパラメーターは、ユニットの開始と停止のデフォルトのタイムアウト、およびユニットの自動再起動間のデフォルトのスリープ時間を、TimeoutStartSec=
、TimeoutStopSec=
、およびRestartSec=
(サービス。ユニットごとの設定の詳細については、systemd.service(5)を参照してください。
非サービスユニットの場合、DefaultTimeoutStartSec=
はデフォルトのTimeoutSec= value
を設定します。 DefaultTimeoutStartSec=
およびDefaultTimeoutStopSec=
のデフォルトは90です。 DefaultRestartSec=
のデフォルトは100ミリ秒です。
編集-詳細:
systemd-analyze plot > sequence.svg
を使用してブートシーケンスを分析し、新しくアップグレードしたOSでサービスが開始できないことを示しました。 3つありました-1つは誤って構成されたsendmailデーモン、その後powerd.service &NetworkManager-wait-online.service。 NetworkManagerサービスを完全に無効にするのは得策ではないので、10秒後にタイムアウトさせ、このルールをグローバルに適用しました。
これは、ファイルシステムの問題に関連している可能性があります。このリンクをチェックして、ファイルシステムを修復するとブート時間が改善されるかどうかを確認できます。 https://help.ubuntu.com/community/FilesystemTroubleshooting
解決したばかりの同様の問題がありました。SSDでUbuntu 16.04を実行しています。フラッシュドライブをスワップパーティションとして使用します。ドライブが偶発的にわずかに移動し、起動に3分以上かかりました。私はそれを正しく元に戻し、今ではすべてがうまくいきました。 smartctlまたはfsckを試し、ファイルシステムがo.kの場合、フラッシュドライブ(または他の周辺機器)を削除して、どのように動作するかを確認してください。幸運を!
Pastebinの出力に基づいて、いくつかのことが飛び出します。
EXT4-fs (sda5): re-mounted
fsck このボリュームを使用して、そのドライブの Smart Data を確認できます。
そして
[ 31.022220] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.720952] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 45.761548] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
接続でサポートされていない場合は、ネットワーク接続で IPV6を無効にする を試してください。
User536489のヒントに従ってください:
systemd-analyzeのせい
開始に時間がかかるサービスがあるかどうかを確認し、より低いタイムアウトを設定します。
Sudo vim /lib/systemd/system/networking.service
TimeoutStartSec
を10s
などに変更します。 manページ states秒単位の単位なしの値、または「5min 20s」などのタイムスパン値を取ります。タイムアウトロジックを無効にするには、「無限」を渡します。