Linuxを古い(すでに復元された)休止状態から復元する

Linuxを古い(すでに復元された)休止状態から復元する

Linux でスワップ パーティションから休止状態に移行し、再開することに成功しました。私の知る限り、それ以降スワップされたことはなく、スワップ パーティションも変更されていません。以前の状態の休止状態イメージは、ヘッダーが変更されただけで、まだ存在し、機能しているのではないかと思います。

もしそれが本当なら、このような画像から再開するにはどうすればよいでしょうか?では、そのようなことを試みることが賢明かどうか、また、それが何を損なう可能性があるかという疑問が残ります。

これを機能させる明らかな可能性は、休止状態のプロセスを再現し、実際にはイメージを保存しないことです。誤った操作を行った後、/sys/power/resume私はこのセグメントに遭遇しました。https://www.kernel.org/doc/Documentation/power/swsusp.txt:

The resume process checks for the presence of the resume device,
if found, it then checks the contents for the hibernation image signature.
If both are found, it resumes the hibernation image.

このことから、この署名は休止状態で書き込まれるもので、デバイスを再開する必要があることを示し、再開後に再度再開されないように消去されるのではないかという印象を受けます。たとえそれが本当だとしても、私はカーネル コードから署名に関する情報を取得できるほど熟練しておらず、スワップ パーティションの 16 進ダンプは驚くほどまばらで、理解できない構造でいっぱいです。

答え1

私はかつて同じような間違いを犯しました:

  1. Windows をホスト OS として実行し、VirtualBox で Linux をゲスト OS として実際にインストールしました (VMDK にマップされた未加工の仮想デバイス経由)。私はこれを問題なく毎日実行しており、数日ごとに、同じ Linux インストールを Windows 上で仮想的に実行したり、実際にベアメタル上で実行したりしています。
  2. 何らかの理由で、Windows は知らないうちに休止状態になりました。これは、手動で行うことはほとんどなく、また許可することもありません (以下の潜在的な問題を回避するため)。
  3. しばらくマシンを使用していなかったので、以前の状態を忘れてしまいました。再起動したとき、すべてが正しくシャットダウンされた (VM が正常にシャットダウンされ、次にホスト OS が正常にシャットダウンされた) と想定しました。
  4. 私は Linux をネイティブに起動しました。これは基本的にハード クラッシュ後に Linux を再起動するものなので、すべてほぼ正常でした。その時点では以前の出来事が起こったことを覚えていなかったので、異常なことにはまったく気づきませんでした。
  5. 休止状態から復元していることに気づかず、新鮮な気持ちで Windows を再起動しました。
    • これには、実際の Linux SSD から実行されている VM をメモリに再度ロードすることが含まれます。

結果は?Linux VMはすぐにクラッシュし、Linux のすべてが完全にダメになり、修復も回復も不可能になった

最初にリカバリ CD から起動して ext4 ファイルシステムを修復してからアクセスした場合でも、多数のランダムに破損したシステムおよびユーザー データ ファイルを含む起動不能なシステムになり、整合性についてまったく自信が持てなくなりました。

そこから唯一まともな方法は、Linux を最初から再インストールし、バックアップからデータを復元することでした。

同様の理由から、以前に保存した休止状態ファイルから起動した場合には、ほぼ間違いなくこれと同じことが発生します。(ただし、正常に機能しているシステムでどのようにしてそれが「許可」されるのかはわかりません。)

関連情報