Linux 上极端启动时间故障排除

Linux 上极端启动时间故障排除

我不确定这是否是询问此类技术支持相关问题的正确位置,但这似乎肯定是 Linux 问题,或者至少是关于 Linux 与我的硬件交互的方式。

我有一台由 HP Z800 工作站组成的台式电脑,系统可能与不是支持 UEFI,因此所有操作系统都使用旧版 BIOS 和 MBR 分区方案。

我通常双启动 Windows 10 和 Linux 发行版(目前是 Linux Mint 20.2,但此问题存在于全部我尝试过的发行版,包括 Debian 11、Ubuntu 20.04-21.10、Fedora 33-35、OpenSUSE Tumbleweed 和 Arch Linux)。

由于我主要是非技术用户,我不确定正确的术语是什么,但为了能够正确描述我的问题,我必须将启动过程分为三个阶段(这些是我自己的术语以及我与现有术语的冲突我不知道!):

  • 第 1 阶段:从按下电源按钮开始到进入引导加载程序 (GRUB2) 结束的部分。
  • 第 2 阶段:从进入引导加载程序开始,到实际操作系统开始引导时结束,即当我收到控制台/systemd 消息、普利茅斯屏幕等时。
  • 第 3 阶段:从第 2 阶段结束开始的部分在操作系统完全启动并且我位于显示管理器上时结束。

问题是第二阶段需要非常长的时间。因此,一旦我进入引导加载程序并选择(或自动选择)一个 Linux 条目,屏幕就会完全空白(根据发行版,这里可能会有一个闪烁的提示,在 Mint 上它是完全空白的,但例如在 Fedora 上我通常会得到一个闪烁提示),系统在此闲置时间极长(我上次测量了大约 1 分 44 秒),然后第 3 阶段开始。

由于第 3 阶段没有出现任何问题,因此我不知道如何解决此问题。例如 systemd-analyze 给出Startup finished in 16.129s (kernel) + 2.863s (userspace) = 18.993s graphical.target reached after 2.120s in userspace,这对我来说似乎很正常,并且绝对不能解释引导加载程序和操作系统开始启动之间的 1 分钟以上的空白。

更多信息:

  • 视窗才不是这样做。如果我在引导加载程序中选择 Windows 10 条目,它会立即启动引导过程(即使快速启动已关闭)。
  • 它并不总是这样。我不确定这种行为何时开始(可能大约一年前),我想我在 PC 上完全重新安装了两个操作系统,就像我清除所有硬盘并安装 W10 和 Linux 发行版一样从头开始。但没有发生什么异常的事情可以让人想到这个问题的根本原因。
  • 除了细微的差别(比如我之前提到的闪烁提示)之外,从那时起我尝试过的所有 Linux 发行版的行为方式都是相同的。不过,我没有测量不同发行版的启动时间的差异。但在每种情况下,等待时间都远远超过了适当的时间,并且在第 2 阶段和第 3 阶段之间总是相同的。
  • 我的电脑有三个硬盘、两个 SSD 和一个旋转 HDD。我通常将一个 SSD 用于 Windows C:,另一个 SSD 用于 Linux / 分区,而旋转 HDD 用于 Linux /home 和 Windows D: 分区。我尝试过在将 Linux 安装到每个磁盘的过程中编写 MBR 引导代码,并且在所有情况下都会出现相同的问题。所以看来哪个是启动盘并不重要。

我不一定期望有神奇的修复,但正如我所说,我完全不知道如何开始解决此问题,因为在等待期间没有给我任何反馈,而且这个问题很难搜索(例如搜索缓慢的启动时间通常假设存在第 3 阶段问题)。

编辑:

  • 我已经删除了quietsplash添加systemd.show_status=yes到启动参数中。问题仍然存在,即之前有一分钟+等待时间任何出现消息。
  • 的输出dmesg | grep command[ 0.064784] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.11.0-38-generic root=UUID=78354078-8fcd-4223-8fb0-9137207cb415 ro systemd.show_status=yes.
  • 关于 LED 灯:在“等待时间”期间,我的电源按钮旁边的绿灯持续发光,没有闪烁。这是我在机箱上看到的唯一 LED 灯。
  • fdisk -l和的输出lsblk粘贴如下:
Disk /dev/sda: 447,13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: CT480BX500SSD1  
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: 0x00a879e5

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048    104447    102400    50M  7 HPFS/NTFS/exFAT
/dev/sda2          104448 936654957 936550510 446,6G  7 HPFS/NTFS/exFAT
/dev/sda3       936656896 937697279   1040384   508M 27 Hidden NTFS WinRE


Disk /dev/sdb: 1,84 TiB, 2000398934016 bytes, 3907029168 sectors
Disk model: WDC WD20EZRX-00D
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: 0xfc1366de

Device     Boot      Start        End    Sectors  Size Id Type
/dev/sdb1  *          2048 2833283071 2833281024  1,3T  7 HPFS/NTFS/exFAT
/dev/sdb2       2833283072 3907028991 1073745920  512G 83 Linux


Disk /dev/sdc: 223,58 GiB, 240057409536 bytes, 468862128 sectors
Disk model: KINGSTON SA400S3
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: 0x143a208b

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sdc1       452857856 468860927  16003072  7,6G 82 Linux swap / Solaris
/dev/sdc2  *         2048 452857855 452855808  216G 83 Linux

Partition table entries are not in disk order.

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 447,1G  0 disk 
├─sda1   8:1    0    50M  0 part 
├─sda2   8:2    0 446,6G  0 part 
└─sda3   8:3    0   508M  0 part 
sdb      8:16   0   1,8T  0 disk 
├─sdb1   8:17   0   1,3T  0 part 
└─sdb2   8:18   0   512G  0 part /Storage
sdc      8:32   0 223,6G  0 disk 
├─sdc1   8:33   0   7,6G  0 part [SWAP]
└─sdc2   8:34   0   216G  0 part /

相关内容