Краткий ответ: /sys /power /resume
Намного дольше отвечу, потому что само по себе ничего хорошего не принесет.
Большинство дистрибутивов рекомендуют инициировать возобновление из процесса init / PID 1 (раннее пространство пользователя). Тем не менее, инструкции почти всегда сообщают вам добавить аргумент строки cmd ядра в ваш загрузчик с целью резюме. Причина этого заключается почти в каждом случае, что инструмент сборки initramfs (dracut / mkinitcpio / initramfs-tools) сам по себе запускается этим аргументом в конфигурации.
Исходя из вашего примера и дистрибутива, я предполагаю, что вы используете низкоуровневый интерфейс ядра для приостановки (swsusp). Существует ряд других утилит, которые можно использовать для запуска процесса приостановки; все они по сути являются обертками вокруг первого предмета, swusp.
- swusp - интерфейс ядра низкого уровня; интерфейс пользовательского пространства через sysfs
- uswswp - низкоуровневая оболочка для приостановки работы программного обеспечения - предоставляет утилиты s2disk, s2ram (не активно поддерживается)
- pm-utils - скрипты высокого уровня для настройки процесса
- systemd-suspend - в системах systemd доступна цель приостановки, которая инициирует операцию приостановки через интерфейс ядра.
Возобновить настройку
Упрощенный план последовательности загрузки в linux с использованием образа initramfs:
[BIOS] ==> [Boot Loader] ==> [Ядро на временные rootfs - initramfs] ==> [Ядро на rootfs - диски]
В конце этапа initramfs есть небольшое окно, где может произойти возобновление; после того, как ядро запустило PID 1 (systemd или init), загрузило драйверы для рейда, но перед монтированием реальных дисков.
Я привел пример типичной конфигурации резюме.
Это предполагает, что указанный вами путь возобновления является разделом подкачки; а не «нормальный» раздел, содержащий файл подкачки. Файл подкачки требует дополнительной настройки.
Метод systemd отличается - он использует правило udev на основе resume.target, которое запускает процесс возобновления. Стоит посмотреть, не подойдет ли более традиционный подход к образу загрузчика / initramfs. Это прямое объяснение того, как система, основанная на init, будет делать это; но немного сложнее вручную вставить свой собственный скрипт и получить правильные взаимозависимости / относительное время.
Суть в том, что момент времени, в который возобновляется возобновление, находится непосредственно перед моментом, когда ядро монтирует «настоящие» жесткие диски. Поэтому, если ядро может смонтировать весь файл fs, оно также обладает всеми возможностями и информацией, необходимыми для монтирования только раздела подкачки.
Убедитесь, что ваш раздел подкачки смонтирован через fstab; инструмент dracut initramfs специально ищет его и не включает модуль возобновления, если раздела подкачки нет.
настроить загрузчик
Предполагая, что вы используете grub2, вам нужно добавить resume=/dev/mapper/isw_qfyzrvbsusf_Volume0p9
в поле GRUB_CMDLINE_LINUX_DEFAULT
в /etc/default/grub
Обновите ваш образ grub, обычно с помощью команды: sudo grub2-mkconfig -o /boot/grub2/grub.cfg
восстановить initramfs
Вам необходимо перестроить образ initramfs с возможностью возобновления (а также изменениями рейда, которые вы уже сделали). Debian предоставляет инструменты dracut и initramfs для генерации initramfs. Он должен быть восстановлен с помощью модуля возобновления. С помощью dracut добавьте аргумент командной строки --add resume
. С помощью update-initramfs
добавьте запись resume=/dev/mapper/isw_qfyzrvbsusf_Volume0p9
в файл конфигурации /etc/initramfs-tools/conf.d/resume
Это должно быть это; при условии, что я сделал некоторые правильные предположения о вашей конфигурации.
Редактировать; предполагая, что вы можете правильно рассчитать время, вы можете отобразить основной / вспомогательный номер устройства раздела подкачки в / sys / power / resume из сценария инициализации, чтобы вызвать возобновление. Ваше изображение initramfs (или initd) должно иметь поддержку возобновления, иначе этот элемент sysfs и возможности, которые он представляет, не будут существовать. См. Https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/983805.