我有一台带有大量磁盘的机器,并且在 HBA 模式下还有一个额外的 SAS 控制器。这似乎会导致 Linux 在 initramfs 中至少思考 8-10 秒,然后磁盘才会真正出现。磁盘检测的超时时间为 10 秒。这导致 BTRFS/MDADM/etc 无法挂载我系统中的 RAID1,将我置于紧急 shell 中,在那里我可以实际挂载磁盘并继续正常运行。
我的问题是,如何从 10 秒开始增加启动时的超时时间?是在 systemd 中吗?是在 udev 中吗?还是在其他地方?我不确定从哪里开始查找,在 Google 上搜索这个问题似乎大多会找到想要增加 I/O 超时或其他(scsi/lun/etc)超时时间的人,但我不是在寻找这个。
答案1
我终于找到了!当然,这只是一个简单的内核参数,可以在这里找到https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
我特别寻找的参数是rootdelay
,我已经尝试过了rootwait
,但显然这还不够,因为它仍然在 10 秒后中止了等待。现在它确实做到了不是等待指定的整整 30 秒,但只需大约 10-15 秒,具体取决于我的磁盘显示所需的时间,因此设置一个非常高的值似乎不会有什么坏处,尽管我只为我的用例设置了 30,但到目前为止似乎已经完全解决了这个问题!
您可以将其添加到 Grub 或 systemd-boot 中的内核启动参数中。
格鲁布:/etc/defaults/grub->GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=30 quiet"
systemd-boot:/boot/loader/entries/yourentry.cfg->options rootdelay=30 [other options]