18,04 hibernate dengan UEFI dan boot aman diaktifkan

14

"sudo systemctl start hibernate.target" bekerja dengan baik dengan 16,04 pada Acer B117 menggunakan boot lama; Memperbarui ke 18.04 memaksa saya untuk menggunakan UEFI dan boot aman (persyaratan Acer) diaktifkan. Tangguhkan masih berfungsi, tetapi saya perlu hibernasi.

Partisi swap aktif dan sama dengan ukuran RAM + 2GB;

GRUB_CMDLINE_LINUX_DEFAULT = "resume splash tenang = UUID = myswapuuid"

journalctl -xe mengungkapkan kegagalan untuk mengakses / sys / power / disk

cat / sys / power / disk: [dinonaktifkan]

cat / sys / power / state: freeze mem

Ada saran?

olli61
sumber

Jawaban:

12

Saya memiliki masalah yang sama dan, sayangnya, tidak mungkin dengan kernel Ubuntu resmi sejak versi 4.13 karena patchset kunci kernel (efi-lockdown). Substantiasi adalah:

Saat ini tidak ada cara untuk memverifikasi gambar resume ketika kembali dari hibernasi. Ini mungkin mengganggu model kepercayaan modul yang ditandatangani, jadi sampai kita dapat bekerja dengan gambar hibernasi yang ditandatangani, kita menonaktifkannya ketika kernel dikunci.

Komitmen Bionic terkait dapat Anda lihat di sini .

Ini adalah keputusan yang kontroversial dan Linus menolak untuk menggabungkan perubahan ini ke kernel linux.

Sedikit lebih banyak detail yang dapat Anda temukan adalah artikel Kernel terkunci di 4.17? dan komentarnya.

Jadi sementara kita menunggu beberapa perangkat lunak ajaib, yang akan berfungsi dengan gambar hibernasi yang ditandatangani, kita hanya dapat menggunakan kernel lain atau menonaktifkan boot aman .

NB Saya dengan senang hati akan mengupgrade jawaban lain jika seseorang memecahkan masalah ini.

Snaker
sumber
Terima kasih banyak, memahami mengapa ini adalah langkah maju yang baik.
olli61
Kernel apa yang bisa saya gunakan? Hibernasi adalah fitur penting bagi saya. (Saya berharap saya harus memiliki yang lebih baru dari 4,15, idealnya 4,18, karena WiFi saya bekerja pada yang terakhir, tetapi tidak yang pertama.)
nsandersen
1

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 alih-alih 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/

Kuncinya adalah menjalankan perintah ini:

sudo update-initramfs -c -k all

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 /var/log/syslogfile Anda untuk sesuatu seperti ini:

Aug 4 22:26:42 pop-os /usr/bin/kernelstub[19639]: kernelstub : DEBUG kopts: 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 perlu memperbarui boot boot lagi.

Lingster
sumber
Terima kasih, ini adalah satu-satunya jawaban yang memungkinkan saya untuk melanjutkan tanpa masalah.
Emmanuel M. Smith
Sebagai pengguna enkripsi, saya tidak perlu mengubah initramfs, tetapi saya harus menonaktifkan cryptswap dan mengaktifkan kembali swap normal dengan menghapus komentar dan komentar dengan tepat di /etc/fstabdan /etc/crypttab. cryptswap menggunakan kunci acak setiap boot sehingga tidak berfungsi untuk hibernasi.
fuzzyTew
Jika Anda menginginkan partisi swap terenkripsi, Anda dapat melihatnya di: help.ubuntu.com/community/EnableHibernateWithEncryptedSwap
Lingster