restart -faはコールドスタートのための安全な方法ですか?

restart -faはコールドスタートのための安全な方法ですか?

現在使用しているコンピュータでは、ワームの再sudo reboot起動のみが提供されます。

sudo reboot -f安全な方法です寒い再起動(BIOS経由)しますか?

EFIではなくMBRから起動し、upstart(Linux Mint 17.3(Ubuntu 14.04ベース))を使用します。

これは少し速すぎるようなので、ファイルシステムが破損するか少し心配になります。

ベストアンサー1

要点reboot -fは、初期化システムが失敗または失敗すると予想される場合、初期化システムが実行するすべての終了ステップをバイパスすることです。この状況以外には使用しないことをお勧めします。

ファイルシステムを順番にアンマウントすることがそのような手順の1つであると正しく仮定できますupstart

systemdまったく異なるワックスボールになり、効果も異なる場合があります...これが刺すのに注意する必要があるもう1つの理由ですreboot -f。かなりあいまいな詳細であり、明らかに何も見つかりませんでした)。ファイルに書き込む観察した効果との関係)。


man 2 rebootAFAICT、カーネル2.1.122、および以前のi386アーキテクチャについて言及したコメントは依然として正確です。少なくともカーネルv4.17から始まり、32ビットおよび64ビット用の新しい統合x86アーキテクチャを使用します。

カーネルをWarmlyまたはColdlyで再起動するかどうかが決まりますreboot_mode。しかもただreboot=これはカーネルオプション(例えば)によって設定されますreboot=cold

あなたがそれに興味を持っていて、デフォルトが文書化されていないようであれば、素朴な最初のステップはそれを指定することです。これは純粋に起動オプションのように見え、実行中のシステムでは変更できません。

https://elixir.bootlin.com/linux/v4.17/source/Documentation/admin-guide/kernel-parameters.txt#L3732

https://elixir.bootlin.com/linux/v4.17/source/kernel/reboot.c#L518

https://elixir.bootlin.com/linux/v4.17/source/arch/x86/kernel/reboot.c#L545


最後のリンクを見ると、理論的な可能性の1つは、次のいずれかを再起動することです。タイプ代替チェーンのメソッドは、他のすべてのinitスクリプトが停止した後に機能しませんupstart(またはその逆の場合も同じですか??)。したがって、手動呼び出しはreboot -f異なる再起動タイプを使用し、それに準拠する方法も異なりますreboot_mode。 (特定システムでは?)

LinuxとWindowsの再起動動作の違いを報告できる場合は、カーネル開発者が興味を持っている可能性があります。しかし、彼らが最も興味を持っているのは、Linuxをまったく再起動できないかどうかです。 :).いくつかのprintk()とsleep呼び出しを再コンパイルして上記のおおよその推測を確認し、実際にどの再起動タイプが使用されているかを調べたいと思います。

また、ブートオプションに別の再起動タイプを渡してみてください。やや間接的な推測をしているようですが...この複雑なカーネルコードがシステムにきちんとした修正を提供できない場合は、特定の再起動オプションを渡すのが最善の方法のようです。

おすすめ記事