由于错误的恢复设备,启动缓慢,内核加载时间长

alc*_*lci 60 boot kernel

有一段时间,我的启动过程花费的时间太长(几乎 1 分钟)。

systemd-analyze time 
Run Code Online (Sandbox Code Playgroud)

显示内核需要 35.765s

查看dmesg,似乎问题出在挂载文件系统上:

...
[    2.186084]  sdb: sdb1 sdb9
[    2.186919] sd 2:0:0:0: [sdb] supports TCG Opal
[    2.186922] sd 2:0:0:0: [sdb] Attached SCSI disk
[    2.499795] ata5: SATA link down (SStatus 0 SControl 300)
[    2.844320] clocksource: Switched to clocksource tsc
[   35.670493] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[   35.782128] ip_tables: (C) 2000-2006 Netfilter Core Team
[   35.803610] systemd[1]: systemd 237 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN2 +IDN -PCRE2 default-hierarchy=hybrid)
...
Run Code Online (Sandbox Code Playgroud)

我的/etc/fstab看起来像这样:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=3996-2381  /boot/efi       vfat    umask=0077      0       1
#/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

编辑:仔细查看启动消息(在删除 grub 中的 quiet 选项后),我发现了这个可疑的行:

gave up waiting for suspend/resume device
Run Code Online (Sandbox Code Playgroud)

我认为我的交换是加密的,我也认为 UUID 中的 UUID/etc/initramfs/conf.d/resume不对应任何设备。

我应该禁用恢复/暂停吗?以及如何做到这一点?

alc*_*lci 90

好的,我找到了解决方案,感谢 Sudhanshu 的评论。

问题是由于我的交换被加密了。所以local-premountinitramfs 中的脚本正在等待一个不可用的交换设备,直到它超时。相关信息是gave up waiting for suspend/resume device

为了禁用它(因为加密交换无法从交换中恢复,而且我也不使用休眠),我修改了这个文件:/etc/initramfs-tools/conf.d/resume.

在这个文件中,一行

RESUME=none
Run Code Online (Sandbox Code Playgroud)

(而不是此处的 UUID)将禁用等待恢复设备。

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

应用更改。

系统现在可以正常启动。

  • 杰出的!感谢您的修复。它让我把头发拉出来! (5认同)
  • 我认为您受到 [Bug #1763611,Lubuntu 仿生启动比某些 SSD 的其他 Ubuntu 版本慢](https://bugs.launchpad.net/ubuntu/+source/lubuntu-meta/+bug/1763611) 的影响。你已经展示了如何压制错误:-) (2认同)

Nam*_*ice 6

我也在 Linux Mint(基于 Ubuntu)中看到了这一点,并花了一些时间找出出了什么问题。

如果您的系统安装在 LVM 上并且使用 LVM 卷作为交换磁盘,则会发生这种情况。

有一个长期存在的、反复出现的错误,其中恢复文件错误地具有 UUID(这对 LVM 无效)而不是它应该具有的设备路径。见https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1768230

您可以通过编辑/etc/initramfs-tools/conf.d/resume文件并将 UUID 替换为交换驱动器的设备路径来修复它。以下命令片段将为您执行此操作,使用 blkid 找到并报告的第一个交换驱动器:

sudo bash -c 'mv /etc/initramfs-tools/conf.d/resume /tmp/resume.bak; echo RESUME=$(blkid | \grep -i swap | head -n 1 | cut -d : -f 1) > /etc/initramfs-tools/conf.d/resume'
Run Code Online (Sandbox Code Playgroud)

固定的简历文件应该是这样的: RESUME=/dev/mapper/mint--vg-swap_1

  • 简历文件应如下所示:`RESUME=/dev/mapper/mint--vg-swap_1` (2认同)