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

30

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

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

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

Ханно Фиц
источник
3
Вот официальное руководство от Debian по поводу спящего режима без свопа: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Франческо
Несмотря на то, что у вас много оперативной памяти, подкачка может помочь вам и в повышении производительности, когда пространство неиспользуемого (и, следовательно, выгруженного) кода приложения используется для кэширования данных.
Майкл Шмид

Ответы:

23

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

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

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

Роберт Мунтяну
источник
Я также думал о файле подкачки, но я не знаю, как передать это ядру при запуске. Могу ли я просто сделать "resume = / path / to / file", как я бы сделал с блочным устройством?
Ханно Фиц
Смотрите мое обновление со ссылкой на документацию по восстановлению из файлов подкачки.
Роберт Мунтяну
8
Плз, добавь команду chmod 0600 /swapfile. Всемирно читаемый файл подкачки - это огромная локальная уязвимость.
user4035
2
Я знаю, что это старый, но я бы использовал «усеченный» вместо «дд». Нет необходимости записывать что-либо на диск.
Гвидо
4
На самом деле вам нужно записать последовательность чего-либо на диск, создав файл с усеченным результатом swapon: /swapfile: skipping - it appears to have holes..
Хловдал
9

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

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

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

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


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

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

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

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

Nik
источник
2
Приостановка на флешку будет такой медленной .
Тадеуш А. Кадлубовский,
6
Я имею тенденцию открывать множество вещей во время работы, и мне нравится возвращать все это, как это было на следующий день. Ubuntu быстро запускается (на самом деле, мне кажется, что он быстрее, чем возобновляется), но Eclipse, Firefox и т. Д. Могут и не быть, а другие приложения могут даже не сохранять свое текущее состояние при закрытии.
Ханно Фитц
2
@ Ханно, Firefox также позволяет вам сохранять сессии вплоть до вашей позиции прокрутки. Итак, Save-and-Quite - это здорово. Не уверен, что Eclipse может сделать.
Ник
3
Firefox не помнит, в каком рабочем пространстве у вас было каждое из его окон, поэтому есть небольшая PITA необходимость перераспределить их обратно на место после ожидания их загрузки. Там также нет способа восстановить состояние вещей, таких как окна терминала.
интуитивно
При использовании этой флешки USB гибернация всех 8 ГБ памяти займет менее минуты .
интуитивно
4

Да, но не без особых усилий. Существует 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, и скомпилировать ядро ​​самостоятельно.

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

Нагул
источник
2
Ну, я управлял несколькими ядрами (я был энтузиастом Gentoo уже несколько лет), но была причина, по которой я переключился на Ubuntu ...;)
Ханно Фитц
3

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

Цитировать:

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

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

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