Восстановить 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.

Из этого у меня складывается ощущение, что эта сигнатура — то, что пишется в спящем режиме, чтобы обозначить, что устройство необходимо возобновить, а затем стереть, чтобы предотвратить повторное возобновление. Даже если это правда, я недостаточно опытен, чтобы получить информацию о сигнатуре из кода ядра, а шестнадцатеричный дамп раздела подкачки на удивление скуден и полон структур, которые я не понимаю.

решение1

Однажды я совершил ошибку, сделав нечто подобное:

  1. Запустил Windows как хостовую ОС и настоящую установку Linux как гостевую ОС в VirtualBox (через виртуальное устройство, сопоставленное с VMDK). Я делаю это ежедневно без проблем, переключаясь между одной и той же установкой Linux, запущенной виртуально поверх Windows, и фактически на голом железе каждые несколько дней.
  2. По какой-то причине Windows перешла в спящий режим без моего ведома, чего я практически никогда не делаю вручную и не позволяю делать другим (чтобы избежать следующих потенциальных проблем).
  3. Я не пользовался машиной некоторое время и забыл, в каком состоянии она была до этого. При повторном запуске я просто предположил, что все было выключено должным образом (VM аккуратно выключена, затем хостовая ОС аккуратно выключена).
  4. Я загрузился прямо в Linux нативно. Поскольку это была по сути перезагрузка Linux после жесткого сбоя, все было более или менее нормально. Поскольку я даже не помнил в то время, что что-то из предыдущего произошло, я вообще ничего необычного не заметил.
  5. Я перезагрузился в Windows, мысленно настроившись на свежую мысль, не заметив, что система выходит из спящего режима.
    • Это включало загрузку обратно в память, при этом виртуальная машина работала с настоящего Linux SSD.

Результат? Виртуальная машина Linux немедленно рухнула, ивсе Linux было полностью испорчено, безнадежно не подлежало ремонту или восстановлению.

Даже восстановление и последующий доступ к файловой системе ext4 путем предварительной загрузки с компакт-диска восстановления привели к тому, что система перестала загружаться, а в ней оказалось множество случайно поврежденных системных и пользовательских файлов данных, из-за чего у меня не осталось никакой уверенности в целостности чего бы то ни было.

Единственным разумным решением было переустановить Linux с нуля и восстановить данные из резервных копий.

По аналогичным причинам это почти наверняка произойдет, если вы загрузитесь из ранее сохраненного файла гибернации. (Хотя я даже не уверен, как правильно функционирующая система «позволит» вам это сделать?)

Связанный контент