感谢任何帮助。Ubuntu 16.04.3 仍然使用 SSD,启动速度非常慢。当我运行
systemd-analyze blame
我明白了
40.044s snapd.refresh.service
29.529s apt-daily.service
6.510s NetworkManager-wait-online.service
2.469s apt-daily-upgrade.service
1.814s snapd.service
1.649s [email protected]
936ms dev-sda2.device
168ms ufw.service
131ms ModemManager.service
126ms lightdm.service
86ms swapfile.swap
83ms apport.service
81ms systemd-fsck@dev-disk-by\x2duuid-BE45\x2d57DB.service
78ms dev-loop0.device
77ms speech-dispatcher.service
71ms snap-core-2844.mount
69ms alsa-restore.service
69ms lm-sensors.service
65ms pppd-dns.service
64ms apparmor.service
64ms rsyslog.service
63ms accounts-daemon.service
63ms systemd-user-sessions.service
当我跑步的时候
snap list
我明白了
Name Version Rev Developer Notes
core 16-2.27.6 2898 canonical core
keepassxc 2.2.0 23 keepassxreboot -
ufw 0.36pre-16.10 14 canonical -
ultimate-media-downloader2 1 1 keshavnrj -
我不熟悉 snap 或该怎么做。我可以禁用或编辑
40.044s snapd.refresh.service
29.529s apt-daily.service
6.510s NetworkManager-wait-online.service
让我的启动更快?非常感谢任何帮助,因为我的启动感觉很慢。{但在缓慢的启动完成后,SSD 在 Ubuntu 中确实感觉更快,而且我已经在 BIOS 中处于 AHCI 启动模式}。请帮忙。感谢任何指导。
更新 1:
启动仍然需要 1.5 分钟以上。我尝试了所有这些方法,但仍然没有变化,启动非常慢。我做了
sudo systemctl disable snapd.refresh.service
sudo systemctl disable NetworkManager-wait-online.service
运行sudoedit /etc/rc.local
并在 exit 0 行之前添加此内容:
rfkill block bluetooth
我也尝试过这个
sudo systemctl edit apt-daily.timer
并将以下文本粘贴到编辑器窗口中:
# apt-daily timer configuration override
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
AccuracySec=1h
RandomizedDelaySec=30min
但我的启动仍然很慢,需要 1.5 分钟以上。现在当我运行时,systemd-analyze blame
我得到
1.503s snapd.service
1.246s [email protected]
989ms virtualbox.service
872ms dev-sda2.device
674ms systemd-rfkill.service
455ms dev-loop3.device
149ms snap-core-2844.mount
126ms lightdm.service
119ms snap-core-2898.mount
107ms accounts-daemon.service
102ms apparmor.service
100ms snap-core-2774.mount
98ms ufw.service
97ms ModemManager.service
92ms snap-ufw-14.mount
86ms systemd-fsck@dev-disk-by\x2duuid-BE45\x2d57DB.service
86ms grub-common.service
85ms swapfile.swap
68ms plymouth-quit-wait.service
59ms console-setup.service
56ms preload.service
54ms irqbalance.service
52ms apport.service
但当我跑步时systemd-analyze
我得到
Startup finished in 5.179s (firmware) + 2.884s (loader) + 8.072s (kernel) + 3min 504ms (userspace) = 3min 16.641s
启动仍然很慢。我的(userspace)
启动需要 3 分钟?3min 504ms (userspace) = 3min 16.641s
有什么建议吗?(我使用的是 SSD,noatime、trim 和 AHCI 都已设置好)。
更新 2:
当我跑步时,cat /var/log/syslog
它变得太快了,我无法模仿它,但它在重复同样的事情。所以我跑了,less /var/log/syslog
我得到了
Sep 25 07:30:04 jon kernel: [ 473.457872] pcieport 0000:00:1c.2: device [8086:a112] error status/mask=00000001/00002000
Sep 25 07:30:04 jon kernel: [ 473.457873] pcieport 0000:00:1c.2: [ 0] Receiver Error (First)
Sep 25 07:30:04 jon kernel: [ 473.457876] pcieport 0000:00:1c.2: AER: Corrected error received: id=00e2
Sep 25 07:30:04 jon kernel: [ 473.458511] pcieport 0000:00:1c.2: can't find device of ID00e2
Sep 25 07:30:04 jon kernel: [ 473.458574] pcieport 0000:00:1c.2: AER: Corrected error received: id=00e2
Sep 25 07:30:04 jon kernel: [ 473.458577] pcieport 0000:00:1c.2: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e2(Receiver ID)
Sep 25 07:30:04 jon kernel: [ 473.458579] pcieport 0000:00:1c.2: device [8086:a112] error status/mask=00000001/00002000Sep 25 07:30:04 jon kernel: [ 473.458580] pcieport 0000:00:1c.2: [ 0] Receiver Error (First)
Sep 25 07:30:04 jon kernel: [ 473.460512] pcieport 0000:00:1c.2: AER: Corrected error received: id=00e2
Sep 25 07:30:04 jon kernel: [ 473.460515] pcieport 0000:00:1c.2: PCIe Bus Error: severity=Corrected, type=Physical Layer, id=00e2(Receiver ID)
Sep 25 07:30:04 jon kernel: [ 473.460518] pcieport 0000:00:1c.2: device [8086:a112] error status/mask=00000001/00002000
(附加信息:在我意识到我的日志(包含数千个pcie Bus error
日志)占用了我的 250Gb SSD 的 100Gb(!)空间之前。现在我使用logrotate
并限制日志100M
并设置 logrotate 运行daily
,我的磁盘使用量从 180Gb 减少到了 80Gb。)
我知道这pcie Bus error
是一个新错误。那么这就是导致我启动延迟的原因吗?感谢您的建议。
更新 3
当我跑步时lspci
我得到
00:00.0 Host bridge: Intel Corporation Device 5910 (rev 05)
00:01.0 PCI bridge: Intel Corporation Sky Lake PCIe Controller (x16) (rev 05)
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 05)
00:14.0 USB controller: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller (rev 31)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-H Thermal subsystem (rev 31)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-H LPSS I2C Controller #0 (rev 31)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-H LPSS I2C Controller #1 (rev 31)
00:16.0 Communication controller: Intel Corporation Sunrise Point-H CSME HECI #1 (rev 31)
00:17.0 SATA controller: Intel Corporation Sunrise Point-H SATA Controller [AHCI mode] (rev 31)
00:1c.0 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #1 (rev f1)
00:1c.2 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #3 (rev f1)
00:1c.3 PCI bridge: Intel Corporation Sunrise Point-H PCI Express Root Port #4 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-H LPC Controller (rev 31)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-H PMC (rev 31)
00:1f.3 Audio device: Intel Corporation Device a171 (rev 31)
00:1f.4 SMBus: Intel Corporation Sunrise Point-H SMBus (rev 31)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev a2)
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5287 (rev 01)
04:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
更新 4
我碰巧尝试了解决方法AER:更正了收到的 PCIe 总线错误
“当前的解决方法是将 pci=noaer 添加到内核命令行:
- 编辑
/etc/default/grub
并添加pci=noaer
以 GRUB_CMDLINE_LINUX_DEFAULT 开头的行。它将看起来像这样:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer"
- 跑步
sudo update-grub
- 重启”
那工作阻止信息syslog
被大量垃圾邮件淹没pcieport 0000:00:1c.2: AER: Corrected error received: id=00e2
。
太棒了。启动时我也不再看到这些错误消息了。
但我的开机启动时间还是90秒。
当我现在跑步时systemd-analyze
我得到
Startup finished in 6.232s (firmware) + 3.306s (loader) + 8.247s (kernel) + 3min 551ms (userspace) = 3min 18.337s
仍然。
我使用的是华硕笔记本电脑型号 X550V i7-7700HQ Skylake cpu(配备三星 850 Evo 250Gb SSD 上的 Geforce GTX Nividia 950M),内核为 4.13.3-041303-generic。我在 4.10.0-35 内核上遇到了同样的问题,所以我切换到 4.13 内核看看是否有任何改进,但同样的问题仍然启动缓慢。
pci=nomsi
如果我不再收到 pcie 总线错误消息,我是否还需要按照下面的评论建议添加到 Grub 中?
这能帮助我缩短仍然缓慢的启动时间吗?
`
答案1
我也经历过类似的情况(虽然没有那么严重)经验。
您需要从终端使用:
sudo systemctl disable snapd.refresh.service
sudo systemctl disable NetworkManager-wait-online.service
如果您不使用snapd
禁用功能,那就没有问题。根据我自己的经验,NetworkManager-wait-online-service
在启动过程中禁用不是问题。
就目前而言,apt-daily.service
这是一个已知错误。它不是设计为在启动时运行,而是在会话开始十五分钟后运行。这个问题有几个不同的答案,但由于我从未遇到过,所以不能说哪个更好。(不过我会选择获得最多赞成票的那个)。
尽管 SSD 启动时间从 45 秒缩短至 11 秒,但我很遗憾您购买了它并认为它可以解决这一特定问题。不过您仍会喜欢它,因为应用程序将在几秒钟内加载,而不是 15 秒。
答案2
[解决了]
在尝试了上述所有方法并修复了我的 中充斥的PCIe Bus Error
和消息后,并在使用`AER Corrected error recieved
syslog
sudo systemctl disable snapd.refresh.service
sudo systemctl disable NetworkManager-wait-online.service
按照上面的建议减少更多的启动时间,我的启动仍然需要 80 秒左右。
然后我注意到当我运行less /var/log/syslog
这个错误时还在我的syslog
systemd[1]: Dependency failed for Cryptography Setup for cryptswap1.
systemd[1]: Dependency failed for dev-mapper-cryptswap1.device.
看来我的靴子也在找,不久前 cryptswap
我换了一个。swapfile
由于 PCIe 总线错误和 AER 错误消息充斥着我syslog
,占用了近 100Gb 的磁盘空间(!),我错过了该错误!
最终的解决方案关于删除 cryptswap和如何禁用 Crytswap下列的这个解释。
似乎我已经注释掉了未使用的那cryptswap1
行,fstab
但 还没有注释掉这一行因此/etc/crypttab
我执行以下操作;
sudo cryptsetup remove /dev/mapper/cryptswap1
sudo vim /etc/crypttab
*comment out the `cryptswap1 UUID= .... ` line*
现在我的启动时间是 10-15 秒!感谢大家的帮助。