systemd-analyze 中的 dev-sda.device 是什么,我可以禁用它吗?

San*_*pat 16 boot dual-boot mount services systemd

我的笔记本电脑上安装了 Ubuntu 16.04 和 windows。在systemd-analyze blame名为“dev-sda7.device”的服务中花费了太多时间。如何解决这个问题或者我应该禁用它?

的结果 systemd-analyze time

Startup finished in 4.207s (firmware) + 4.576s (loader) + 3.466s (kernel) + 33.899s (userspace) = 46.149s
Run Code Online (Sandbox Code Playgroud)

的结果 systemd-analyze blame

         16.326s dev-sda7.device
         12.859s ufw.service
         11.263s systemd-tmpfiles-setup-dev.service
          7.935s NetworkManager-wait-online.service
          3.203s keyboard-setup.service
          2.736s vboxdrv.service
          2.467s accounts-daemon.service
          2.349s apache2.service
          2.239s NetworkManager.service
          2.163s ModemManager.service
          1.963s lightdm.service
          1.843s nmbd.service
          1.749s samba-ad-dc.service
          1.599s systemd-fsck@dev-disk-by\x2duuid-B053\x2dA56B.service
          1.367s thermald.service
          1.127s polkitd.service
          1.112s systemd-journald.service
          1.066s teamviewerd.service
          1.007s udisks2.service
           975ms apparmor.service
           926ms plymouth-start.service
Run Code Online (Sandbox Code Playgroud)

的结果 cat /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda7 during installation
UUID=493cc833-193e-435d-840a-b862ca367fba /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda2 during installation
UUID=B053-A56B  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sda6 during installation
UUID=a49f56b1-53c3-4eaf-9460-0a221e59957a none            swap    sw              0       0
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 7

您不能禁用它,因为它/dev/sda7是安装根分区的位置。在 systemd 中,它在启动时可以处理的所有内容都被制成一个 systemd 单元。然后你可以用它做一些事情(比如在这种情况下跟踪时间,或者依赖它来提供服务)。在设备的情况下,链是这样的:

  • 内核加载设备并激活它
  • systemd 对此进行监视并为其创建/dev/sdxy节点
  • 然后 systemd 激活从生成的各种挂载单元 fstab
  • 然后触发等待挂载文件系统的各种其他服务
  • 等等

这确实允许您识别磁盘激活缓慢,但除非您可以获得新磁盘,否则您无能为力。

您可以尝试分析关键路径,看看是否还有其他问题可以解决:

systemd-analyze critical-chain [UNIT...]  prints a tree of the
time-critical chain of units (for each of the specified UNITs or for
the default target otherwise). The time after the unit is active or
started is printed after the "@" character. The time the unit takes to
start is printed after the "+" character. Note that the output might be
misleading as the initialization of one service might depend on socket
activation and because of the parallel execution of units.
Run Code Online (Sandbox Code Playgroud)

例子:

graphical.target @10.868s
??multi-user.target @10.868s
  ??squid-deb-proxy.service @10.816s +51ms
    ??network-online.target @10.814s
      ??NetworkManager-wait-online.service @2.419s +8.395s
        ??NetworkManager.service @2.243s +155ms
          ??dbus.service @2.192s
            ??basic.target @2.129s
              ??sockets.target @2.129s
                ??snapd.socket @2.127s +1ms
                  ??sysinit.target @2.127s
                    ??swap.target @2.127s
                      ??dev-disk-by\x2duuid-498d24e5\x2d7755\x2d422f\x2dbe45\x2d1b78d50b44e8.swap @2.119s +7ms
                        ??dev-disk-by\x2duuid-498d24e5\x2d7755\x2d422f\x2dbe45\x2d1b78d50b44e8.device @2.119s
Run Code Online (Sandbox Code Playgroud)

例如,就我而言,网络正在减慢启动速度。