Ubuntu 16.04.1 LTS 内核启动耗时超过 90 秒

Ubuntu 16.04.1 LTS 内核启动耗时超过 90 秒

请原谅,我昨天刚刚安装了 Ubuntu,正在尽快学习。

我不明白为什么启动、重启和关机需要这么长时间,从下面的信息中我可以看到问题发生在哪里,但我不知道如何解决它。我也知道启动、重启和关机可能是单独的问题,如果是这样,我更愿意从启动/重启开始(我认为它们是相关的)。

每次我启动计算机或重新启动计算机时,内核都需要超过 90 秒才能加载(等待时屏幕处于黑屏状态)。

感谢您提供的所有帮助。

仅供参考,我已经加载了 Zorin OS 9 而没有任何问题,但是它使用的是旧版本的 Ubuntu(14.04 LTS),而我想使用最新版本。

系统信息:

  • 英特尔 I7-3770K
  • AMD Radeon R9 290x
  • 32 GB 内存
  • 三星 SSD 作为主 SSD(此处安装 grub)
  • WD HDD 7200rpm 作为我的 ubuntu 交换和根目录。
  • Ubuntu 16.04.1 LTS 64 位,已更新。

Grub 安装在我的主驱动器上,而 ubuntu 安装在 /dev/sdb3 上(我的系统中的第 3 个驱动器)

我已经尝试过启动nomodeset,但这根本没有帮助。

编辑:附加信息 - 我使用的是 UEFI 64 位版本的 Ubuntu。我的 BIOS 中也设置了超频。我尝试向内核添加参数,但操作不正确或不起作用。我还尝试从计算机上拔下所有 USB 设备,包括键盘和鼠标(使用 ps2 键盘),但问题仍然存在。

编辑2:我还做了一些额外的测试:

我已拔掉所有 USB 接头、拔掉所有硬盘,但问题仍然存在(即使使用实时 USB)。

我有这个主板:

http://www.intel.com/content/www/us/en/support/boards-and-kits/desktop-boards/intel-desktop-boards-with-intel-z77-express-chipset/intel-desktop-board-dz77ga-70k.html

我认为这肯定是主板的问题,也许是辅助 SATA 控制器?

有人有什么建议吗?

分析图的图像: Ubuntu 16.04.1 LTS systemd 分析图

dmesg(启动示例 1)

[    2.135850] sd 10:0:0:0: [sdd] 976754645 4096-byte logical blocks: (4.00 TB/3.64 TiB)
[    2.136168] sd 10:0:0:0: [sdd] Write Protect is off
[    2.136170] sd 10:0:0:0: [sdd] Mode Sense: 4f 00 00 00
[    2.136327] sd 10:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    2.137493]  sdd: sdd1
[    2.138193] sd 10:0:0:0: [sdd] Attached SCSI disk
[    2.627661] clocksource: Switched to clocksource tsc
[   91.393716] random: nonblocking pool is initialized
[   91.478893] EXT4-fs (sdb3): mounted filesystem with ordered data mode. Opts: (null)
[   92.052207] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[   92.052306] systemd[1]: Detected architecture x86-64.
[   92.064886] systemd[1]: Set hostname to <AntUbuntu>.
[   92.298399] systemd[1]: Listening on udev Kernel Socket.
[   92.298491] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[   92.298499] systemd[1]: Reached target Remote File Systems (Pre).

dmesg(启动示例 2)

[    4.297400] sd 10:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    4.298509]  sdd: sdd1
[    4.299195] sd 10:0:0:0: [sdd] Attached SCSI disk
[    4.393421] random: nonblocking pool is initialized
[   91.502212] EXT4-fs (sdb3): mounted filesystem with ordered data mode. Opts: (null)
[   92.075578] systemd[1]: systemd 229 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ -LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD -IDN)
[   92.075677] systemd[1]: Detected architecture x86-64.
[   92.088193] systemd[1]: Set hostname to <AntUbuntu>.
[   92.337609] systemd[1]: Listening on udev Control Socket.
[   92.337646] systemd[1]: Listening on udev Kernel Socket.
[   92.337659] systemd[1]: Listening on fsck to fsckd communication Socket.
[   92.337709] systemd[1]: Created slice System Slice.

systemd-analyze 责任:

  6.233s lightdm.service
  5.922s snapd.refresh.service
  4.198s plymouth-quit-wait.service
  3.095s dev-sdb3.device
  2.376s NetworkManager.service
  1.961s ModemManager.service
  1.959s thermald.service
  1.945s accounts-daemon.service
  1.773s apparmor.service
  1.441s polkitd.service
  1.114s plymouth-start.service
  1.094s systemd-tmpfiles-setup.service
  1.033s apport.service
  1.004s grub-common.service
   868ms networking.service
   856ms systemd-journal-flush.service
   721ms gpu-manager.service
   695ms rsyslog.service
   642ms systemd-fsck@dev-disk-by\x2duuid-1EEB\x2dDE91.service
   571ms systemd-tmpfiles-setup-dev.service
   558ms console-setup.service
   509ms keyboard-setup.service
   495ms upower.service

答案1

90 秒的延迟是由于网络接口命名冲突造成的,而这种冲突是由于主板 BIOS 中的缺陷造成的。一些带有多个集成网卡的英特尔主板存在此问题。我知道的两款主板是英特尔 DZ77GA-70K(您的机箱)和 DZ77RE-75K(我的机箱)。

请注意,有许多故障模式会导致启动过程中出现长时间延迟,从而导致寻找解决方案时浪费精力。此特定情况与网络接口冲突有关,可以通过运行此处描述的以下命令来检测:https://bugzilla.redhat.com/show_bug.cgi?id=1102135

$ sudo grep . /sys/class/net/*/device/{index,acpi_index}
/sys/class/net/eth0/device/index:1
/sys/class/net/eth1/device/index:1
grep: /sys/class/net/*/device/acpi_index: No such file or directory

两个网络设备具有相同的“索引”值 1,并且缺少 ACPI 索引值。BIOS 应该分配不同的 APCI 索引值。由于这些值存在冲突,“可预测网络接口名称”策略 (https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames) 出现在 udev v197 中,导致网络接口在启动时无法正确初始化,并且会出现 90 秒的超时。

另一种检测方法是将“debug ignore_loglevel”参数应用于内核命令行。在启动期间使用这些参数(以及在 dmesg 输出中),您将在 60 秒后从 systemd-udevd 看到一条消息,提示某个网络接口“占用了很长时间”。

systemd-udevd[447]: seq 2024 '/devices/pci0000:00/...' is taking a long time

有几种方法可以解决这个问题。它们记录在上面的 freedesktop.org 链接中。相关部分引用如下:

  1. 您禁用固定名称的分配,以便再次使用不可预测的内核名称。为此,只需屏蔽 udev 的 .link 文件以使用默认策略:ln -s /dev/null /etc/systemd/network/99-default.link

  2. 您可以创建自己的手动命名方案,例如,将接口命名为“internet0”、“dmz0”或“lan0”。为此,请在 /etc/systemd/network/ 中创建自己的 .link 文件,为一个、一些或所有接口选择一个明确的名称或更好的命名方案。有关更多信息,请参阅 systemd.link(5)。

  3. 您在内核命令行上传递 net.ifnames=0

推测:英特尔的这些 Z77 主板是在 2013 年英特尔退出台式机主板业务之前出现的。这些主板从未享受过持续的 BIOS 更新,而这些更新本可以纠正这些问题。这些主板可以工作,但也存在一些小故障,另一个故障是 USB“过流”错误,尽管没有 USB 设备消耗电流,但在 Linux 和 Windows 中启动时都会发生这种情况。

答案2

让我先说清楚。这是一个双磁盘安装,并且您的启动和根目录位于不同的磁盘上?

您是否考虑过将根启动和交换分区放在 SSD 上,并使用 HDD 来提供数据?例如将 HDD 安装到 /srv。

我使用拇指驱动器作为根启动主页和交换驱动器,并将 2 个硬盘安装到 /srv 和 /mnt,其中包含我的虚拟机映像及其服务的数据,来运行此设置。启动时间不到 60 秒

相关内容