休止状態でスワップスペースを共有しても安全ですか?

休止状態でスワップスペースを共有しても安全ですか?

2つの異なるLinuxインストールがあるとしましょう。そして第二、すべて同じスワップパーティションを使用します。

私が理解する限り、走っているまたは第二ある時点でそのうちの1つだけを使用するため、スワップの問題は発生しません。しかし、私が実行すると、休止状態の後に開始第二、交換が使用されています両方受動的な形式ですが、データはそこにあります)。

問題は、システムが休止状態の後でも生き残ることができるかどうかです。それ以外の場合、メモリが破損する可能性がありますか?回復できないので正常に起動しますか?

注:私の主なパフォーマンスは、ハードドライブで利用可能なスワップパーティションを検出して使用するライブシステムです。休止状態システムがハングしますか?

答え1

問題は、休止状態システムがまだ生き残ることができるかどうかです。

システムBがスワップスペースを使用している場合(おそらくそうだと思いますが)、システムAが休止状態で正常に再起動できるかどうか疑問に思います。

それ以外の場合、メモリが破損したり、Aを回復できなくなりますか?

カーネル文書には以下が含まれています。

 * BIG FAT WARNING *********************************************************
 *
 * If you touch anything on disk between suspend and resume...
 *                              ...kiss your data goodbye.

私はこれが実際のファイルシステムに適用されると仮定します[src]/Documentation/power/swsusp.txt。なぜなら、次のように明示されているからです。

リカバリプロセスはリカバリデバイスがあることを確認し、見つかった場合は休止状態の画像署名の内容を確認します。両方が見つかると、休止状態のイメージが再開されます。

だから、仮説署名は交換装置の先頭にあり、仮説一般的なスワップの使用は、デバイスの先頭でも開始されます。その後、一般的なスワップの使用は「休止状態イメージ署名」を破壊し、システムAが起動するとその署名が見つからず、休止状態から再開されずに新しく開始されます。

しかし、これらの仮定は合理的に見えますが、システムを実装する人々の献身がなければ、それは完全に合理的であるとは言えません。私のアドバイスは、そうすればおそらく深刻なギャンブルをすることです。

noresumeただし、休止状態を使用していてまだブートローダメニューに対応するオプションがない場合は、休止状態から再開することをスキップするようにカーネルラインにそのオプションを含めることをお勧めします。私が知っている限り、残念ながらスワップの使用を無効にするカーネルラインパラメータはありません。たとえば、システムAが休止状態でスワップを使用していることがわかっている場合は、システムBについてそうです。

答え2

最初のシステムはメモリをスワップに格納するため、同じスワップを使用する2番目のシステムを起動しようとすると、2つのうちの1つが発生します。第2のシステムは、第1のシステムの第1のデータを使用するように戻そうと試みる。衝突が発生し、やけどをします。そうしないと、最初のシステムのメモリが消去され、回復できなくなります。

通常、オペレーティングシステムが休止状態の間は、他のオペレーティングシステムから起動しないでください。 2番目のオペレーティングシステムが最初のオペレーティングシステムがマウントしたのと同じパーティションをマウントしようとすると、ファイルシステムが破損します。 2番目のオペレーティングシステムは、最初のオペレーティングシステムがまだキャッシュしているデータが何であるかを知らないためです。システムは、休止状態の間に第2のオペレーティングシステムが変更されたことを知っている。

関連情報