У порівнянні з попередніми LTS (16.04) зміни, зроблені в налаштуваннях за замовчуванням. У моєму випадку сплячка не спрацювала, поки я не зробив кілька кроків, серед них збільшив розмір файлу swap, увімкнув його, переконався, що політики дозволяють це і т.д.
Це може бути моєю найдовшою відповіддю на всій StackExchange, тому я спробував зробити заголовки описовими .
Черевики як не було сплячки
Було б доцільно переглянути ваші журнали ( dmesg
можливо, допоможе) і побачити, чи є щось там. Є причини, коли, незважаючи на те, що ви сказали системі перезимувати, вона насправді не вийде, або замість неї буде призупинено оперативну пам’ять (сон).
Огляд kern.log
і syslog
пошук будь-яких повідомлень про сплячку, також не зашкодить. Розділи, що починаються з "проблеми", можуть допомогти вам у вирішенні конкретних проблем.
Поміняйте файл файлом або розділом
Однією з важливих змін є те, що тепер у вас НЕ є розділ swap, але у вас є файл swap.
Файл swap може не працювати для вашої суміші апаратних засобів / драйверів / ОС та режиму глибокого сну.
Гібернація вимкнена
Політика також може вимкнути або заборонити сплячку.
Жаргон
Підвищення оперативної пам’яті - оперативна пам’ять зберігає дані, комп’ютер переходить у режим сну швидше, витрачається більше енергії при зупиненні, прокидається швидше. Деякі називають це сном.
Підвісити до диска - він теж сплячий. Оперативна пам’ять зберігається для заміни (розділу або файлу), комп'ютер переходить у режим сну повільніше, витрачає менше енергії під час сплячки, прокидається повільніше.
Передумови - у вас достатньо місця?
Щоб перейти у сплячку, вам потрібно (спрощення тут) зберегти всю оперативну пам’ять на жорсткому диску. Отже, для цього потрібно виділити достатньо місця. Якщо цього не зробити, це не вдасться, і ви не впадете в сплячку.
free -m
підкаже, скільки пам’яті ви маєте, використовуєте та скільки у вашому свопі.
df -h
підкаже, скільки дискового простору у вас на кожній точці монтування та скільки використовується, безкоштовне тощо. Це важливо, оскільки ви, можливо, захочете пізніше вказати, де буде розміщуватися ваш файл заміни або який розділ "обрізати", щоб мати достатньо місця для заміни.
cat fstab
повинен надати вам інформацію, якщо у вас є розділ або файл із свопом. Згідно з питаннями Ubuntu Hibernation FAQ swapfile
не завжди може працювати з деякими комбінаціями апаратних засобів / драйверів.
Якщо у вас недостатньо місця, дотримуйтесь поширених запитань про swap Ubuntu . Він розповідає про те, як збільшити файл swap, додати інший, перевірити, чи він використовується тощо. За допомогою команд та пояснень. Дійсно приємний ресурс.
У мене не вистачає місця для розміщення оперативної пам’яті!
Документи ядра кажуть:
/ sys / power / image_size контролює розмір зображення, створеного механізмом призупинення на диск. Можна записати рядок, що представляє невід'ємне ціле число, яке буде використовуватися як верхня межа розміру зображення, в байтах. Механізм призупинення на диск зробить все можливе, щоб розмір зображення не перевищував це число. Однак якщо це виявиться неможливим, його спробують все одно призупинити, використовуючи найменше можливе зображення. Зокрема, якщо в цей файл записано "0", призупинення зображення буде якомога меншим. Читання з цього файлу відображатиме поточний ліміт розміру зображення, встановлений за замовчуванням 2/5 доступної оперативної пам’яті.
Отже, спробуйте налаштувати розмір зображення. Як - задайте інше питання, будь ласка.
Передумови - чи підтримує ваше ядро призупинення на диску?
Ядро підтримує все, що перераховано /sys/power/state
, так:
cat /sys/power/state
Дозволено (за моїми даними) записи там включає: mem
, standby
, freeze
, disk
. Пояснення:
mem
- має кілька значень, яке саме у вашій системі ви дізнаєтесь через cat /sys/power/mem_sleep
. Я маю:s2idle [deep]
standby
- призупинення живлення (якщо підтримується)
freeze
- Призупинення роботи в режимі очікування (STI)
disk
- Suspend to Disk (STD), сплячка . Це - ти хочеш.
Тоді нам потрібно перевірити cat /sys/power/disk
. Якщо ви там disabled
занурилися у свій BIOS, шукаючи безпечну завантаження - це єдина ідея, яку я можу запропонувати, і єдине, що я знаю, може заважати та вимикати сплячку. Хоча я знаю лише про SecureBoot, можуть бути й інші перешкоди, тому перегляньте свій BIOS - це гарна ідея, навіть якщо у вас немає жодної "безпечної завантаження".
Читання тут:
- Документи ядра
- Debian Wiki на сплячку
TBH, навіть якщо ваше ядро НЕ підтримує сплячку, ви можете спробувати іншим способом, прокрутіть вниз до розділуInterfaces
.
Прочитайте це - попередження та проблеми - немає BTRFS
Ні в якому конкретному порядку:
- Не всі чіпсети будуть працювати (не мають джерел, які я можу тут навести, тому скажімо, що це з чужих повідомлень)
- У VAIO є проблеми, нібито є прапор, щоб протидіяти їм
- SecureBoot часто називають заважаючим або вимикаючим сплячку
- Навіть у сплячому режимі енергія споживає електроенергію
- Кількість модулів (особливо графіки) може бути ініціалізовано перед тим, як ваша система належним чином відновиться зі сну - це зазвичай є причиною появи чорного екрану при поновленні . Погляньте на ArchLinux Wiki, щоб отримати поради щодо налагодження проблем. Я б також запропонував Ubuntu FAQ щодо питань сплячого режиму. Перегляд помилок Launchpad також може дати результати. IIRC, є параметр ядра, який визначає затримку перед секундами.
- Дозвіл процедури сплячки відрізняється для різних версій Polkit
Не використовуйте BTRFS і перебувайте в сплячому режимі: результат буде пошкодженим.
Хочу впасти в сплячку - поміняти розділ
Бувають випадки, коли люди відмовляються від своп-файлів і повертаються до своп-розділу. Зрештою, він працював на попередній LTS. Я не намагався, тому не пропоную вказівники.
Я хочу перейти у сплячку - із файлом swap
- Переконайтеся, що у вас там достатньо місця. Поширені запитання про swap Ubuntu говорить про те, скільки потрібно, також виконуються команди зверху. Якщо вам потрібна додаткова інформація тут, поставте інше питання, будь ласка, оскільки це тривала тема.
- Збільшити файл swap або створити новий з досить хорошим розміром (бажано, я погоджуюся з @muru ) та змінити
/etc/fstab
на новий. Перезавантажте, щоб побачити зміни, прийнято (зберігайте резервну копію, fstab
щоб ви могли легко відновити про всяк випадок.
- Наведіть на це ядро відповідними параметрами, щоб воно знало, звідки відновити.
- Оновіть / переконфігуруйте завантажувач та перезавантажте.
Параметри ядра? Страшно!
Уважно прочитайте та вирішіть, чи бажаєте ви це зробити, але це лише спосіб налаштування ядра. Можливо, простіше перезимувати через systemd
та uswsusp
(див. Інтерфейси нижче). Можливо, ви, як і я, в кінцевому підсумку вирішите, що призупинити дію оперативної пам’яті достатньо, і ви не хочете мати 32 Гб файлу своп (не такий великий варіант для людей, які мають один SSD на своїх ноутбуках, наприклад). Але!
- в сплячому режимі для того, щоб поміняти файл, потрібно
resume=
знати, на якому розділі перебуває ваш файл підкачки, і resume_offset=
знати, звідки у файлі swap починати відновлення.
- сплячий режим до перегородки вимагає
resume=
вказувати на підкачування розділу.
- вирішення проблем із чорним екраном цілком може знадобитися
resumedelay=
.
Документи ядра про затримку відновлення після сплячки:
resumedelay = [HIBERNATION] Затримка (у секундах) пауза перед спробою читання файлів резюме
Необхідні параметри для файлу swap та сплячки :
резюме = [SWSUSP]
Specify the partition device for software suspend
Format:
{/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>}
resume_offset = [SWSUSP]
Specify the offset from the beginning of the partition
given by "resume=" at which the swap header is located,
in <PAGE_SIZE> units (needed only for swap files).
See Documentation/power/swsusp-and-swap-files.txt
Для resume=
вибору вибирайте той самий стиль, root
який має елемент fstab
. Отже, або /dev/sdaX
або, UUID
або LVM. Для гібернації до файлу - надайте розділ, де можна знайти ваш файл.
Читання:
- https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
- https://wiki.archlinux.org/index.php/Kernel_parameters
Проблема - заголовок підкачки не знайдено
Файл свопи потрібно форматувати належним чином. Якщо ваші журнали говорять про це, ви або намагаєтесь перейти в режим глибокого сну до файлу, або параметр резюме не відповідає правильності.
Переключіться на розділ або виправте файл або інтерфейс зміни, який використовується для сплячки.
Дивіться: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
використовується для форматування файлу, детальніше про нього читайте тут
Проблема! Зимова сплячка заборонена!
Тест: pm-hibernate
(якщо встановлено пакет pm-utils) або systemctl hibernate
скажіть, що вам заборонено. Налаштування за замовчуванням в Ubuntu з IIRC 12.04.
Рішення: залежить від вашої версії Polkit, вашої версії Ubuntu та смаку ... Дивіться це запитання . Також ArchWiki на Polkit може допомогти.
Про Mint дивіться на веб-сайті : https://forums.linuxmint.com/viewtopic.php?t=259912
Проблема! Гібернація відключена чимось у BIOS!
Тест: cat /sys/power/disk
має disabled
. У журналах відображається повідомлення "Не вдалося перейти в сплячу систему через логін: дієслово сну не підтримується".
Рішення: пошук у вашому BIOS і пошук проблемної речі. Вимкнути.
Рішення 2: спробуйте інший сплячий інтерфейс.
Див.: Як активувати сплячку в 16.04.1? (systemd) .
Інтерфейси
- swsusp - інтерфейс ядра низького рівня. Див. Передумови - ядро для яких файлів. Запис у файли безпосередньо може спричинити призупинення (в оперативній пам'яті, на диску та гібриді). Згідно з SwapFAQ проблематично зі сплячим режимом.
- uswsusp - ArchWiki та Debian Wiki та приємне запитання AskUbuntu із написанням, як ним користуватися .
- systemd - ArchWiki на ньому
- pm-utils - AFAIK - це колекція сценаріїв, родом з Debian - я з радістю віщу себе більше інформації.
Заключними зауваженнями
Для мене це було справою майже двох днів роботи. Сподіваємось, це допоможе вам (та іншим) швидше вирішити свою проблему. Є ще моменти, які я пропустив, але це 2 ранку, і я не відчуваю, як писати більше зараз. Я, звичайно, відкритий для будь-кого вказівки, щоб зробити це краще, тому коментуйте. Я відповім, коли я сплю, працюю тощо :-)
Я не впевнений, що зимує на диску, це чудово. Я пішов зі сном врешті-решт. Але для мене проблема полягала в тому, щоб мати 32 ГБ файл просто для сну, тому що я взагалі уникаю заміни. Мій початковий swap-файл був 2 Гб, і він був здебільшого порожнім. YMMV. Тим не менше, удачі! І почніть з колод!