文字通りマウントの失敗のみであり、変更する必要があるのはそれだけです。
だからあなたのリクエストの手紙は答えるのは簡単です。ドロップインファイルを作成します。
# /etc/systemd/system/local-fs.target.d/nofail.conf
# Clear OnFailure= (set it to nothing)
[Unit]
OnFailure=
これにより、linux sysvinitがこの部分的な障害のシナリオを許可することですでに苦しんでいる問題を除いて、新しい問題は追加されないと思います。
しかし、あなたはまた、どのように問題を指摘長く利用可能になるように、指定されたブロックデバイスを待つ必要があるにsystemdを。全体としてfstabジェネレーターの代わりを提供しない限り、これを構成する方法はありません。https://www.freedesktop.org/software/systemd/man/systemd.generator.html
ここであまり広く使用されていないコードを大量にダンプしても、システムの回復力が向上する可能性は低いと思われます。最も近い解決策は、既存のfstabジェネレーターにパッチを適用することだと思います。それはそれほど複雑ではありません、あなたはそれを回避することができます/重要な変更に追いつくことができると思います。
お使いのディストリビューションは、自己完結型の持っていた場合は技術的には、mountallはsysvinitスクリプトを、あなたがでていることフック試みることができるしかし、それは非常にブートプロセスを変更します- 。それは実際だよりフォークの。そのアプローチはお勧めしません。
https://unix.stackexchange.com/a/393711/29483
ユニットファイルを検索する場合、ブートがにフォールバックする方法はほとんどありませんemergency.target。通常
.mount、ローカルファイルシステムのユニットに障害が発生local-fs.target
し、障害が発生した場合です。または、initramfsがsystemdを使用している場合、initramfsがルートファイルシステムのマウントに失敗した場合。
local-fs.target持っていOnFailure=emergency.targetます。また、ローカルファイルシステムのユニットがlocal-fs.targetのRequiredリストに自動的に追加されるため、失敗します(それらがなければ
DefaultDependencies=no)。
$ systemctl show --property Requires local-fs.target
Requires=-.mount home.mount boot.mount boot-efi.mount