web-dev-qa-db-ja.com

Linux / Systemdでの起動時のディスク検出タイムアウトを増やす

私は多くのディスクを備えたマシンと、追加のSAS HBAモードのコントローラーを持っています。これにより、ディスクが実際に表示される前に、Linuxがinitramfsで少なくとも8〜10秒間考えます。 。ディスク検出のタイムアウトは10秒です。これにより、BTRFS/MDADM/etcがシステムにあるRAID1のマウントに失敗し、実際にディスクをマウントして問題なく続行できる緊急シェルに移動します。

私の質問は、起動時にこのタイムアウトを10秒からどのように増やすのですか? systemdにありますか?それはudevにありますか?何処か別の場所?どこから探し始めればよいかわからず、この問題についてグーグルすることで、I/Oタイムアウトや他の(scsi/lun/etc)タイムアウトを上げようとしている人がいるようですが、私はそれを探していません。

11
Alex

やっと見つけた!もちろんこれは単純なカーネルパラメータですが、ここにあります https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html

私が特に探していたパラメータはrootdelayです。私はすでにrootwaitを試しましたが、10秒後にも待機を中止したため、明らかにそれだけでは不十分でした。今では実際には指定された30秒間待機しませんが、ディスクが表示されるまでの時間に応じて約10〜15秒しか待機しません。したがって、実際に高い値を設定しても問題はないように見えますが、使用例では30しか設定していないため、これまでのところ問題は完全に解決されているようです。

これをGrubまたはsystemd-bootのカーネルブートパラメーターに追加できます。

Grub:/ etc/defaults/grub-> GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=30 quiet"

systemd-boot:/boot/loader/entries/yourentry.cfg-> options rootdelay=30 [other options]

3
Alex