![启动过程中出现错误消息](https://linux22.com/image/1017404/%E5%90%AF%E5%8A%A8%E8%BF%87%E7%A8%8B%E4%B8%AD%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF.png)
我最近对我的 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,这些范围/会话意味着登录,即每个用户(包括登录管理器)都需要一个单独的会话/范围,它们可能首先失败,然后稍后重试。最重要的是,如果一切正常,您可以忽略这些消息。