启动过程中出现错误消息

启动过程中出现错误消息

我最近对我的 18.04 LTS 安装应用了一些软件更新,现在重启时会看到以下内容:

$ cat /var/log/boot.log  Scanning for Btrfs filesystems UBUNTU: clean, 700970/30883840 files, 21610032/123523840 blocks [  OK  ] Found device /sys/subsystem/net/devices/br0. [  OK  ] Started ifup for br0.
         Starting Network Manager Script Dispatcher Service... [  OK  ]
         Starting Virtualization daemon...
         Starting Permit User Sessions...
         Starting containerd container runtime...
         Starting OpenBSD Secure Shell server... [  OK  ] 
         Reached target Network is Online.
         Starting Message of the Day...
         Starting Docker Application Container Engine...
         Starting Hold until boot process finishes up...
         Starting GNOME Display Manager... 

         [  OK  ] Created slice User Slice of root. 
         [FAILED] Failed to start Session c2 of user root. See 'systemctl status session-c2.scope' for details. 
         [FAILED] Failed to start Session c7 of user root. See 'systemctl status session-c7.scope' for details. 
         [FAILED] Failed to start Session c4 of user root. See 'systemctl status session-c4.scope' for details. 
         [FAILED] Failed to start Session c3 of user root. See 'systemctl status session-c3.scope' for details. 
         [  OK  ] Started Session c11 of user root.
         Starting User Manager for UID 0... 
         [FAILED] Failed to start Session c5 of user root. See ....

systemctl 有以下说明:

$ systemctl status session-c2.scope
● session-c2.scope - Session c2 of user root
   Loaded: loaded (/run/systemd/transient/session-c2.scope; transient)
Transient: yes
   Active: failed (Result: resources)

Apr 21 15:50:53 dell systemd[1]: session-c2.scope: Failed to add PIDs to scope's control group: No such process
Apr 21 15:50:53 dell systemd[1]: session-c2.scope: Failed with result 'resources'.
Apr 21 15:50:53 dell systemd[1]: Failed to start Session c2 of user root.

其他有用信息:

$ uname -a
Linux dell 4.15.0-96-generic #97-Ubuntu SMP Wed Apr 1 03:25:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ cat /proc/version_signature 
Ubuntu 4.15.0-96.97-generic 4.15.18

和这个:

$ systemctl --version
systemd 237
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid

我对 cgroups 了解不够,无法自行做出改变……希望寻求帮助以了解这里发生了什么。

非常感谢您的帮助!

编辑:根据要求:

$ cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="locale=en_US intel_iommu=on"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

编辑 2:将“systemd.legacy_systemd_cgroup_controller=true”添加到 GRUB_CMDLINE_LINUX_DEFAULT(然后更新 grub 并重新启动)后:

$ grep cgroup /proc/filesystems
nodev   cgroup
nodev   cgroup2

答案1

您似乎已经安装了 Docker。Docker 使用 cgroups,您似乎已经统一的 cgroup 层次结构(又名 cgroups-v2)已启用。据我所知,Ubuntu 尚未采用 cgroups-v2,最重要的是它不能与 cgroups-v1 同时启用,它们都执行相同的工作,这可能会导致您看到的错误。

我建议一个简单的解决方案systemd即将systemd.legacy_systemd_cgroup_controller=true选项添加到您的/etc/default/grub文件中,如下所示:

/etc/default/grub通过在终端中运行以下命令在编辑器中打开该文件:

sudo nano /etc/default/grub

找到这一行:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

将其改为如下形式:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash systemd.legacy_systemd_cgroup_controller=true"

然后,按Ctrl+X再按保存文件并关闭编辑器。YEnter

然后通过在终端中运行以下命令来更新 GRUB:

sudo update-grub

然后通过在终端中运行以下命令重置 systemd 的失败单元:

sudo systemctl reset-failed

然后重新启动系统。


注意:

只要会话创建最终成功,在启动过程中失败一次或多次是很正常的。在您查看这些消息时,似乎就是这种情况:

[FAILED] Failed to start Session c2 of user root. See 'systemctl status session-c2.scope' for details. 
[FAILED] Failed to start Session c7 of user root. See 'systemctl status session-c7.scope' for details. 
[FAILED] Failed to start Session c4 of user root. See 'systemctl status session-c4.scope' for details. 
[FAILED] Failed to start Session c3 of user root. See 'systemctl status session-c3.scope' for details. 
[  OK  ] Started Session c11 of user root.

因此,如果您的系统没有其他问题,那么这些消息有时会出现,并且是正常的。您似乎正在使用 Docker,这些范围/会话意味着登录,即每个用户(包括登录管理器)都需要一个单独的会话/范围,它们可能首先失败,然后稍后重试。最重要的是,如果一切正常,您可以忽略这些消息。

相关内容