Tidak dapat melanjutkan setelah hibernasi

8

Saya telah menggunakan hibernate dengan Ubuntu 16.04 tanpa masalah tetapi tiba-tiba berhenti berfungsi dengan benar. Apakah saya hibernasi dari menu daya atau menggunakan sudo pm-hibernate, itu mematikan komputer tetapi ketika saya menyalakannya lagi dan memilih Ubuntu dari menu grub, itu hanya memberikan layar hitam. Saya mencoba beberapa solusi (tercantum di bawah) tetapi tidak ada yang berhasil.

Saya sangat kecewa bahwa dengan setiap rilis Ubuntu yang saya gunakan, saya biasanya memiliki masalah yang sama dengan hibernate (dengan laptop berbeda).

PS: Saya memiliki dual boot dengan Windows 10, tetapi hibernate bekerja dengan baik untuk waktu yang lama.

Tidak bekerja:

Karim Sonbol
sumber
Saya memiliki masalah yang sama dengan laptop saya - ketika saya kembali dari hibernate - layar hitam. Bagi saya, itu tidak pernah berhasil. "Pemecahan masalah" untuk laptop saya adalah dengan menekan ALT + CTRL + F1, lalu tunggu beberapa detik, lalu tekan ALT + CTRL + F7. Itu membuatnya hidup kembali (di laptop saya).
Vanessa Deagan
Terima kasih atas sarannya, namun tidak berhasil untuk saya.
Karim Sonbol
Bagaimana kalau hanya menutup tutupnya dan membukanya lagi? (patut dicoba!)
Vanessa Deagan
Terima kasih lagi @VanessaDeagan, tetapi tetap saja tidak ada yang terjadi.
Karim Sonbol
1
Jika Anda belum melihatnya: bugs.launchpad.net/bugs/1743094
Steve

Jawaban:

9

Saya memiliki masalah yang sama. Ada bug di kernel terbaru di 16.04. Inilah langkah-langkah eksplisit yang telah saya lakukan. Lakukan yang pertama dan, jika itu memecahkan masalah untuk Anda, berhenti di sana. Jika tidak, lanjutkan.

1. Atur komputer untuk boot dengan kernel sebelumnya

Dimulai dari:

uname -r

Milik saya mengatakan 4.13 ... Lalu lakukan:

grep -i "menuentry '" /boot/grub/grub.cfg

Anda akan melihat entri menu yang berbeda di grub. Dalam kasus saya, bersama dengan "Ubuntu, dengan Linux 4.13 ..." ada opsi menu untuk boot dengan kernel sebelumnya. Dikatakan Ubuntu, dengan Linux 4.10.0-28-generik . Pada baris yang sama Anda memiliki sesuatu seperti 'gnulinux-4.10.0-28-generic-advanced ... (banyak karakter di sini)' Salin teks itu, dan kemudian kita harus memberitahu grub2 untuk boot dengan kernel itu secara default:

sudo cp / etc / default / grub /etc/default/grub.back

sudo gedit / etc / default / grub

Lalu saya memasukkan baris ini:

GRUB_DEFAULT = "gnulinux-advanced-4a50e1e8-56d9-413e-9954-55648888a31d> gnulinux-4.10.0-28-generic-advanced-4a50e1e8-56d9-413e-9954-55648888a31d"

Tolong jangan menyalin baris ini secara harfiah, tetapi gunakan output dari perintah grep sebelumnya seperti yang dikatakan. Kemudian simpan dan,

sudo perbarui-grub

Kemudian boot ulang dan periksa apakah output dari "uname -r" adalah kernel lama (4.10 ... dalam kasus saya). Anda mungkin dapat hibernasi sekarang, atau tidak. Jika tidak, lanjutkan ke langkah berikutnya.

2. Instal hal-hal berbeda untuk hibernate daripada yang default:

Dalam kasus saya, menggunakan kernel lama menyingkirkan layar hitam kematian dan memungkinkan saya untuk melanjutkan setelah hibernasi, tetapi isi dari gambar disk akan terhapus, yaitu identik dengan reboot, bukan hibernasi. Jadi saya menginstal beberapa kotoran yang hibernasi secara berbeda:

sudo apt-get install uswsusp

Kemudian tutup terminal, buka kembali dan ketik:

sudo s2disk

Ini seharusnya hibernasi komputer. Jika, setelah melanjutkan, semuanya seperti yang Anda tinggalkan, maka Anda telah menyelesaikan masalah. Tetapi Anda masih perlu melanjutkan ke langkah 4 untuk memberi tahu Ubuntu bahwa Anda ingin menggunakan hal-hal baru secara default dan juga bahwa Anda ingin memiliki opsi untuk hibernasi dalam aplikasi.

3. Beri tahu grub 2 di mana partisi swap adalah:

Itu masih tidak bekerja untuk saya, jadi saya harus memberi tahu grub di mana partisi swap:

cat / etc / fstab

Saya bisa membaca di sana "# swap aktif / dev / sda2 saat instalasi", jadi saya mengedit grub lagi:

sudo gedit / etc / default / grub

Dan menambahkan:

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = nonaktifkan resume = / dev / sda2"

Bagian yang penting adalah "resume = / dev / sda2" tetapi hal sebelumnya (intel blablabla) ada karena alasan lain. Nah, langkah selanjutnya adalah:

sudo perbarui-grub

Boot ulang dan coba lagi hibernasi dengan beberapa hal yang terjadi (mis. Buka film dengan vlc) dengan:

sudo s2disk

Jika barang masih ada di sana setelah Anda melanjutkan, Anda telah menyelesaikan masalah.

4. Memberitahu Ubuntu untuk menggunakan hal-hal hibernasi baru yang telah Anda instal alih-alih default:

Anda sekarang harus memberi tahu Ubuntu untuk menggunakan s2disk untuk hibernasi alih-alih hal-hal yang datang secara default:

sudo gedit /etc/pm/config.d/00sleep_module

Dan masukkan di sana:

SLEEP_MODULE = "uswsusp"

Simpan dan tutup file. Kemudian:

sudo gedit /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

Dan masukkan di sana:

[Aktifkan kembali hibernate secara default di upower]

Identity = unix-user: *

Action = org.freedesktop.upower.hibernate

ResultActive = ya

[Aktifkan kembali hibernasi secara default di logind]

Identity = unix-user: *

Aksi = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; org.freedesktop.login1; org.freedesktop.login1.hibernate-multi-sesi; org.freedesktop.login1.hibernate-diabaikan- menghalangi

ResultActive = ya

Mulai ulang dan coba lagi.

5. Jika setelah menjalankan Langkah 4, Anda tidak dapat hibernasi menggunakan sudo systemctl hibernatekemudian lakukan hal berikut

Langkah 4 tidak cukup untuk beralih ke uswsusp di Ubuntu 18.10.

Edit layanan hibernasi

sudo systemctl edit systemd-hibernate.service

Dan tambahkan yang berikut ini

[Service]
ExecStart=
ExecStartPre=-/bin/run-parts -v -a pre /usr/lib/systemd/system-sleep
ExecStart=/usr/sbin/s2disk
ExecStartPost=-/bin/run-parts -v --reverse -a post /usr/lib/systemd/system-sleep

Perbarui sistemd

sudo systemctl daemon-reload

Uji pengaturan dengan menjalankan yang berikut ini

sudo systemctl hibernate

Mephisto
sumber
Terima kasih, saya memilih kernel lama dari menu boot dan hibernate berfungsi dengannya. Saya akan memeriksa langkah-langkah grub pembaruan lainnya nanti, tetapi saya harap mereka segera memperbaiki kernel saat ini.
Karim Sonbol
Sebenarnya, saya memilih kernel lama sekali dari menu grub dan kemudian hibernasi. Ketika saya membukanya lagi dan memilih opsi "Ubuntu" normal tanpa opsi lanjutan, itu semacam mengingat pilihan saya dan menggunakan kernel lama, dan untungnya semua aplikasi terbuka saya ada di tempatnya.
Karim Sonbol
Adakah alasan khusus untuk tidak hanya menghapus kernel baru dan tetap pada yang lama?
lrkwz
3

@karim Saya punya masalah yang sama di sini adalah bagaimana memperbaikinya:

Gunakan UUID partisi swap sebagai ganti titik pemasangan di parameter RESUME resume=UUID=#di keduanya /etc/default/grubdan/etc/initramfs-tools/conf.d/resume

Buat entri untuk partisi swap /etc/fstab tanpa titik pemasangan seperti ini

# Entry for Swap : 
UUID=# none  swap    sw              0       0

Di /etc/default/grubSaya telah menggunakan entri terpisah untuk melanjutkan hibernasi

# FOR HIBERNATION 
GRUB_CMDLINE_LINUX="resume=UUID=..."

Buat policykit di otoritas lokal (pkla) seperti yang dijelaskan oleh @Mephisto

Perbarui initramfs dan GRUB

sudo update-initramfs -u -k all
sudo update-grub

Mulai ulang, buka beberapa aplikasi dan gunakan systemctl hibernate(tanpa sudo) untuk melihat apakah itu berfungsi

Roey
sumber
Saya sudah mengatur semuanya, kecuali 'sudo update-initramfs -u -k all' sepertinya memperbaiki masalah saya. Terima kasih.
Zamicol
2

Saya juga mengalami masalah ini mengganggu saya ... dan perbaikan setelah banyak upaya adalah menginstal ulang Ubuntu 18.04, dan sekarang ini berfungsi dengan baik. Saya juga menggunakan Driver "teruji" Nvidia, karena Nvidia adalah pelakunya sebelumnya.

Mungkin itu adalah "sudo add-apt-repository ppa: graphics-drivers" ppa yang memasang "Extra" Stuff dan / atau driver 396 yang mengacaukan kemampuan hibernasi laptop saya. Apa pun itu bekerja dengan sempurna pada saat penulisan ini dengan driver NVidia 390 yang telah teruji. Sebelum beralih ke driver Nouveau bekerja.

markackerman8-gmail.com
sumber
2

Terima kasih atas jawaban Anda. Masalahnya diselesaikan pada Kernel 4.15. Saya baru saja mencobanya dan berhasil. Rupanya kernel HWE memperbaikinya ( linux-generic-hwe-16.04 package).

Jika Anda menggunakan Ubuntu 16.04, Anda hanya perlu menginstal pembaruan terbaru untuk meningkatkan kernel. Anda dapat membaca detail lebih lanjut tentang itu di sini .

Versi kernel saya saat ini adalah 4.15.0-33-generik.

Karim Sonbol
sumber