在全新 SSD 安装(18.04)上进行常规 dist-upgrade 后,Ubuntu 加载/启动画面出现长时间启动延迟

在全新 SSD 安装(18.04)上进行常规 dist-upgrade 后,Ubuntu 加载/启动画面出现长时间启动延迟

自从正式发布当天安装了干净的 SSD 以来,我一直在运行 18.04,没有任何问题。
从开机到登录需要数秒(最多 10 秒)

然后,我进行了常规升级今天早上:

$ sudo apt update && sudo apt dist-upgrade

安装/升级的软件包包括

Install: linux-headers-4.15.0-24:amd64 (4.15.0-24.26, automatic), linux-headers-4.15.0-24-generic:amd64 (4.15.0-24.26, automatic), linux-modules-extra-4.15.0-24-generic:amd64 (4.15.0-24.26, automatic), linux-modules-4.15.0-24-generic:amd64 (4.15.0-24.26, automatic), linux-image-4.15.0-24-generic:amd64 (4.15.0-24.26, automatic)
Upgrade: gnome-control-center-data:amd64 (1:3.28.1-0ubuntu1.18.04.1, 1:3.28.1-0ubuntu1.18.04.2), linux-headers-generic:amd64 (4.15.0.23.25, 4.15.0.24.26), gnome-control-center:amd64 (1:3.28.1-0ubuntu1.18.04.1, 1:3.28.1-0ubuntu1.18.04.2), linux-image-generic:amd64 (4.15.0.23.25, 4.15.0.24.26), linux-signed-generic:amd64 (4.15.0.23.25, 4.15.0.24.26), gnome-control-center-faces:amd64 (1:3.28.1-0ubuntu1.18.04.1, 1:3.28.1-0ubuntu1.18.04.2), linux-generic:amd64 (4.15.0.23.25, 4.15.0.24.26)

升级完成后我重启了一下,发现Ubuntu 加载/启动画面(登录之前)(点上没有任何进度/活动显示)。

我关闭电源并尝试再次启动,但现在一直出现这种延迟。而且关机速度也慢得多。

更新 #1(2018-07-03):
systemd 分析:

$ sudo systemd-analyze blame
3min 53.073s plymouth-quit-wait.service
    2min 20.699s snapd.seeded.service
         49.949s snapd.service
          6.186s NetworkManager-wait-online.service
          1.148s dev-sda2.device
          1.098s plymouth-start.service

显示plymouth-quit-wait.service(我现在认为这与 Ubuntu 加载/启动画面有关)并且snapd.seeded.service是迄今为止启动时间最长的服务。因此,我比较了之前dist-upgrade和之后的时间:

$ journalctl -u plymouth-quit-wait.service --since today
-- Logs begin at Fri 2018-04-27 13:01:30 BST, end at Tue 2018-07-03 12:38:05 BST. --
Jul 03 04:15:43 user-laptop systemd[1]: Starting Hold until boot process finishes up...
Jul 03 04:15:46 user-laptop systemd[1]: Started Hold until boot process finishes up.
-- Reboot --
Jul 03 04:21:17 user-laptop systemd[1]: Starting Hold until boot process finishes up...
Jul 03 04:24:52 user-laptop systemd[1]: Started Hold until boot process finishes up.

升级plymouth-quit-wait.service需要3 秒升级3分钟35 秒

$ journalctl -u snapd.seeded.service --since today
-- Logs begin at Fri 2018-04-27 13:01:30 BST, end at Tue 2018-07-03 12:42:14 BST. --
Jul 03 04:15:43 user-laptop systemd[1]: Starting Wait until snapd is fully seeded...
Jul 03 04:15:43 user-laptop systemd[1]: Started Wait until snapd is fully seeded.
-- Reboot --
Jul 03 04:22:47 user-laptop systemd[1]: Starting Wait until snapd is fully seeded...
Jul 03 04:24:49 user-laptop systemd[1]: Started Wait until snapd is fully seeded.

升级snapd.seeded.service需要0 秒升级2分钟2秒。

更新 #2(2018-07-06):
今天早上的开机见证了延迟返回.
所以我想我们仍然等待 kernel/plymouth/snapd 更新

更新 #3(2018-07-12):
问题似乎已经解决了,但我没有看到 snap 或 plymouth 的任何更新,而且我仍在运行 4.15.0-24 内核。所以我不确定哪个软件包更新修复了这个问题,或者它是否以某种方式自行解决了。阅读 launchpad 上的错误更新,我不清楚对哪些软件包做了什么(或正在做什么)。如果有人能澄清这一点将会非常有用。

答案1

这是一个与内核相关的回归,启动板错误是:https://bugs.launchpad.net/ubuntu/+bug/1779827

作为一种解决方法,请在启动时按下按键和/或移动鼠标。

简而言之,使用 /dev/urandom 或 getrandom() 的服务现在会阻塞,直到有足够的熵可用。过去,/dev/urandom 所需的熵要少得多。

最新状态来自https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1779961/comments/5就是它:

元包已回滚,修复程序正在应用和上传中。

snapd 团队也研究了这个问题,并与上游的 bson 合作,确保启动时不需要 /dev/unrandom(https://github.com/snapcore/snapd/pull/5464

因此,这个问题应该很快就会通过内核或 snapd 更新得到修复。

答案2

您可以移动鼠标或增加系统中的熵。

sudo apt install haveged

有网站

适用于默认内核和 ukuu。这允许系统在内核 4.17.4 上正确启动。

答案3

我在我管理的两个桌面上都看到了这个清单。运行以下命令进行安装rng-tools可以解决我的问题:

sudo apt install rng-tools

来自 Arch Wiki:rng-tools 是一组与内核中的随机数生成相关的实用程序。这主要用于增加内核中的熵数量,以使 /dev/random 更快。

答案4

我有同样的问题4.15.0-24-generic #26-Ubuntu SMP

user@nb:~$ systemd-analyze blame |head
         4min 2s plymouth-quit-wait.service
          1.440s systemd-udev-settle.service
           562ms dev-sda1.device
           313ms udisks2.service
           240ms systemd-rfkill.service
           231ms NetworkManager.service
           194ms networkd-dispatcher.service
           180ms systemd-backlight@backlight:acpi_video0.service
           179ms systemd-journal-flush.service
           147ms systemd-logind.service

为一个临时解决办法,你只需要启动时移动鼠标/触摸板,导致“正常”的启动时间;就我而言:

user@nb:~$ systemd-analyze blame |head
          1.440s systemd-udev-settle.service
           882ms plymouth-quit-wait.service
           562ms dev-sda1.device
           313ms udisks2.service
           240ms systemd-rfkill.service
           231ms NetworkManager.service
           194ms networkd-dispatcher.service
           180ms systemd-backlight@backlight:acpi_video0.service
           179ms systemd-journal-flush.service
           147ms systemd-logind.service

修复来源:https://ubuntuforums.org/showthread.php?t=2395451&p=13780509#post13780509

相关内容