Hibernate berfungsi dengan benar ketika saya menggunakan Ubuntu 17.04. Setelah memutakhirkan ke 17.10 saya tidak bisa melanjutkan karena layar hitam setelah melanjutkan ( bug ini ).
Setelah memutakhirkan ke 18,04 jika saya mencoba memulai komputer saya setelah hibernasi boot seolah-olah tidak ada hibernasi dilakukan.
Jawaban:
Ada perubahan yang dilakukan pada pengaturan default jika dibandingkan dengan LTS sebelumnya (16.04). Dalam kasus saya hibernasi tidak berfungsi sampai saya melakukan beberapa langkah, di antaranya meningkatkan ukuran file swap, menyalakannya, memastikan kebijakan mengizinkannya, dll.
Ini mungkin dengan mudah jawaban saya yang paling panjang di seluruh StackExchange jadi saya mencoba membuat header deskriptif .
Boot karena tidak ada hibernasi
Akan lebih bijaksana untuk melihat log Anda (
dmesg
mungkin membantu) dan melihat apakah ada sesuatu di sana. Ada alasan ketika meskipun Anda memberitahu sistem untuk hibernasi, sebenarnya tidak, atau malah akan menangguhkan-ke-RAM (tidur).Melihat
kern.log
dansyslog
mencari pesan terkait hibernasi juga tidak ada salahnya. Bagian yang dimulai dengan "masalah" dapat membantu Anda dengan masalah tertentu.Tukar file atau tukar partisi
Salah satu perubahan penting adalah bahwa sekarang Anda TIDAK MEMILIKI partisi swap, tetapi Anda memiliki FILE swap.
File swap mungkin tidak berfungsi untuk perpaduan perangkat keras / driver / OS dan hibernasi.
Hibernasi dimatikan
Kebijakan juga dapat mematikan atau melarang hibernasi.
Jargon
Suspend to RAM - RAM membuat data, komputer tidur lebih cepat, menggunakan lebih banyak energi saat ditangguhkan, bangun lebih cepat. Ada yang menyebut tidur ini.
Tangguhkan ke disk - alias hibernasi. RAM disimpan untuk ditukar (partisi atau file), komputer menjadi lebih lambat, menggunakan lebih sedikit energi saat hibernasi, bangun lebih lambat.
Prasyarat - apakah Anda memiliki cukup ruang?
Untuk hibernasi, Anda perlu (penyederhanaan di sini) menyimpan seluruh RAM Anda ke hard drive Anda. Jadi, Anda perlu menyisihkan cukup ruang untuk melakukannya. Jika tidak, ini akan gagal dan Anda tidak akan hibernasi.
free -m
akan memberi tahu Anda berapa banyak memori yang Anda miliki, gunakan, dan berapa banyak yang ada di swap Anda.df -h
akan memberi tahu Anda berapa banyak ruang disk yang Anda miliki di setiap titik pemasangan dan berapa banyak yang digunakan, gratis, dll. Ini penting karena Anda mungkin ingin nanti menentukan di mana file swap Anda akan ditempatkan, atau partisi mana yang harus "trim" untuk memiliki cukup ruang untuk swap Anda.cat fstab
harus memberi Anda informasi jika Anda memiliki partisi atau file swap. Menurut Ubuntu Hibernation, FAQswapfile
mungkin tidak selalu berfungsi dengan beberapa kombinasi perangkat keras / driver.Jika Anda tidak memiliki cukup ruang, ikuti FAQ swap Ubuntu . Ini memberi tahu Anda cara menambah file swap, menambahkan yang lain, memeriksa apakah itu digunakan dll. Dengan perintah dan penjelasan. Sumber daya yang sangat bagus.
Saya tidak punya cukup ruang untuk memuat RAM saya!
Dokumen kernel mengatakan:
Jadi, coba atur ukuran gambar Anda. Bagaimana - tolong ajukan pertanyaan lain.
Prasyarat - apakah kernel Anda mendukung suspend-to-disk?
Kernel mendukung apa pun yang terdaftar
/sys/power/state
, jadi:cat /sys/power/state
Diizinkan (untuk pengetahuan saya) entri ada meliputi:
mem
,standby
,freeze
,disk
. Penjelasan:mem
- memiliki beberapa arti, yang mana tepatnya pada sistem Anda Anda akan tahu melaluicat /sys/power/mem_sleep
. Saya sudah:s2idle [deep]
standby
- Power-On Suspend (jika didukung)freeze
- Suspend To Idle (IMS)disk
- Suspend To Disk (STD), hibernasi . Ini - kamu mau.Maka kita perlu memeriksa
cat /sys/power/disk
. Jika Anda telah ada di sanadisabled
kemudian menyelam di BIOS Anda mencari Boot Aman - itu satu-satunya ide yang bisa saya tawarkan dan satu-satunya hal yang saya tahu dapat mengganggu dan mematikan hibernasi. Meskipun saya hanya tahu tentang SecureBoot, mungkin ada gangguan lain, jadi melihat BIOS Anda adalah ide yang baik bahkan jika Anda tidak memiliki "boot aman".Baca di sini:
TBH, bahkan jika kernel Anda TIDAK mendukung hibernasi, Anda dapat mencobanya dengan cara lain, gulir ke bawah ke bagian
Interfaces
.Baca ini - peringatan dan masalah - tidak ada BTRFS
Tanpa urutan tertentu:
Jangan gunakan BTRFS dan hibernasi: data yang rusak akan menjadi hasilnya.
Saya ingin hibernate - swap partisi
Ada kasus, ketika orang meninggalkan file swap dan kembali ke partisi swap. Bagaimanapun, ini bekerja pada LTS sebelumnya. Saya tidak mencoba, jadi tidak akan menawarkan petunjuk.
Saya ingin hibernasi - dengan file swap
/etc/fstab
ke yang baru. Reboot untuk melihat perubahan diambil dengan baik (simpan cadangannyafstab
sehingga Anda dapat dengan mudah mengembalikannya untuk berjaga-jaga.Parameter kernel? Mengerikan!
Baca dengan cermat dan putuskan apakah Anda ingin melakukan itu, tetapi itu hanya cara untuk mengkonfigurasi kernel Anda. Mungkin lebih mudah melakukan hibernasi melalui
systemd
danuswsusp
(lihat Antarmuka , di bawah). Mungkin, bahwa Anda - seperti saya - pada akhirnya akan memutuskan suspend-to-RAM sudah cukup dan Anda tidak ingin memiliki 32GB pada file swap (tidak begitu bagus untuk orang-orang dengan satu SSD di laptop mereka, misalnya). Tapi!resume=
harus tahu di mana partisi file swap Anda danresume_offset=
untuk mengetahui di mana file swap untuk mulai melanjutkan dari.resume=
harus mengarah ke swap partisi.resumedelay=
.Kernel docs tentang menunda melanjutkan dari Hibernasi:
Parameter yang diperlukan untuk swap-file dan hibernasi :
Untuk
resume=
memilih gaya yang sama denganroot
elemen dalamfstab
. Jadi, baik/dev/sdaX
atauUUID
atau LVM. Untuk hibernasi ke file - sediakan partisi tempat file Anda dapat ditemukan.Bacaan:
Masalah - header swap tidak ditemukan
File swap perlu diformat dengan benar. Jika log Anda memberi tahu Anda hal ini, Anda mencoba hibernasi ke file, atau parameter resume Anda tidak benar.
Beralih ke partisi atau perbaiki file atau ubah antarmuka yang digunakan untuk hibernasi.
Lihat: /unix/43508/debian-hibernate-problem-pm-swap-header-not-found
mkswap
digunakan untuk memformat file, baca lebih lanjut di siniMasalah! Hibernasi tidak diizinkan!
Tes:
pm-hibernate
(jika paket pm-utils diinstal) atausystemctl hibernate
memberi tahu Anda bahwa Anda tidak diizinkan. Pengaturan default di Ubuntu sejak IIRC 12.04.Solusi: tergantung pada versi Polkit Anda, versi dan rasa Ubuntu Anda ... Lihat pertanyaan ini . Juga, ArchWiki di Polkit dapat membantu.
Untuk Mint, lihat: https://forums.linuxmint.com/viewtopic.php?t=259912
Masalah! Hibernasi dinonaktifkan oleh sesuatu di BIOS!
Tes:
cat /sys/power/disk
telahdisabled
. Log menunjukkan "Gagal hibernasi sistem melalui logind: Kata kerja tidur tidak didukung".Solusi: cari BIOS Anda dan temukan hal yang bermasalah. Matikan.
Solusi 2: coba antarmuka hibernasi lain.
Lihat: Bagaimana cara mengaktifkan hibernasi di 16.04.1? (systemd) .
Antarmuka
Kata penutup
Bagi saya itu adalah masalah hampir dua hari kerja untuk menyusunnya. Semoga ini akan membantu Anda (dan orang lain) memecahkan masalah Anda lebih cepat. Masih ada poin yang saya lewatkan tetapi ini jam 2 pagi dan saya tidak ingin menulis lagi sekarang. Saya tentu saja terbuka untuk petunjuk siapa pun untuk menjadikan ini lebih baik, jadi komentarlah. Saya akan menjawab begitu saya tidur, bekerja dll :-)
Saya tidak yakin berhibernasi ke disk bagus. Saya pergi dengan tidur pada akhirnya. Tetapi bagi saya masalah adalah dengan memiliki file 32GB hanya untuk dapat melakukan hibernasi, karena saya biasanya menghindari bertukar sama sekali. File swap awal saya adalah 2GB dan sebagian besar kosong. YMMV. Meskipun demikian, semoga berhasil! Dan mulailah dengan log!
sumber
$ sudo apt install linux-generic-hwe-18.04
(untuk beberapa perangkat keras bahkanlinux-generic-hwe-18.04-edge
mungkin patut dicoba).Gunakan UUID partisi swap sebagai ganti titik pemasangan di parameter RESUME
resume=UUID=<#>
di keduanya/etc/default/grub
dan/etc/initramfs-tools/conf.d/resume
Buat entri untuk partisi swap
/etc/fstab
tanpa titik pemasangan seperti iniDi
/etc/default/grub
Saya telah menggunakan entri terpisah untuk melanjutkan hibernasiBuat policykit di otoritas lokal (pkla)
Dan masukkan di sana
Setelah itu perbarui initramfs dan GRUB
Mulai ulang, buka beberapa aplikasi dan gunakan
systemctl hibernate
(tanpa sudo) untuk melihat apakah itu berfungsisumber
Bagi saya itu selalu bekerja sampai 18,04 dan setelah 18,04 saya mengaktifkannya seperti dalam banyak artikel, tetapi tiba-tiba berhenti berfungsi baru kemarin (bekerja dengan baik selama 4-5 bulan),
dan di sini adalah ... SATU HAL yang membuatnya bekerja lagi ...
Beri tahu grub2 di mana partisi swap:
Pertama cari tahu partisi mana yang menggunakan perintah di bawah ini:
Milik saya pada sda7 seperti output berikut:
Kemudian, tambahkan Grub2 tambahan berikut ke baris berikut, menggunakan perintah berikut:
sudo gedit / etc / default / grub
Bagian yang penting adalah
resume=/dev/sda7
Kemudian Perbarui Grub dengan perintah berikut, dan setelah ini mulai berfungsi dengan baik lagi:
Setelah banyak upaya ini adalah satu hal yang berhasil, mungkin itu hanya karena pembaruan pada kernel yang mengacaukannya, apalagi ini berhasil.
sumber
Semoga ini bisa membantu seseorang, tapi saya sedang menjalankan popos / ubuntu 19.04. Dalam pengaturan saya, saya bisa hibernasi menggunakan s2disk atau pm-hibernate, tetapi resume gagal. Untuk memperbaikinya, karena sistem saya di-boot menggunakan UEFI, bukan grub. Saya hanya perlu menginstal ulang boot loader. Untuk memeriksa apakah Anda menjalankan UEFI gunakan yang berikut:
[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"
jika dalam mode UEFI, maka saya mengikuti panduan ini untuk menginstal ulang bootloader, itu bervariasi jika Anda menggunakan disk nvme atau disk SATA: https://support.system76.com/articles/bootloader/
pastikan bahwa dalam opsi kernalboot Anda, Anda menentukan partisi atau UUID tempat untuk melanjutkan, misalnya sesuatu seperti ini:
resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Anda dapat menambahkan ini dengan: 1) sudo kernel-stub -a "resume = UUID = ..." 2) edit file /etc/initramfs-tools/conf.d/resume dan tambahkan: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88
periksa file Anda / var / log / syslog untuk sesuatu seperti ini: 4 Agustus 22:26:42 pop-os / usr / bin / kernelstub [19639]: kernelstub: Kopling DEBUG: root = UUID = b37019a8-91f5-445f-94c1 -7359a49ed5df ro quiet loglevel = 0 systemd .show_status = false resume = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88
Jika resume hilang atau salah maka Anda harus memperbarui boot boot Anda lagi.
sumber
Selain mengatur swap resume point di grub yang disebutkan dalam jawaban Sam73 , saya menemukan bahwa Ubuntu 18.04 saya juga perlu menginstal
laptop-mode-tools
:kemudian ubah
ENABLE_LAPTOP_MODE_ON_AC=1
file konfigurasi:mulai laptop-mode dengan:
PS Anda dapat memeriksa apakah laptop mulai atau tidak dengan
Jika ia mencetak
0
,laptop_mode
itu tidak berfungsi, jika tidak, itu menunjukkan itu berfungsi dengan baik.sumber