Ubuntu 20.04.1 使用三星 850 EVO SSD 启动缓慢(1 分钟)

Ubuntu 20.04.1 使用三星 850 EVO SSD 启动缓慢(1 分钟)

笔记:底部有一个简短摘要。

这是在旧的 x58 (SATA II) 系统上全新安装的 20.04.1,没有第三方软件包,系统具有古老的混合 EFI/传统 BIOS。我最初创建了 1 个 OS 25GB 分区和 1 个带标志的 Home 分区。使用默认分区重新安装不会产生任何变化。除了键盘和鼠标外,没有连接任何 USB 设备。18.04.4 之前安装时启动时间不到 10 秒。

用手机测量从 BIOS 结束到紫色 GRUB 屏幕,再到登录屏幕,需要 50 到 1:10:95 秒。大部分时间(至少 50 秒)都花在紫色 GRUB 屏幕上。使用相同 SATA 电缆的旧 Mushkin Chronos 120GB SSD 安装了干净的 20.04.1,可在 8 秒内启动。通过 LiveUSB 对三星 850 250GB SSD 进行 SMART 短扫描、长扫描和 fsck 扫描均未显示任何错误。我已经多次使用 EXT4 格式化三星并更新了固件。基准测试显示三星在 2 次测试中的平均读取速率为 284.2 和 285.4 MB/s,这对于 SATA II 来说似乎不错。

$ inxi -Fxz
System:
  Kernel: 5.4.0-54-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 
  Desktop: Gnome 3.36.3 Distro: Ubuntu 20.04.1 LTS (Focal Fossa) 
Machine:
  Type: Desktop Mobo: Gigabyte model: EX58-UD3R BIOS: Award 
  v: Fk2 date: 09/27/2011 
CPU:
  Topology: 6-Core model: Intel Xeon X5675 bits: 64 type: MT MCP 
  arch: Nehalem rev: 2 L2 cache: 12.0 MiB 
  flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 73548 
  Speed: 1877 MHz min/max: 1596/3060 MHz Core speeds (MHz): 1: 1599 2: 1617 
  3: 1636 4: 1690 5: 1635 6: 1635 7: 1604 8: 1633 9: 1659 10: 1621 11: 1691 
  12: 1692 
Graphics:
  Device-1: NVIDIA GK208B [GeForce GT 710] vendor: eVga.com. driver: nouveau 
  v: kernel bus ID: 01:00.0 
  Device-2: NVIDIA GP106 [GeForce GTX 1060 6GB] vendor: eVga.com. 
  driver: nouveau v: kernel bus ID: 02:00.0 
  Display: x11 server: X.Org 1.20.8 driver: nouveau 
  resolution: 1680x1050~60Hz, 1680x1050~60Hz 
  OpenGL: renderer: NV106 v: 4.3 Mesa 20.0.8 direct render: Yes 
Audio:
  Device-1: Intel 82801JI HD Audio vendor: Gigabyte GA-EP45-UD3R 
  driver: snd_hda_intel v: kernel bus ID: 00:1b.0 
  Device-2: NVIDIA GK208 HDMI/DP Audio vendor: eVga.com. 
  driver: snd_hda_intel v: kernel bus ID: 01:00.1 
  Device-3: NVIDIA GP106 High Definition Audio vendor: eVga.com. 
  driver: snd_hda_intel v: kernel bus ID: 02:00.1 
  Sound Server: ALSA v: k5.4.0-54-generic 
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: Gigabyte driver: r8169 v: kernel port: ce00 bus ID: 05:00.0 
  IF: enp5s0 state: up speed: 1000 Mbps duplex: full mac: <filter> 
Drives:
  Local Storage: total: 232.89 GiB used: 7.50 GiB (3.2%) 
  ID-1: /dev/sda vendor: Samsung model: SSD 850 EVO 250GB size: 232.89 GiB 
Partition:
  ID-1: / size: 227.74 GiB used: 7.50 GiB (3.3%) fs: ext4 dev: /dev/sda5 
Sensors:
  System Temperatures: cpu: 21.0 C mobo: N/A 
  Fan Speeds (RPM): N/A 
  GPU: device: nouveau temp: 37 C fan: 0 device: nouveau temp: 32 C 
Info:
  Processes: 303 Uptime: 2m Memory: 15.63 GiB used: 931.5 MiB (5.8%) 
  Init: systemd runlevel: 5 Compilers: gcc: N/A Shell: bash v: 5.0.17 
  inxi: 3.0.38 

我还尝试过其他方法:

systemd-analyze blame显示12.332s apt-daily.service为最严重的违规者,因此我将以下内容添加到/etc/systemd/system/apt-daily.timer

# apt-daily timer configuration override
[Timer]
OnBootSec=5min
OnUnitActiveSec=1d
AccuracySec=1h
RandomizedDelaySec=7min

此后,systemd-analyze blame显示4.912s NetworkManager-wait-online.service4.604s plymouth-quit-wait.service

后续步骤: 、从中sudo systemctl disable NetworkManager-wait-online.service删除以及更新 GRUB:splash/etc/default/grubsudo update-grub

删除splash很重要,但并没有导致启动速度更快。继续,我发现 BIOS 中没有启用快速启动,因此启用了它。fsck似乎在每次启动时登录屏幕之前运行。然后我添加fsck.mode=skipGRUB_CMDLINE_LINUX_DEFAULT=

使用其他 5.4 或 5.8 内核,添加nomodesetnoresume添加到 GRUB,并将 SATA 端口从 1 更改为 0,然后重新安装。安装 Linux Mint 20 时出现同样的问题,启动时间为 1:08:58 秒。

更新了微码。

通过 GRUB进行注释quiet splash会导致在相同的紫屏延迟后出现通常的加载消息。

删除了 plymouth。noplymouth在重新安装另一次 20.04.1 后使用 GRUB 选项。

除非删除,否则按下紫色 GRUB 屏幕不会有任何反应。然后启动会挂起,直到出现加载消息ESCquiet splash

完成所有这些操作后,重新安装 18.04.4 即可实现不到 10 秒的启动时间。

增加了noatime坐骑选项/etc/fstab

blkid通过比较来验证 UUID 是否匹配/etc/fstab

取消注释并更改DefaultTimeoutStartSec=90s10s/etc/systemd/system.conf

已检查/var/log/boot.log

将三星 850 放入另一个启用了传统模式 BIOS 的系统(也有一个 UEFI 选项)。在新系统中,我没有在 SSD 上重新安装 20.04.1,我只是将其插入新系统。它在 8 秒内启动。

在其他 SSD 上安装了 20.04.1,包括三星 840 EVO 250GB、英特尔 330 240GB,并再次在 Mushkin Chronos 120GB 上安装了 20.04.1。所有设备都具有最新固件。除 Mushkin 外,所有设备的启动时间均在 40 多秒内。

已验证 Mushkin 具有 TRIM 功能journalctl -u fstrim。三星 850 和 840 因排队 TRIM 错误而臭名昭著。两者都已更新固件,但dmesg显示这些 SSD 的排队 TRIM 仍处于禁用状态。我无法解释为什么只有 Mushkin 避免了紫屏挂起问题。

安装 18.04.4 和 20.04 以获取 GRUB v2.02(20.04 有 v2.04)。

将 20.04.1 LiveUSBfsck扫描(1 分 40 秒)与已安装的 20.04.1 启动延迟(50 秒)进行了比较。我原以为fsck每次启动前都会运行,没有任何提示。journalctl -u systemd-fsck*似乎表明fsck在条件检查后会跳过扫描。

将 BIOS EFI 设置更改为自动、非 EFI 和传统。无论设置如何,20.04.1 安装程序始终会创建 EFI (ESP) 分区。手动创建带有标志的 EXT4 分区/不会导致任何变化。

物理移除了第二个 GPU(GTX 1060)、USB 3.0 PCI 卡以及所有其他不必要的外围设备。

对于已移除 GTX 1060 的 GT 710,使用 Nvidia 驱动程序而不是 nouveau。

在 BIOS 中禁用 Gigabyte 主板 SATA 端口,仅启用 ICH10 SATA 端口。

安装了其他版本和版本。18.04.4、19.10、20.10 和 21.04 的每日构建版都在 10 秒内到达登录屏幕。20.04.1、Fedora 33 以及 Linux Mint 20 和 20.1 都在大约 50 秒或更长时间后启动。

概括:

Ubuntu 版本 18.04.4、19.10、20.10 和 21.04 可在 10 秒内进入登录屏幕。只有 20.04.1 在安装在三星 850、840 或英特尔 330 SSD 上时,登录前会在紫屏上停留至少 50 秒。只有当 20.04.1 安装在 Mushkin Chronos SSD 上时,它才能在 10 秒内进入登录。

答案1

问题涉及技嘉 EX58-UD3R(Rev 1.6)主板混合 EFI/Legacy BIOS 和 Ubuntu 20.04.1 安装程序。问题似乎与 SSD 无关,这一点我最初认为并非如此。

安装程序使用“擦除磁盘”选项,在安装到此 x58 系统上时会创建一个 537MB 的 EFI 分区和一个带有 MBR 分区表的 EXT4 分区。选择“其他”选项不允许在系统上创建手动 EFI 分区或 GPT 分区表。

解决方案是启动到 GParted,创建 GPT 分区表,使用 FAT32 创建 EFI 分区,创建 EXT4 分区,然后为 EFI 分区设置标志。在 Ubuntu 安装程序中使用“其他”选项,保持 EFI 分区不变,但设置标志Boot并将操作系统安装到 EXT4 分区中。将引导加载程序的默认安装位置从 更改为(EFI 分区) 会导致此系统挂起在“验证 DMI 池数据”BIOS 消息处。ESP/sdasda1

x58 BIOS 在 18.04.4 安装(带有 MBR 表且只有 EXT4 分区(没有 EFI 分区))时没有问题。20.04.1 安装(带有 MBR 表且只有 EXT4 或 EXT4 和 EFI 分区)会导致系统在登录屏幕前挂起 50 多秒。使用上述步骤,在相同的三星 850 或 840 EVO SSD 上进行测试时,现在需要 13-15 秒才能在 BIOS 之后到达登录屏幕。

资料来源:

不那么光彩的看法技嘉的混合 EFI/Legacy BIOS作者:罗德里克·W·史密斯(Roderick W. Smith)。

更好的说明使用 GParted。

相关内容