Можно ли перевести Linux в спящий режим без раздела подкачки?

34348
Hanno Fietz

Я не установил раздел подкачки на моем ПК, потому что: а) у меня достаточно ОЗУ (8 ГБ) и б) у меня есть большие жесткие диски, которые я не хотел нарезать на мелкие кусочки, поэтому мои самые маленькие разделы - 50 GiB, и я уже использую их для ОС.

Теперь, чтобы перейти в спящий режим, мой Linux (Ubuntu Jaunty) требовал замены. У меня был запасной раздел на 100 ГБ, поэтому я настроил его как swap, но меня это не устраивает. Он используется только для гибернации (всегда достаточно свободной оперативной памяти и система никогда не переключается), а также немного велика для замены. Кроме того, мне в конечном итоге понадобится это для чего-то другого.

Как я могу перейти в режим гибернации (приостановить на диск) без раздела подкачки в Ubuntu Jaunty?

30
Вот официальное руководство от Debian по поводу спящего режима без свопа: https://wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition Francesco 9 лет назад 3
Несмотря на то, что у вас много оперативной памяти, подкачка может помочь вам и в повышении производительности, когда пространство неиспользуемого (и, следовательно, выгруженного) кода приложения используется для кэширования данных. Michael Schmid 6 лет назад 0

4 ответа на вопрос

23
Robert Munteanu

Непроверенная идея: почему бы вам не создать обертку для s2diskкакой-либо утилиты, которая обрабатывает приостановку на диске, которая управляет файлом подкачки (в отличие от раздела подкачки) и удаляет его при возобновлении?

  • Создайте файл подкачки: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8 ГБ)
  • Настройте файл подкачки: mkswap /swapfile
  • Только когда вам нужно установить приостановку, вы можете активировать ее: swapon /swapfile
  • Когда вы возобновите, вы можете отключить его: swapoff /swapfile

Возобновление из файлов подкачки возможно, и задокументировано на kernel.org

Я также думал о файле подкачки, но я не знаю, как передать это ядру при запуске. Могу ли я просто сделать "resume = / path / to / file", как это было бы с блочным устройством? Hanno Fietz 14 лет назад 0
Смотрите мое обновление со ссылкой на документацию по восстановлению из файлов подкачки. Robert Munteanu 14 лет назад 0
Смотрите также ответ nik ниже для хорошего учебника по Ubuntu, который использует информацию, документированную по ссылке kernel.org выше. Hanno Fietz 14 лет назад 0
Плз, добавьте команду `chmod 0600 / swapfile`. Всемирно читаемый файл подкачки - это огромная локальная уязвимость. user4035 10 лет назад 8
Я знаю, что это старый, но я бы использовал «усеченный» вместо «дд». Нет необходимости записывать что-либо на диск. Guido 10 лет назад 1
На самом деле вам нужно записать последовательность чего-либо на диск, создав файл с усеченным результатом в `swapon: / swapfile: skipping - в нем, похоже, есть дыры`. hlovdal 10 лет назад 3
9
nik

У вас, вероятно, есть два пути здесь,

  1. Рассмотрим файл подкачки вместо раздела подкачки
    • Использование небольшой (по сравнению с размерами разделов, но достаточно большой для памяти) флешки для swap-раздела

Что бы вы ни делали, я думаю, что swapoffи swaponпосле резюме будет полезно.
И, поскольку вы действительно не требуете своп, вы можете оставить егоswapoff после возобновления.

Обновление: в комментариях говорится о медленном спящем режиме USB.
Итак, проверяйте в пронумерованном порядке - в первой схеме есть заметки для гибернации с использованием swap-файлов.


Из любопытства
я хотел бы знать, почему вы хотите переходить в режим гибернации, когда Linux, такие как Ubuntu, могут закрываться и запускаться так быстро.
Я предполагаю, что,

  • Вы загружаете свой 8 ГБ ОЗУ с некоторыми приложениями и оставляете их там
  • или вы просыпаетесь по локальной сети

Но так ли это на самом деле? или у вас есть какая-то другая причина для спячки?

Я использую USB-загрузку Ubuntu и всегда выключаюсь.

Приостановка на флешку будет * такой медленной *. Tadeusz A. Kadłubowski 14 лет назад 2
Я имею тенденцию открывать множество вещей во время работы, и мне нравится возвращать все это, как это было на следующий день. Ubuntu быстро запускается (на самом деле, мне кажется, что он быстрее, чем возобновляется), но Eclipse, Firefox и т. Д. Могут и не быть, а другие приложения могут даже не сохранять свое текущее состояние при закрытии. Hanno Fietz 14 лет назад 6
@ Ханно, Firefox также позволяет вам сохранять сессии вплоть до вашей позиции прокрутки. Итак, Save-and-Quite - это здорово. Не уверен, что Eclipse может сделать. nik 14 лет назад 2
Firefox не помнит, в каком рабочем пространстве у вас было каждое из его окон, поэтому есть небольшая PITA необходимость перераспределить их обратно на место после ожидания их загрузки. Там также нет способа восстановить состояние вещей, таких как окна терминала. intuited 11 лет назад 3
Гибернация всех 8 ГБ памяти заняла бы меньше минуты с помощью [этой флешки] (http://www.codinghorror.com/blog/2012/11/a-ssd-in-your-pocket.html). intuited 11 лет назад 0
4
nagul

Да, но не без особых усилий. Существует 2 различных способа перехода в режим гибернации (приостановка на диск) в Linux:

  1. swswap, который входит в ядро
  2. tuxonice (ранее suspend2), которого нет.

Tuxonice доступен в виде патча для ядра и позволит вам записать образ приостановки в обычный файл.

Из Википедии :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:  * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image; * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable; * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able; * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website); * It is more flexible and configurable (via a /sys/power/tuxonice interface); * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend. * It supports encryption by various methods; * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM. 

Поскольку он не включен в ядро ​​по умолчанию, вам, к сожалению, придется выбрать патчи для ядра, доступные для Jaunty, и скомпилировать ядро ​​самостоятельно.

Есть некоторые расширенные инструкции здесь, но вы можете попробовать предложение Роберта, прежде чем блуждая по этой дороге, если вы не старая рука при прокатке своих собственных образов ядра.

Ну, я управлял несколькими ядрами (я был энтузиастом Gentoo уже несколько лет), но была причина, по которой я перешел на Ubuntu ...;) Hanno Fietz 14 лет назад 2
3
0x89

Как Джоэл и Джефф обсуждали на подкасте, отключение свопа, как правило, не очень хорошая идея - даже если бы оно того стоило (а это не так) - в настоящее время дисковое пространство настолько невероятно дешево, что его включение не стоит вам что-нибудь. Вы можете получить концерт менее чем за десять центов (то есть евроцентов)!

Цитировать:

Этвуд: Я думаю, что каждый гик в какой-то момент проходит через этот мыслительный процесс: у меня есть тонны и тонны памяти, может быть, я смогу свернуть свой файл подкачки. У меня на самом деле есть запись в блоге об этом. ... Изюминка: это никогда не стоит.

Послушайте подкаст, чтобы узнать больше о разговоре (он начинается примерно на минуте 59), или прочитайте вопрос, связанный с ошибкой на сервере, который указан на странице подкаста (вопрос 23621). Они говорят о файле подкачки Windows, но аргумент одинаково действителен для UNIX (хотя они могут управлять памятью по-другому).

Ну, я не возражаю против включения свопа, на самом деле, моя текущая установка просто использует этот резервный раздел на 100 гигов как своп. Однако я не против иметь раздел подкачки *. Своп на 100 гигов - это полная чушь, и я не хочу иметь маленький раздел только для свопа. Swapfile отлично подходит для меня, благодаря ответам Роберта и Ника, теперь я также знаю, как использовать их для гибернации, поэтому я буду использовать это. Hanno Fietz 14 лет назад 1
В чем проблема с «крошечным» разделом? Btw. Я бы не стал считать крошечный раздел на 8 ГБ совсем маленьким - я использовал установки Linux в течение многих лет, которые жили на / partiton, который был меньше этого. И у первого компьютера, который я использовал, был жесткий диск на 20 МБ .. 0x89 14 лет назад 4
На самом деле, Linux управляет памятью совершенно иначе, чем Windows. Даже на моем старом ноутбуке с 2 ГБ оперативной памяти практически не используется, 200 МБ без нагрузки - это максимальное значение, которое я видел vava 12 лет назад 1
@vava: Вы можете быть правы, я немного адаптировал свой ответ. Но тот факт, что вы увидели, что 200 МБ выгружено в ваш своп, на самом деле подтверждает мою точку зрения .. 0x89 12 лет назад 0