Повернувся варіант сплячки, але не може відновитись зі сплячого режиму


10

У моєму Ubuntu 12.04 варіант сплячки працював добре і добре. Однак нещодавно я встановив Debian на іншому розділі, і коли я знову спробував завантажитися на Ubuntu, на екрані завантаження я отримав повідомлення про те, що:

Дисковий диск для / ще не готовий або немає. Продовжуйте чекати; або натисніть s, щоб пропустити кріплення, або M для ручного відновлення.

Після входу в Ubuntu я виявляю, що мій варіант сплячки зник.

Чи є можливість відновити сплячий варіант?

EDIT: Я вирішив проблему з дисковим диском, і я повернувся до режиму сплячки. Коли я робив "судо вечір-сплячку", моя система перейшла в сплячку. Однак при вмиканні знову воно завантажувалося нормально, і таким чином не було ефекту сплячки.

Як це можна виправити?

EDIT1: Система - Lenovo ideapad s10-2.

введіть тут опис зображення

EDIT2: / etc / fstab

введіть тут опис зображення

EDIT3: Знімок екрана мого жорсткого диска.

введіть тут опис зображення

Відповіді:


12

Я припускаю, що ви встановили Debian таким чином, що він використовує власний окремий розділ swap. Якщо у вас цього немає, я б запропонував це зробити (створити інший розділ swap та змінити /etc/fstabфайли відповідно), оскільки занадто різні операційні системи, що записують на один і той же розділ swap, можуть відкинути дані про сплячку, збережені на розділі іншою ОС.

Тоді ви повинні переконатися, що ОС, на якій ви хочете використовувати сплячку (зазвичай обидві), записує у правильний розділ. Це налаштовано у /etc/initramfs-tools/conf.d/resumeфайлі. Ви повинні помістити туди UUID правильного розділу swap (використовуйте sudo blkid /dev/$device_nameдля отримання UUID). Нарешті вам потрібно оновити початковий ramdisk:

sudo update-initramfs -u -k all

Це повинно це виправити.


1
Це спрацювало чудово. Дякую, я повернув сплячку. :)
harisibrahimkv

1
У мене теж були проблеми із відновленням сплячки. Після того, як якимось чином змінив UUID мого swap-розділу, моя система не відновиться, що б я не робив. Виправлення моєї /etc/initramfs-tools/conf.d/resume шляхом копіювання UUID від копіювання, sudo blkidздається, усунуло проблему.
TSJNachos117

2

На жаль, сплячий режим не працює у багатьох випадках, що може призвести до втрати даних, якщо ви очікуєте, що ваші документи та додатки будуть відкриті при вмиканні комп'ютера. Тому сплячий режим відключений за замовчуванням.

Перевірте, чи працює сплячка

Примітка . Завжди зберігайте свою роботу перед тим, як перезимувати.
Ви повинні зберегти всю свою роботу перед тим, як перенести сплячку за комп’ютером, про всяк випадок, коли щось піде не так, і відкриті додатки та документи не вдасться відновити при повторному включенні комп'ютера.

За допомогою командного рядка можна перевірити, чи працює сплячий режим на вашому комп’ютері.

  1. Відкрийте термінал, натискаючи Ctrl+ Alt+ Tабо шукаючи термінал на тире.

  2. Наберіть sudo pm-hibernateу термінал і натисніть Enter.
    Введіть свій пароль, коли буде запропоновано.

  3. Коли комп'ютер вимкнеться, увімкніть його знову. Чи відкрилися ваші відкриті програми?

Якщо сплячий режим не працює, перевірте, чи розміщений вами розділ swap принаймні такий же, як і наявна оперативна пам’ять.

Увімкнути сплячий режим

Якщо тест на сплячку працює, ви можете продовжувати використовувати sudo pm-hibernateкоманду, коли хочете перейти в сплячку.

Ви також можете ввімкнути сплячий варіант у меню. Для цього використовуйте улюблений текстовий редактор для створення /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla. Додайте у файл наступне та збережіть:

[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate; org.freedesktop.login1.hibernate-multiple-sessions
ResultActive=yes

Перезапуск і сплячка повернулися!

Або запустіть, killall unity-panel-serviceщоб просто скинути меню.

Деякі користувачі повинні запустити, sudo update-grubщоб отримати сплячий режим, який буде доступний у меню живлення. Деяким користувачам може знадобитися принаймні вийти з системи, а потім увійти, щоб відобразитися у меню живлення (у верхньому правому куті).

Джерело : Ubuntu Docs - Power Hibernate

Джерело : Ubuntu Wiki - налагодження ядра в сплячому режимі


0

Спробуйте додати nobootwaitваріант до /etc/fstab, щось подібне:

/dev/sda1 / ext4 rw,nobootwait 0 1


Чи можете ви це уточнити? Мій / etc / fstab має такий запис для мого розділу swap: # swap був увімкнено / dev / sda8 під час встановлення UUID = 08a07061-165b-4f0a-87c3-470a02d1ea4c none swap sw 0 0 Чи слід змінити "sw" на "rw, nobootwait "?
harisibrahimkv

Вам потрібно додати його до кореневого монтажу, а не свопа. Опублікуйте свій повний fstab, і я опублікую вам оновлену версію.
Frantique

Я додав це до питання.
harisibrahimkv

1
помилки = remount-ro, nobootwait
Frantique

0

Перебуваючи в сплячому режимі, повне зображення вашої оперативної пам’яті копіюється на своп. Таким чином, більшість часу люди мають проблеми зі сплячкою, яка не працює, їх обмін занадто малий.

Вам потрібно щонайменше стільки обміну, скільки у вас оперативної пам'яті. Якщо у вас багато оперативної пам’яті, встановіть swappiness = 0 . Тож якщо у вас є 8 Гб оперативної пам’яті, використовуйте 8,5 або 9 ГБ підкачки. Якщо у вас 4 Гб оперативної пам’яті, 6 Гб оперативної пам’яті - хороша кількість.


У мене є 1 Гб оперативної пам’яті, і у мене є 1,95 ГБ місця для обміну. Оновлено запитання зі скріншотом мого жорсткого диска.
harisibrahimkv

0

Наскільки я знаю, що в Linux, включаючи Ubuntu, повинен бути встановлений swap-простір 2x оперативної пам’яті.

Деякі способи моєї конфігурації комп’ютера на замовлення не в змозі використовувати сплячий режим, тому що у мене є більше місця для обміну. зображення

Якщо ви думаєте, що ваш своп сповільнює вас, ви можете скористатися цим скриптом, який я знайшов в Інтернеті. Він очищає своп.

#!/bin/bash

free_data="$(free)"
mem_data="$(echo "$free_data" | grep 'Mem:')"
free_mem="$(echo "$mem_data" | awk '{print $4}')"
buffers="$(echo "$mem_data" | awk '{print $6}')"
cache="$(echo "$mem_data" | awk '{print $7}')"
total_free=$((free_mem + buffers + cache))
used_swap="$(echo "$free_data" | grep 'Swap:' | awk '{print $3}')"

echo -e "Free memory:\t$total_free kB ($((total_free / 1024)) MB)\nUsed swap:\t$used_swap kB ($((used_swap / 1024)) MB)"
if [[ $used_swap -eq 0 ]]; then
    echo "Congratulations! No swap is in use."
elif [[ $used_swap -lt $total_free ]]; then
    echo "Freeing swap..."
    swapoff -a
    swapon -a
else
    echo "Not enough free memory. Exiting."
    exit 1
fi

У мене є 2 рази місця для заміни. Дякую за пропозицію.
harisibrahimkv
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.