保留中のセッションに興味がない場合は、開始するのが安全です。

保留中のセッションに興味がない場合は、開始するのが安全です。

それで、誤って処刑されるのではなく、echo disk > /sys/power/state混乱にしました。echo mem > /sys/power/stateさて、私は私が何をしたのか気づいた。

設定に関するいくつかの詳細:

  • ルートパーティションでLUKS暗号化を使用します。
  • EFIスタブブートローダ(efibootmgrエントリを使用してカーネルパラメータを設定できます)
  • スワップファイルは、LUKSパーティションのBtrfsファイルシステムにあります。
  • スワップファイルオフセットがありません...私は台無しにしないでください。

私のカスタムinitramfs initスクリプトはまだ回復を実装していません。したがって、起動可能なUSBに行き、何とかカーネルアーカイブ(initramfsがカーネルに組み込まれている)を抽出し、initファイルを変更してから再圧縮する必要があります。カーネル実行可能ファイルでこれが可能な場合。カーネルのソースコードを入手し、Gentoo環境に合わせて再コンパイルするのに多くの時間を費やさない限り、おそらくカーネルを再コンパイルすることはできません。しかし、最後の手段でそうすることもできますね。それでは、1.更新された初期化ファイルでvmlinuz(カーネルアーカイブ)をどのように編集しますか?

LUKSパーティションがロック解除された後、このスワップファイルにどのようにアクセスしますか?スワップファイルのオフセットはありません。今、Linusは私のスワップファイルがどこにあるのかを知ることができるかどうか疑問に思います。 "echo /dev/mapper/myrootfs > /sys/power/state"のように簡単ですか?初期の休止状態はうまくいくようだったので、Linuxは私のスワップファイルがどこにあるのかを見つけるのに問題がないようです。回復も同じではないでしょうか?だから2.スワップファイルをどのように処理するのですか?オフセットがわかりません。読み取り専用でインストールし、スワップファイルを/sys/power/stateとして指定すると機能しますか、それともファイルシステムが破損していますか? (ファイルシステムが技術的に「まだマウントされている」ためです)あるかどうかを教えてください。私はそうではありません。

編集:保存されていない文書などの重要な項目はありません。開いているのはX、WM、およびターミナルウィンドウだけです。正常に(復元された状態で)起動し、対応する休止状態のコピーを削除することができれば(言ったように、保存されていない文書や同様のものはありません)、問題はありません。それは可能ですか?それとも、現在私のファイルシステムが安全でない状態で、マウントするとファイルシステムが破壊されますか?

ベストアンサー1

保留中のセッションに興味がない場合は、開始するのが安全です。

一時停止したセッションを開始して再開しないと、ファイルシステムは破損しません。セッションの復元に必要なすべてのデータは、スワップファイルにのみ保存されます。セッションを保存した後、ファイルシステムが「まだマウント」されないように、コンピュータは正常にシャットダウンされます。

同様の設定があります(systemdを使用)。何が起こるかを確認するためにシナリオを再現しました。

  1. 私のシステムをディスクに一時停止する
  2. resume=<device> resume_offset=999999ブートローダのカーネルコマンドラインから削除

システムは正常に起動します(修復は行われません)。私のファイルシステムは正常で、スワップスペースは空です。

一時停止したシステムの再開

休止状態で再起動する問題を解決するには、次の手順を実行します。

  1. 一部のインストールメディアから起動
  2. システムパーティション(およびスワップファイルを含むパーティション)のロックを解除してマウントします。
  3. スワップファイルのオフセットを見つけます(参照:このArchWikiの記事Btrfsの場合)
  4. リカバリデバイスとオフセットを指定するには、ブートローダエントリを変更します。
  5. システムを正常に再起動します。

気づく一時停止後にファイルシステムを変更した場合、再開は安全ではありません。

カスタムinitスクリプトを使用している場合は、initramfsでスクリプトを変更する必要があります。最も簡単な方法は、スクリプトを変更し、一部のインストールメディアから再生成することです。
スクリプトで次の作業を行う必要があります。

echo 99999 > /sys/power/resume_offset
echo /dev/mapper/myrootfs > /sys/power/resume

インストールメディアでinitramfsを修正して再構築する

見てsystemdがすること

おすすめ記事