使用的系统是Ubuntu18.04,某天发现开机很慢,可能之前弄了什么,导致开机慢得很。后来发现,跟之前对根目录磁盘扩容的操作,导致了swap分区的UUID变了,所以开机就变得很慢。

先说几种简单的检查方法:

  1. 先检查一下各个开机启动项的耗时,运行systemd-analyze blame,然后查看对应信息,如下图
  2. ubuntu docker启动daemon ubuntu docker启动慢_根目录

  3. 这里显示的就是各个开机启动项所需要的时间,可以看到,没有用时特别长的,说明并不是开机启动项导致的开机时间过长。
    若发现某个启动项要耗时几十秒的,可以通过disable的指令,把它禁用,比如禁用xxx.service,运行
    sudo systemctl disable xxx.service
  4. 查看当前swap分区的UUID编号对不对,或者看看自己的swap分区是不是没有了
    1)先打开磁盘分区工具,如果没有就安装sudo apt-get install gparted 2)安装完后,启动sudo gparted 3)查看各个分区情况,重点看看swap分区
  5. ubuntu docker启动daemon ubuntu docker启动慢_ubuntu_02

  6. 4) 然后查看硬盘启动项,这些都是在启动系统时自动运行的,运行 sudo gedit /etc/fstab
  7. ubuntu docker启动daemon ubuntu docker启动慢_根目录_03

  8. 5) 然后在gparted中,双击swap分区,查看它的UUID是不是跟启动文件中的UUID相同,我这里的就是不相同的,如下图
  9. ubuntu docker启动daemon ubuntu docker启动慢_开机启动项_04

  10. 可见,因为我之前的拓展分区操作,可能也让这里的swap分区UUID发生了改变,但是系统的启动项文件却没有被更新,导致开机特别慢。所以只要把它改过来,重启电脑,就会发现,开机启动速度飞快,用的是SSD固态硬盘,开机速度应该非常快才对的。
  11. 最后一种情况,看到别人blog中记载的,如果发现自己的swap分区没了,或原本就没有swap分区,可以试着把/etc/fstab 文件中对应的swap分别那行注释掉。好像也能让开机速度变快。

其实所有问题的核心都在与swap分区的有没有被用起来,有些人在装系统时不单独设置swap分区,把它也整合到根目录下,这样应该也是可以的,只是在系统启动项里面就不要再单独写出swap分区就好了。

Reference

  1. Ubuntu启动速度过慢解决方法: