Ubuntu 17.04 在 SSD 双启动模式下启动缓慢

Ubuntu 17.04 在 SSD 双启动模式下启动缓慢

我有 Windows 10 和 Ubuntu 17.04 双启动系统(120Gb SSD,100 用于 Windows,其余用于 Linux)。当我在第二个分区安装 Ubuntu 时,我没有创建任何交换分区(我有 4Gb 的 RAM,大多数论坛都说 4Gb 以上就不需要交换),所以我只创建了一个根分区,/其中所有 20gb 都可用,并选择仅加密我的主文件夹。

问题是,启动 Ubuntu 需要 1-2 分钟,而 Windows 启动大约需要 10 秒或更短时间。

我在这里看到了一些关于此问题的帖子,但大多数情况下 OP 已经创建了交换分区,而我的情况不是这样。

我该怎么办?再次安装并创建交换分区,还是采取其他方法?我对 Ubuntu 的技术不太了解,所以如果你们能向我展示一些步骤来识别问题,我将不胜感激,谢谢!

编辑#1

我的 Windows 10 没有设置快速启动,因为我可以在 Linux 内部访问 Windows 分区的所有文件/文件夹。

编辑#2

输出自sudo fdisk -l

Disk /dev/loop0: 80,5 MiB, 84393984 bytes, 164832 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 76 MiB, 79683584 bytes, 155632 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 111,8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x39380a4e

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1  *         2048   1026047   1024000  500M  7 HPFS/NTFS/exFAT
/dev/sda2         1026048 193478655 192452608 91,8G  7 HPFS/NTFS/exFAT
/dev/sda3       193480702 234440703  40960002 19,5G  5 Extended
/dev/sda5       193480704 234440703  40960000 19,5G 83 Linux

Disk /dev/sdb: 931,5 GiB, 1000204138496 bytes, 1953523708 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2de2a99a

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1        2048 1953519615 1953517568 931,5G  7 HPFS/NTFS/exFAT

输出自systemd-analyze

Startup finished in 5.074s (kernel) + 3min 514ms (userspace) = 3min 5.588s

输出自systemd-analyze blame

7.518s NetworkManager-wait-online.service
3.920s fwupd.service
3.015s iio-sensor-proxy.service
1.217s dev-sda5.device
739ms apt-daily.service

编辑#3:

输出自systemd-analyze critical-chain

graphical.target @1min 38.007s
└─multi-user.target @1min 38.007s
  └─virtualbox.service @1min 37.938s +68ms
    └─network-online.target @1min 37.937s
      └─NetworkManager-wait-online.service @1min 30.418s +7.518s
        └─NetworkManager.service @1min 30.306s +105ms
          └─dbus.service @1min 30.281s
            └─basic.target @1min 30.273s
              └─sockets.target @1min 30.273s
                └─snapd.socket @1min 30.265s +8ms
                  └─sysinit.target @1min 30.264s
                    └─apparmor.service @193ms +264ms
                      └─local-fs.target @190ms
                        └─media-gdf897g6f9-HD\x20TOURO.mount @1min 50.061s
                          └─dev-sdb1.device @1.467s

编辑#4:

这是命令的图像systemd-analyze plot > test.svg,前面有一个巨大的空白系统初始化目标,不确定这是什么意思。

http://svgur.com/s/2SA

答案1

我找到了 Reddit 用户发布的修复程序,它实际上是一个错误:

在 Ubuntu 17.04 中,使用主文件夹加密时安装程序中出现一个错误 - 引用了交换分区,但 17.04 现在使用交换文件。

在文本编辑器中打开 /etc/crypttab 并更改以下内容:

cryptswap1 UID=XXXXXXXX

更改为:

cryptswap1 /交换文件

现在我的 Ubuntu 启动只需 6 秒 :-)

答案2

Windows 10 花费的时间更少,因为默认情况下它不会完全关闭(如果您想从 Linux 访问 Windows 分区,则必须关闭此功能)。它会休眠并在开机时恢复。创建交换分区是一件好事,因为某些应用程序使用交换区域(如 gimp、inkscape、vmware 等)。您可以控制操作系统的交换性,这将帮助您减少 SSD 的磨损。

使用以下链接调整 swapiness

如何配置 swappiness?

并将交换添加到您的安装使用

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04

或者您可以从全新安装开始。

如果您确切知道您拥有什么类型的硬件,您可以从内核禁用不需要的模块。

在启动应用程序中仅保留想要的应用程序。

禁用要启动的服务,例如

  • FTP 服务器
  • apache 或 nginx
  • 蛤蜊
  • openssh-服务器

ETC。

但是您必须手动启动它们,或者您可以添加 crontabs 以在启动后启动它们。

我希望它有帮助。

答案3

我遇到了同样的问题,dmesg 上的以下条目的间隔正好是 30 秒,修复后减少到不到 1 秒 -

[    3.675210] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro
[    3.804315] [drm] RC6 on
[    4.566877] random: crng init done
[    4.566879] random: 7 urandom warning(s) missed due to ratelimiting

我尝试了几个建议的修复方法,但都没有成功 -

  1. 使用“ /etc/fstab”的输出更新“ blkid
  2. 安装 haveged 和 rng-tools 或 rng-tools5(虽然我的处理器支持安全密钥)

事实证明,问题在于 initramfs 尝试定位我在从实时 USB 安装时创建的交换空间。在继续启动之前,它会搜索位于 USB 上的交换分区的 UUID 30 秒。这需要在两个地方修复 -

  1. update-initramfs -uk all'#使用更新版本的 initramfs-tools - 0.130ubuntu3.1
  2. /etc/initramfs-tools/conf.d/resume通过注释掉条目或标记来从“ ”中删除覆盖(如果有)RESUME=none

详细的错误修复在这里给出 - https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1771962

相关内容