Saya sudah mencoba hampir setiap solusi di web tetapi tidak ada yang benar-benar membantu. Saya menemukan masalah saya hampir sepenuhnya mirip dengan yang ini
belumkah situasinya berubah dengan systemd? sekarang kita seharusnya menggunakan systemctl hibernatejadi mungkin bukan penipuan ... atau setidaknya jawaban yang diperbarui mungkin diperlukan untuk membuat pertanyaan lama valid untuk dupe
Zanna
Versi kernel apa yang Anda jalankan? Ketik uname -rterminal (permintaan maaf jika Anda sudah tahu ini).
WinEunuuchs2Unix
harap edit pertanyaan Anda dan tambahkan outputnya free sehingga kami dapat menentukan apakah Anda memiliki cukup pengaturan swap untuk berhasil melakukan hibernasi.
Penatua Geek
Jawaban:
62
Hibernasi menggunakan systemctldan membuatnya berfungsi dalam kasus sulit
Bagi saya, pm-hibernateselalu gagal. Setelah beberapa tweak, saya bisa hibernasi menggunakan antarmuka systemd (sistem init di 16.04 ke atas). Saya juga berhasil membuatnya bekerja pada 17,04 dengan file swap. Studi kasus ini mungkin bermanfaat bagi orang lain yang bermasalah.
Percobaan pertama:
sudo systemctl hibernate
Jika gagal, mulai pemecahan masalah: dalam kondisi hibernasi (HTD atau ACPI S4) status mesin ditulis ke disk sehingga tidak diperlukan daya untuk melestarikannya. Status ditulis baik untuk partisi swap atau file swap. Catatan: jika menggunakan BTRFS JANGAN mencoba menggunakan file swap karena ini dapat menyebabkan kerusakan sistem file
Partisi swap atau file swap Anda mungkin harus memiliki ukuran yang sama dengan RAM untuk memungkinkan hibernasi, tetapi ada kemungkinan Anda dapat melakukan hibernasi jika setidaknya 2/5 ukuran RAM, menurut halaman Arch wiki , jadi coba langkah lain terlebih dahulu sebelum menambah ukuran swap.
Jika masalah Anda adalah Anda mendapatkan boot bersih alih-alih resume yang diharapkan, minimal Anda kemungkinan besar perlu mengatur parameter boot untuk menemukan image disk
Temukan partisi swap Anda:
grep swap /etc/fstab
bagi saya pengembalian ini (output parsial)
# swap was on /dev/mmcblk0p3 during installation
di mana /dev/mmcblk0p3partisi untuk ditentukan
Tambahkan parameter boot:
sudoedit /etc/default/grub
Ke baris mulai GRUB_CMDLINE_LINUX_DEFAULTtambahkan resume=/dev/YourSwapPartitionke bagian dalam tanda kutip (ganti dengan partisi yang Anda identifikasi sebelumnya). Menggunakan contoh saya:
Setiap kali Anda mengubah file ini, Anda harus menjalankan sudo update-grubatau perubahan tidak akan berpengaruh.
Sekarang Anda perlu reboot. Kemudian Anda dapat mencoba hibernasi, dengan mengeluarkan perintah:
sudo systemctl hibernate
Untuk melanjutkan, tekan tombol daya dan sistem akan boot.
Jika Anda masih memiliki masalah, mulailah debugging.
Saya menyertakan kasus saya di bawah ini sebagai contoh, tetapi informasi terperinci tentang status S debugging dapat ditemukan di blog ini dan juga yang ini .
Tetapkan beberapa parameter boot lagi untuk mengambil lebih banyak informasi. Hapus quietdan splashtambahkan initcall_debugdan no_console_suspendyang akan menyebabkan panggilan sistem init dicetak ke konsol sehingga Anda dapat menonton apa yang salah. Saya mengatur ini:
Yang membantu saya melihat apa yang salah pada resume dari hibernasi.
Dalam kasus saya, setelah melanjutkan saya kehilangan WiFi, dan kernel jelas kesal karena sebagian besar perintah (misalnya membaca apa pun dari /sys, memuat ulang modul atau systemctlperintah apa pun ) tidak akan berfungsi - proses akan muncul untuk memulai dan hanya hang (semua ini akan menjadi kembali normal setelah reboot tentu saja). Melihat sistem yang sangat lambat dimatikan dan membaca semua pesan debug, saya perhatikan ada banyak masalah dengan "brcm", jadi saya kira modul driver nirkabel Broadcom saya yang harus disalahkan. Tentu saja saya menyesuaikan prosedur hibernasi saya untuk menurunkan modul terlebih dahulu:
Dan semuanya bekerja dengan sempurna. Saya juga harus daftar hitam btsdiomodul yang tampaknya tidak kompatibel denganbrcmfmac
Pembaruan: Hibernasi menggunakan file swap pada 17.04.
Sekali lagi dengan bantuan dari halaman Arch wiki dan beberapa mengutak-atik tambahan, saya berhasil mendapatkan hibernasi untuk bekerja pada 17,04 dengan file swap. Ini membutuhkan parameter boot tambahan, di resume_offset=nmana n adalah angka pertama physical_offsetdalam output dari sudo filefrag -v /swapfile:
$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 32767: 34816.. 67583: 32768:
1: 32768.. 63487: 67584.. 98303: 30720:
....
Oleh karena itu, parameter boot tambahan dalam kasus saya adalah resume_offset=34816. Anda masih perlu mengatur parameter boot untuk melanjutkan partisi. Ini akan menjadi partisi root (atau partisi apa pun tempat file swap Anda berada) Parameter saya sekarang:
Di mana /dev/mmcblk1p2partisi root saya (milik Anda lebih cenderung seperti itu /dev/sda2).
Selama resume saya melihat pemuatan gambar berhasil, tetapi dalam kasus saya (hanya sebuah contoh - YMMVAPD) maka beberapa driver lagi ( i2c_designware) melemparkan beberapa kesalahan dan saya mendapatkan sistem yang lengkap membeku pada resume. Hibernasi berfungsi jika saya membongkar modul-modul itu di samping brcmfmac, tetapi sistem dengan cepat menjadi tidak dapat digunakan tanpa modul-modul itu. Karena itu saya membuat semacam skrip untuk membongkar modul kereta dan segera memasukkannya kembali di resume:
Ketika saya ingin hibernasi, saya jalankan sudo bash script. Ini sangat bagus.
TL; DR
Gunakan systemd, atur parameter boot untuk melanjutkan dari swap, identifikasi driver kereta dan unload mereka sebelum memulai hibernasi. Jika sistem tidak dapat bekerja lama tanpa modul-modul itu atau Anda perlu membongkar beberapa modul, mungkin lebih mudah menggunakan skrip sederhana untuk memulai hibernasi.
Dari mana informasi itu berasal, bahwa 2/5 dari ukuran RAM mungkin cukup, dan dalam keadaan apa? Saya memiliki opsi pengguna di Gnome, "Hibernate" dan sepertinya hibernate, tetapi saat bangun, itu tidak berfungsi dengan baik. Saya memiliki partisi swap 8GB dan 32GB RAM. Itu bukan 2/5, tetapi sebelum membuat file swap (atau partisi) 32GB, akan menyenangkan untuk mengetahuinya.
cslotty
@cslotty Saya mendapat informasi itu dari Arch wiki IIRC - beri tahu saya jika Anda berhasil mengatasinya
Zanna
Terima kasih, Zanna. Saya mengetahui bahwa itu sebenarnya bukan hibernate, apa yang saya inginkan, tetapi tunda (S3 / STR) - sry.
cslotty
@ iclotty, jangan khawatir sama sekali. Dalam hal itu, swap bukan masalah Anda karena tidak terkait.
Zanna
1
Terima kasih, saya membutuhkan sintesis dari jawaban ini dan juga tip untuk menonaktifkan SecureBoot untuk membuatnya bekerja pada akhirnya.
oligofren
62
Anda dapat gunakan
sudo pm-hibernate
untuk memeriksa apakah hibernate berfungsi pada sistem Anda ( ini akan hibernasi komputer Anda ).
Jika tidak berhasil, periksa apakah ukuran swap Anda setidaknya sama besarnya dengan RAM Anda.
Untuk menambahkan opsi ke menu pengaturan, Anda dapat membuat file konfigurasi. Buka jendela terminal dan jalankan perintah ini:
Ini membuka nano dengan file kosong. Salin garis-garis di bawah ini dan rekatkan ke jendela nano.
[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.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Kemudian simpan perubahan dan tutup nano dan reboot sistem untuk membuat Hibernate tersedia muncul di "Opsi daya".
Kami membutuhkan reboot setelah mengedit file untuk membuat Hibernate tersedia muncul di "Opsi daya".
Jus12
21
'sudo pm-hibernate' langsung membunuh sistem saya tanpa peringatan. Anda harus memberi tahu orang-orang bahwa itulah yang akan terjadi.
Yair Daon
jawaban Terbaik . Ini juga bekerja pada 17.4 dan 17.10 juga.
Saurabh Bhandari
1
Jawaban ini dikombinasikan dengan yang mengatakan untuk menambahkan "resume =" ke GRUB_CMDLINE_LINUX_DEFAULT berhasil menyelesaikannya untuk saya - thx!
Christoph
Saya memiliki 17GB di partisi swap dan 16GB RAM, mengapa tidak berfungsi? Sepertinya berhibernasi karena butuh waktu lama untuk mematikan komputer sedangkan jika saya "mematikan" segera mati. Tetapi ketika saya menghidupkan kembali komputer saya, semuanya tertutup dan saya harus memulai dari awal lagi. Itu sama sekali tidak berhibernasi. Mengapa tidak sesederhana di Windows? Saya ingin bantuan jika ada yang punya ide tentang bagaimana saya bisa hibernasi dengan benar.
user1271772
20
Saya pikir, cara mengaktifkan hibernate untuk jawaban 16.04 diketahui oleh semua orang seperti yang dijelaskan dalam Wiki Ubuntu (Lihat di bawah jika Anda perlu langkah-langkahnya). Tetapi hal-hal yang perlu diperiksa tidak menyeluruh saya pikir. Setidaknya, itulah yang saya temukan.
Hal-hal untuk diperiksa
Dari tes saya sendiri, saya setidaknya menemukan satu pemeriksaan tambahan yang harus Anda lakukan. Saya belum menemukannya di Internet.
Berikut ini beberapa pemeriksaan -
Pastikan Anda tidak menggunakan partisi btrfs apa pun . Ya . Dari pengujian saya, saya menemukan bahwa jika Anda memiliki partisi btrfs , hibernate tidak akan berfungsi. Menghapus atau mengubah tipe partisi ext4tidak membantu saya. Saya perlu menghapus btrfs-toolspaket.
sudo apt-get purge btrfs-tools
Anda mungkin ingin memeriksa jenis partisi baru lainnya yang tidak diuji dengan baik. Tanpa menghapus paket, daftar hitam driver mungkin juga berfungsi, tetapi saya belum mengujinya.
Anda juga perlu memeriksa apakah Anda memiliki partisi swap yang cukup besar untuk menampung konten RAM. Jika RAM Anda adalah 4 GB, swap harus berukuran minimal 4 GB (Anda harus mengalokasikan beberapa MB lagi untuk aman).
Langkah-langkah untuk mengaktifkan hibernasi
Ini melibatkan langkah-langkah ini
Buat file sebagai root /etc/polkit-1/localauthority/50-local.d/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.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
Simpan file dengan menekan Ctrl- O. Keluar dengan Ctrl-X
Terima kasih, Anwar. Saya mengajukan bug # 1619846 dan merujuk jawaban Anda di atas. Adakah peluang Anda untuk mengajukan perubahan / penambahan yang lebih tepat ke halaman itu dalam dokumentasi resmi?
Gunnar Hjalmarsson
1
@ GunnarHjalmarsson saya akan mengusulkan peringatan ini. Tapi, saya perlu lebih banyak penguji memverifikasi ini. Akan memberi tahu Anda nanti
Anwar
Ok, mari kita bicara lebih banyak.
Gunnar Hjalmarsson
Saya menginstal pada partisi btrfs dan dibersihkan btrfs-toolssesuai dengan instruksi Anda. Masih tidak bisa hibernasi.
Oxwivi
1
Pada disk hanya ada vfatuntuk UEFI, dan btrfsdan swap. Saya sebenarnya curiga itu karena perangkat keras (laptop AMD). Saya akan menguji ini pada sistem lain dengan btrfs dan membalas Anda.
Oxwivi
7
Boot Aman
(Saya mengajukan pertanyaan serupa yang meminta fokus pada balasan berbasis systemd, membagikan solusi saya di sini untuk orang-orang yang mengikuti pertanyaan ini)
Solusi ini berasal dari topik Fedora (mereka beralih ke systemd beberapa saat yang lalu sehingga ada lebih banyak materi di sana).
Dalam kasus saya (instalasi 16.04.1 baru pada mesin yang selalu mendukung hibernasi), memanggil yang usang sudo pm-hibernatesepertinya tidak melakukan apa-apa, dan pendekatan systemd yang terkini systemctl hibernate, akan kembali:
Failed to hibernate system via logind: Sleep verb not supported
Ternyata boot aman adalah penyebabnya: menginstal 16.04 Anda ditanya apa yang ingin Anda lakukan dengannya (yang merupakan hal baru sejauh yang saya ingat) dan saya menyimpannya ON tanpa memikirkannya.
Di komputer saya dengan boot aman ON, cat /sys/power/diskmenjawab:
[disabled]
Setelah reboot dan menonaktifkan boot aman di pengaturan BIOS (ini khusus mesin, tapi biasanya cukup mudah) saya mencoba cat /sys/power/diskdan mendapatkan:
[platform] shutdown reboot suspend
yang terlihat lebih baik. Dan memang memanggil systemctl hibernatehasil dalam urutan hibernate / thaw sukses.
Selain itu, setelah itu saya bisa melihat hibernasi tersedia sebagai opsi di berbagai tempat antarmuka grafis, tanpa perlu polkithack. Jadi sepertinya systemdbenar-benar menebak /sys/power/diskbahwa sistem tidak dapat hibernasi.
Saya melakukan persis seperti yang Anda jelaskan di sini. Tetapi setelah saya menjalankan perintah "systemctl hibernate" layar menjadi hitam selama 3 detik kemudian desktop kembali dengan semua program saya yang terbuka seperti sebelum saya menjalankan perintah. Ketika saya menjalankan perintah "cat / sys / power / disk" ... itu menunjukkan kepada saya teks ini: "[platform] shutdown reboot suspend test_resume" yang mirip dengan hasil ketika Anda mengeksekusi yang sama dari sisi Anda tetapi teks terakhir : "test_resume". Apakah Anda punya ide apa yang bisa saya coba untuk menyelesaikan masalah saya?
foxhard
Tidak terlalu yakin, sepertinya hibernasi tidak berfungsi dengan baik pada perangkat keras Anda, itulah sebabnya dinonaktifkan secara default seperti yang ditunjukkan orang lain. Anda mungkin ingin memulai pertanyaan terpisah tentang masalah spesifik Anda.
Marc
Hanya setengah bekerja untuk saya. Hibernasi tetapi bukannya terbangun dari hibernasi, masuk ke boot normal, lalu macet selamanya hingga shutdown fisik yang sulit.
matt
6
Instruksi ini berfungsi untuk instalasi Ubuntu 18.04 saya.
sudo apt install hibernate Ini akan menginstal hibernate dan dependensi lain yang diperlukan untuk hibernasi
grep swap /etc/fstab (jari UUID)
sudoedit /etc/default/grub
Pada baris tersebut, GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash" tambahkan UUID swap. Barisnya terlihat seperti ini GRUB_CMDLINE_LINUX_DEFAULT = "silent splash resume = UUID of swap"
sudo update-grub
Mulai ulang, dan setelah restart sudo systemctl hibernate. Jika semuanya berfungsi ok tambahkan entri menu.
sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
sekarang tempel ini:
[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.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
alih-alih menambahkan nilai tetap untuk /etc/default/grubmempertimbangkan memperbarui initramfs menggunakan update-initramfs -u -k alldan mencari pesan seperti The initramfs will attempt to resume from /dev/dm-0. Ini akan secara otomatis mengatur perangkat resume.
ukos
Terima kasih, berfungsi dengan baik di Ubuntu 18.04! Perhatikan bahwa jika ini adalah pertama kalinya Anda menggunakan ekstensi gnome, Anda harus memasang ekstensi peramban dan konektor. Ini dijelaskan dalam tautan ekstensi di atas.
Karim Sonbol
4
Memperluas komentar saya sendiri untuk jawaban kelvinelove, file yang ia sarankan untuk diedit tidak ada pada sistem saya (Ubuntu 16.04 baru). Sebaliknya, saya melakukan ini:
[Nonaktifkan hibernasi secara default di dalam upower] Identity = unix-user: * Action = org.freedesktop.upower.hibernate ResultActive = tidak
[Nonaktifkan hibernasi secara default di logind] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = tidak
Ubah ResultActive = tidak ke ResultActive = ya untuk keduanya.
Tekan Ctrl + O untuk menyimpan file.
Nyalakan kembali komputer Anda
The Hibernate pilihan sekarang tersedia dalam menu kekuatan Anda.
EDIT: Gunnar menunjukkan bahwa file ini akan ditimpa jika paket tertentu diperbarui, jadi tergantung pada niat Anda, kemungkinan besar itu bukan solusi terbaik.
File dalam /etcseharusnya tidak ada secara default. Ini adalah file konfigurasi yang Anda buat. Mengedit file yang dimiliki paket, seperti yang Anda sarankan di atas, adalah saran yang buruk, karena akan ditimpa pada pembaruan paket berikutnya.
Gunnar Hjalmarsson
@ GunnarHjalmarsson Jika itu masalahnya saya berpendapat bahwa itu harus dinyatakan bahwa itu mungkin tidak ada. Saya mengharapkan lebih dari peringkat teratas. Tanyakan jawaban Ubuntu daripada "salin / tempel perintah ini" -> "ketikkan ini" -jawaban gaya yang tidak memiliki verifikasi apa pun apakah Anda melakukan hal yang benar (selain memeriksa apakah itu berfungsi) . Bagaimana jika seseorang menemukan jawaban itu dalam beberapa tahun, tetapi takut untuk mencobanya karena file tersebut kosong, dan instruksi dengan jelas menyatakan untuk menambahkan ke file, menyiratkan bahwa itu ada? Meskipun demikian, saya menghargai informasinya, akan menambahkannya ke jawaban untuk penyelesaian.
fgblomqvist
1
Titik adil; Saya mengedit jawaban NirajW dengan klarifikasi itu. Perlu dicatat bahwa sumber asli info di halaman ini berbicara tentang pembuatan .
Gunnar Hjalmarsson
Ini sempurna, Anda menyelamatkan saya saudara :)
Azam Alvi
4
Bagi saya, ini berfungsi untuk menginstal hibernatepaket, reboot dan kemudian jalankan sudo hibernate-disk. Saya yakin mungkin untuk menambahkannya ke menu, tetapi tidak sepadan dengan waktu saya.
Pertama, saya sarankan Anda menguji apakah mesin Anda mendukung hibernasi, karena alasan mengapa hibernasi dinonaktifkan secara default adalah karena terkadang hasilnya tidak menyenangkan pada beberapa mesin. Uji mesin Anda dengan membuka terminal ( Ctrl+ Alt+ T) dan kemudian mengetiksudo pm-hibernate
Mesin Anda harus hibernasi. Bangunkan mesin Anda setelah hibernasi dan amati apakah ia melakukan kesalahan atau jika ia bekerja secara normal. Jika Anda mengalami kelainan setelah hibernasi, maka saya sarankan Anda tidak melanjutkan dengan prosedur berikut. Namun, jika berfungsi dengan baik, terus aktifkan hibernasi dengan melakukan ini:
Setelah ini, hidupkan ulang mesin Anda, dan setelah masuk, Anda akan melihat opsi hibernasi ditambahkan pada menu daya, di sudut pengaturan kanan atas.
Saya memiliki thinkpad -E550 dan tidak memiliki masalah dengan hibernasi ketika OS saya adalah Ubuntu 15.1 atau windows8.1. tetapi menggunakan ubuntu 16.04, ketika saya menggunakan perintah "sudo pm-hibernate", itu tidak sepenuhnya hibernate dan hanya layar menjadi hitam dan mesin masih menyala.
Mahyar
Dalam kasus saya, perintah tidak melakukan apa-apa sama sekali. Terminal pergi ke baris baru dan menunggu perintah berikutnya yaitu perintah sebelumnya telah dijalankan. Tapi tidak apaat all
Aalok
Ini tidak berhasil untuk saya. Ubuntu 16.04. Opsi Hibernate tidak muncul dan tetap menonaktifkan di Pengaturan -> Power, ada yang lain?
sudo pm-hibernate
bekerja?systemctl hibernate
jadi mungkin bukan penipuan ... atau setidaknya jawaban yang diperbarui mungkin diperlukan untuk membuat pertanyaan lama valid untuk dupeuname -r
terminal (permintaan maaf jika Anda sudah tahu ini).free
sehingga kami dapat menentukan apakah Anda memiliki cukup pengaturan swap untuk berhasil melakukan hibernasi.Jawaban:
Hibernasi menggunakan
systemctl
dan membuatnya berfungsi dalam kasus sulitBagi saya,
pm-hibernate
selalu gagal. Setelah beberapa tweak, saya bisa hibernasi menggunakan antarmuka systemd (sistem init di 16.04 ke atas). Saya juga berhasil membuatnya bekerja pada 17,04 dengan file swap. Studi kasus ini mungkin bermanfaat bagi orang lain yang bermasalah.Percobaan pertama:
Jika gagal, mulai pemecahan masalah: dalam kondisi hibernasi (HTD atau ACPI S4) status mesin ditulis ke disk sehingga tidak diperlukan daya untuk melestarikannya. Status ditulis baik untuk partisi swap atau file swap. Catatan: jika menggunakan BTRFS JANGAN mencoba menggunakan file swap karena ini dapat menyebabkan kerusakan sistem file
Partisi swap atau file swap Anda mungkin harus memiliki ukuran yang sama dengan RAM untuk memungkinkan hibernasi, tetapi ada kemungkinan Anda dapat melakukan hibernasi jika setidaknya 2/5 ukuran RAM, menurut halaman Arch wiki , jadi coba langkah lain terlebih dahulu sebelum menambah ukuran swap.
Jika masalah Anda adalah Anda mendapatkan boot bersih alih-alih resume yang diharapkan, minimal Anda kemungkinan besar perlu mengatur parameter boot untuk menemukan image disk
Temukan partisi swap Anda:
bagi saya pengembalian ini (output parsial)
di mana
/dev/mmcblk0p3
partisi untuk ditentukanTambahkan parameter boot:
Ke baris mulai
GRUB_CMDLINE_LINUX_DEFAULT
tambahkanresume=/dev/YourSwapPartition
ke bagian dalam tanda kutip (ganti dengan partisi yang Anda identifikasi sebelumnya). Menggunakan contoh saya:Setiap kali Anda mengubah file ini, Anda harus menjalankan
sudo update-grub
atau perubahan tidak akan berpengaruh.Sekarang Anda perlu reboot. Kemudian Anda dapat mencoba hibernasi, dengan mengeluarkan perintah:
Untuk melanjutkan, tekan tombol daya dan sistem akan boot.
Jika Anda masih memiliki masalah, mulailah debugging.
Saya menyertakan kasus saya di bawah ini sebagai contoh, tetapi informasi terperinci tentang status S debugging dapat ditemukan di blog ini dan juga yang ini .
Tetapkan beberapa parameter boot lagi untuk mengambil lebih banyak informasi. Hapus
quiet
dansplash
tambahkaninitcall_debug
danno_console_suspend
yang akan menyebabkan panggilan sistem init dicetak ke konsol sehingga Anda dapat menonton apa yang salah. Saya mengatur ini:Yang membantu saya melihat apa yang salah pada resume dari hibernasi.
Dalam kasus saya, setelah melanjutkan saya kehilangan WiFi, dan kernel jelas kesal karena sebagian besar perintah (misalnya membaca apa pun dari
/sys
, memuat ulang modul atausystemctl
perintah apa pun ) tidak akan berfungsi - proses akan muncul untuk memulai dan hanya hang (semua ini akan menjadi kembali normal setelah reboot tentu saja). Melihat sistem yang sangat lambat dimatikan dan membaca semua pesan debug, saya perhatikan ada banyak masalah dengan "brcm", jadi saya kira modul driver nirkabel Broadcom saya yang harus disalahkan. Tentu saja saya menyesuaikan prosedur hibernasi saya untuk menurunkan modul terlebih dahulu:pada resume saya masukkan kembali modul
Dan semuanya bekerja dengan sempurna. Saya juga harus daftar hitam
btsdio
modul yang tampaknya tidak kompatibel denganbrcmfmac
Pembaruan: Hibernasi menggunakan file swap pada 17.04.
Sekali lagi dengan bantuan dari halaman Arch wiki dan beberapa mengutak-atik tambahan, saya berhasil mendapatkan hibernasi untuk bekerja pada 17,04 dengan file swap. Ini membutuhkan parameter boot tambahan, di
resume_offset=n
mana n adalah angka pertamaphysical_offset
dalam output darisudo filefrag -v /swapfile
:Oleh karena itu, parameter boot tambahan dalam kasus saya adalah
resume_offset=34816
. Anda masih perlu mengatur parameter boot untuk melanjutkan partisi. Ini akan menjadi partisi root (atau partisi apa pun tempat file swap Anda berada) Parameter saya sekarang:Di mana
/dev/mmcblk1p2
partisi root saya (milik Anda lebih cenderung seperti itu/dev/sda2
).Selama resume saya melihat pemuatan gambar berhasil, tetapi dalam kasus saya (hanya sebuah contoh - YMMVAPD) maka beberapa driver lagi (
i2c_designware
) melemparkan beberapa kesalahan dan saya mendapatkan sistem yang lengkap membeku pada resume. Hibernasi berfungsi jika saya membongkar modul-modul itu di sampingbrcmfmac
, tetapi sistem dengan cepat menjadi tidak dapat digunakan tanpa modul-modul itu. Karena itu saya membuat semacam skrip untuk membongkar modul kereta dan segera memasukkannya kembali di resume:Ketika saya ingin hibernasi, saya jalankan
sudo bash script
. Ini sangat bagus.TL; DR
Gunakan systemd, atur parameter boot untuk melanjutkan dari swap, identifikasi driver kereta dan unload mereka sebelum memulai hibernasi. Jika sistem tidak dapat bekerja lama tanpa modul-modul itu atau Anda perlu membongkar beberapa modul, mungkin lebih mudah menggunakan skrip sederhana untuk memulai hibernasi.
sumber
Anda dapat gunakan
untuk memeriksa apakah hibernate berfungsi pada sistem Anda ( ini akan hibernasi komputer Anda ).
Jika tidak berhasil, periksa apakah ukuran swap Anda setidaknya sama besarnya dengan RAM Anda.
Untuk menambahkan opsi ke menu pengaturan, Anda dapat membuat file konfigurasi. Buka jendela terminal dan jalankan perintah ini:
Ini membuka nano dengan file kosong. Salin garis-garis di bawah ini dan rekatkan ke jendela nano.
Kemudian simpan perubahan dan tutup nano dan reboot sistem untuk membuat Hibernate tersedia muncul di "Opsi daya".
Referensi: Bagaimana cara saya hibernasi komputer saya? dalam dokumentasi resmi untuk Ubuntu 16.04.
Semoga berhasil. Ini bekerja untuk saya setelah mencoba semua opsi lain.
sumber
Saya pikir, cara mengaktifkan hibernate untuk jawaban 16.04 diketahui oleh semua orang seperti yang dijelaskan dalam Wiki Ubuntu (Lihat di bawah jika Anda perlu langkah-langkahnya). Tetapi hal-hal yang perlu diperiksa tidak menyeluruh saya pikir. Setidaknya, itulah yang saya temukan.
Hal-hal untuk diperiksa
Dari tes saya sendiri, saya setidaknya menemukan satu pemeriksaan tambahan yang harus Anda lakukan. Saya belum menemukannya di Internet.
Berikut ini beberapa pemeriksaan -
Pastikan Anda tidak menggunakan partisi btrfs apa pun . Ya . Dari pengujian saya, saya menemukan bahwa jika Anda memiliki partisi btrfs , hibernate tidak akan berfungsi. Menghapus atau mengubah tipe partisi
ext4
tidak membantu saya. Saya perlu menghapusbtrfs-tools
paket.Anda mungkin ingin memeriksa jenis partisi baru lainnya yang tidak diuji dengan baik. Tanpa menghapus paket, daftar hitam driver mungkin juga berfungsi, tetapi saya belum mengujinya.
Anda juga perlu memeriksa apakah Anda memiliki partisi swap yang cukup besar untuk menampung konten RAM. Jika RAM Anda adalah 4 GB, swap harus berukuran minimal 4 GB (Anda harus mengalokasikan beberapa MB lagi untuk aman).
Langkah-langkah untuk mengaktifkan hibernasi
Ini melibatkan langkah-langkah ini
Buat file sebagai root
/etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
Letakkan konten ini di file itu
Simpan file dengan menekan Ctrl- O. Keluar dengan Ctrl-X
Mulai ulang
polkitd
daemonItu harus mengaktifkan hibernate.
sumber
btrfs-tools
sesuai dengan instruksi Anda. Masih tidak bisa hibernasi.vfat
untuk UEFI, danbtrfs
danswap
. Saya sebenarnya curiga itu karena perangkat keras (laptop AMD). Saya akan menguji ini pada sistem lain dengan btrfs dan membalas Anda.Boot Aman
(Saya mengajukan pertanyaan serupa yang meminta fokus pada balasan berbasis systemd, membagikan solusi saya di sini untuk orang-orang yang mengikuti pertanyaan ini)
Solusi ini berasal dari topik Fedora (mereka beralih ke systemd beberapa saat yang lalu sehingga ada lebih banyak materi di sana).
Dalam kasus saya (instalasi 16.04.1 baru pada mesin yang selalu mendukung hibernasi), memanggil yang usang
sudo pm-hibernate
sepertinya tidak melakukan apa-apa, dan pendekatan systemd yang terkinisystemctl hibernate
, akan kembali:Ternyata boot aman adalah penyebabnya: menginstal 16.04 Anda ditanya apa yang ingin Anda lakukan dengannya (yang merupakan hal baru sejauh yang saya ingat) dan saya menyimpannya ON tanpa memikirkannya.
Di komputer saya dengan boot aman ON,
cat /sys/power/disk
menjawab:Setelah reboot dan menonaktifkan boot aman di pengaturan BIOS (ini khusus mesin, tapi biasanya cukup mudah) saya mencoba
cat /sys/power/disk
dan mendapatkan:yang terlihat lebih baik. Dan memang memanggil
systemctl hibernate
hasil dalam urutan hibernate / thaw sukses.Selain itu, setelah itu saya bisa melihat hibernasi tersedia sebagai opsi di berbagai tempat antarmuka grafis, tanpa perlu
polkit
hack. Jadi sepertinyasystemd
benar-benar menebak/sys/power/disk
bahwa sistem tidak dapat hibernasi.sumber
Instruksi ini berfungsi untuk instalasi Ubuntu 18.04 saya.
sudo apt install hibernate
Ini akan menginstal hibernate dan dependensi lain yang diperlukan untuk hibernasigrep swap /etc/fstab
(jari UUID)sudoedit /etc/default/grub
Pada baris tersebut, GRUB_CMDLINE_LINUX_DEFAULT = "quiet splash" tambahkan UUID swap. Barisnya terlihat seperti ini GRUB_CMDLINE_LINUX_DEFAULT = "silent splash resume = UUID of swap"sudo update-grub
sudo systemctl hibernate
. Jika semuanya berfungsi ok tambahkan entri menu.sudo gedit /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
sekarang tempel ini:disalin dari https://askubuntu.com/a/819891/712203
sumber
/etc/default/grub
mempertimbangkan memperbarui initramfs menggunakanupdate-initramfs -u -k all
dan mencari pesan sepertiThe initramfs will attempt to resume from /dev/dm-0
. Ini akan secara otomatis mengatur perangkat resume.Memperluas komentar saya sendiri untuk jawaban kelvinelove, file yang ia sarankan untuk diedit tidak ada pada sistem saya (Ubuntu 16.04 baru). Sebaliknya, saya melakukan ini:
sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla
Cari bagian ini (mereka benar satu sama lain):
Ubah ResultActive = tidak ke ResultActive = ya untuk keduanya.
EDIT: Gunnar menunjukkan bahwa file ini akan ditimpa jika paket tertentu diperbarui, jadi tergantung pada niat Anda, kemungkinan besar itu bukan solusi terbaik.
Sumber: http://www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/
sumber
/etc
seharusnya tidak ada secara default. Ini adalah file konfigurasi yang Anda buat. Mengedit file yang dimiliki paket, seperti yang Anda sarankan di atas, adalah saran yang buruk, karena akan ditimpa pada pembaruan paket berikutnya.Bagi saya, ini berfungsi untuk menginstal
hibernate
paket, reboot dan kemudian jalankansudo hibernate-disk
. Saya yakin mungkin untuk menambahkannya ke menu, tetapi tidak sepadan dengan waktu saya.sumber
Pertama, saya sarankan Anda menguji apakah mesin Anda mendukung hibernasi, karena alasan mengapa hibernasi dinonaktifkan secara default adalah karena terkadang hasilnya tidak menyenangkan pada beberapa mesin. Uji mesin Anda dengan membuka terminal ( Ctrl+ Alt+ T) dan kemudian mengetik
sudo pm-hibernate
Mesin Anda harus hibernasi. Bangunkan mesin Anda setelah hibernasi dan amati apakah ia melakukan kesalahan atau jika ia bekerja secara normal. Jika Anda mengalami kelainan setelah hibernasi, maka saya sarankan Anda tidak melanjutkan dengan prosedur berikut. Namun, jika berfungsi dengan baik, terus aktifkan hibernasi dengan melakukan ini:
Edit file yang dibuka dan tambahkan baris ini:
Setelah ini, hidupkan ulang mesin Anda, dan setelah masuk, Anda akan melihat opsi hibernasi ditambahkan pada menu daya, di sudut pengaturan kanan atas.
sumber
at all
com.ubuntu.enable-hibernate.pkla
. Lihat jawaban yang diposting oleh NirajW.Ada beberapa sumber yang sangat bagus di sini untuk membantu Anda memilah beberapa masalah hibernasi yang lebih umum di Ubuntu.
Dalam kasus saya, menjalankan Ubuntu 16.10 pada Lenovo u300s, agar hibernate berfungsi dengan benar, saya harus melakukan hal berikut:
Edit
/etc/default/grub
untuk menyertakan baris berikut:RESUME mengacu pada UUID file swap spesifik Anda. Secara khusus, pengaturan mesin saya
pci=nomsi
adalah kuncinya.Semoga berhasil!
sumber
Anda harus mengaktifkannya secara manual dengan sedikit usaha. Sudah dinonaktifkan secara default.
http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/
Kemudian, jika tidak berhasil, itu mungkin masalah kernel 4.4.0, dan Anda mungkin harus memutakhirkan kernel.
sumber