GNU/Linux >> Belajar Linux >  >> Ubuntu

Hibernasi Di 18,04?

Pertanyaan ini sudah memiliki jawaban di sini :Bagaimana cara men-debug suspend?

(3 jawaban)
Tutup 2 tahun yang lalu.

Hibernasi di Ubuntu 18.04 saya tidak berfungsi di luar kotak (maksud saya sudo systemctl hibernate ). Jadi saya melakukan beberapa upaya untuk memperbaikinya beberapa waktu lalu dan sayangnya tidak dapat mengingat dengan tepat apa yang saya lakukan.

Tapi sekarang:

sudo hibernate

berhasil hibernasi sistem dan pada boot berikutnya status sistem berhasil dipulihkan, kecuali layar masuk tidak muncul, yang tidak baik. Dan jika saya menjalankan banyak aplikasi daripada setelah resume seperti itu, sistem mungkin dibekukan hingga 20 menit (saya melihat jendela aplikasi, dapat memindahkan penunjuk tetikus, tetapi sistem tidak merespons klik) tetapi setelah itu berfungsi dengan normal.

sudo systemctl hibernate

melakukan sesuatu, mematikan sistem, tetapi pada boot berikutnya saya melihat beberapa pesan hapus node yatim piatu dan terakhir bersihkan boot, seolah-olah tidak ada hibernasi.

Tolong bantu saya membersihkannya dan mengaktifkan hibernasi di antarmuka gui.

Pada saat yang sama menangguhkan ke memori dan melanjutkan dari memori bekerja dengan baik tanpa masalah, termasuk layar login pada resume .

Pertanyaan utama yang saya miliki adalah:Manakah dari dua mekanisme hibernate atau systemctl hibernate haruskah saya menggunakan dengan 18,04?

Detail

Sistem memiliki partisi swap

$ lsblk | grep SWAP
└─sda5   8:5    0  16,8G  0 part [SWAP]
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15894        3386        9945        1311        2561       11848
Swap:         17163        2150       15013

dan di /etc/default/grub memiliki

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=/dev/sda5″
GRUB_CMDLINE_LINUX=””

dan

$ cat /sys/power/state
freeze mem disk
$ cat /sys/power/disk
[platform] shutdown reboot suspend test_resume

[ASK]

Akhirnya saya berhasil membawa hibernasi ke tempat kerja. Selama saya tidak memiliki pemahaman yang mendalam tentang subjek, saya lebih suka menjelaskan apa yang saya lakukan. Jadi

  1. Sepenuhnya dihapus pm-utils dan uswsusp , lalu sudo update-initramfs -c -k all dan reboot

Setelah upaya hibernasi ini berakhir dengan boot bersih alih-alih melanjutkan. Kalau begitu

  1. Menginstal ulang systemd kemudian mengubah nama perangkat menjadi UUID sehingga

di /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash resume=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1″

di /etc/initramfs-tools/conf.d/resume

LANJUTKAN=UUID=2c8ec945-6967-4538-93ef-49eb4df6f2a1

lalu

$ sudo update-initramfs -c -k all
$ sudo update-grub
$ reboot

Setelah ini sudo systemctl hibernate dan melanjutkan berhasil tetapi tanpa layar masuk, jadi

  1. Dalam Setelan (gui) untuk tindakan tombol daya yang saya tetapkan "Hibernasi"

Sekarang ketika saya menekan tombol daya, sistem hibernasi dan kemudian memulihkan melalui layar masuk.

Terima kasih banyak kepada semua orang yang terlibat

UPD:Sekarang saya telah menemukan solusi yang lebih baik – gunakan file swap

Saya memverifikasi ini pada instalasi desktop Ubuntu 18.10 yang baru dan menganggapnya berfungsi dengan instalasi desktop 18.04 yang baru juga karena keduanya menggunakan swap file secara default yaitu mereka tidak mengalokasikan swap partisi secara default. Tetapi file swap default adalah 2Gb terlepas dari ukuran memori sistem, jadi harus ditingkatkan.

Deskripsi lengkapnya misalnya di sini.

Jawaban Terbaik

Ada dua jawaban bagus untuk pertanyaan hibernasi dengan sedikit lebih detail di sini:

Kami Hutan Kuno Kecil jawaban untuk:Ubuntu 18.04 tidak dapat melanjutkan setelah hibernasi

Terkait:Deja-dup terus meminta kata sandi?

Zanna jawaban untuk:Bagaimana saya bisa hibernasi di Ubuntu 16.04?

Saya biasanya tidak menggunakan Hibernate tetapi mencoba menggunakannya baru-baru ini sambil mengejar bug dan menyadari bahwa untuk bekerja pada 18.04 Anda perlu menambahkan baris ke /etc/default/grub untuk memberi tahu dari mana harus melanjutkan.

Pada 16.04 saya tidak perlu menambahkan parameter 'resume=' ke grub, jadi saya pikir perubahan itu terjadi relatif baru.

Anda mungkin sebaiknya menggunakan UUID (Universally Unique Identifier) ​​dan dapat menggunakan program 'Disk' untuk mengetahui UUID partisi swap Anda dan cukup salin dan tempel dari sana.

Gunakan sudo nano /etc/default/grub untuk menambah baris

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

sehingga memiliki parameter kernel tambahan resume=UUID=theUUIDofyourswappartition di antara tanda kutip.

Anda akan berbeda, tetapi dalam kasus saya barisnya adalah:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=549816d3-0ed8-44fa-a7e4-968db519a141"

(keluar dari nano menggunakan Ctrl +x , tekan y untuk membuat perubahan dan masuk untuk menerima nama file)

Anda perlu menjalankan sudo update-grub untuk membuat perubahan Anda efektif, tetapi ketika Anda melakukan boot ulang berikutnya, Anda seharusnya dapat hibernasi tanpa masalah.

Sejauh yang saya ketahui, fungsi hibernasi adalah untuk melanjutkan ke bagian terakhir yang Anda tinggalkan, jadi tidak dirancang untuk membuka layar masuk dan meminta kata sandi Anda.

Saya tidak tahu apakah Anda dapat mengubahnya sehingga ia akan meminta kata sandi Anda, tetapi mungkin ada baiknya mengajukan pertanyaan terpisah untuk melihat apakah orang lain tahu apa yang harus dilakukan.

Tukar file

Jika Anda memiliki swapfile alih-alih partisi swap yang terpisah, maka Anda juga perlu menambahkan resume_offset= tambahan parameter.

Arch Linux Wiki memiliki bagian yang bagus tentang ini, tetapi pada dasarnya file swap Anda harus berada di partisi utama tempat Anda menginstal Ubuntu.

Untuk mengetahui offset yang harus dimasukkan ke dalam resume_offset= Anda dapat membuka terminal dan mengetik

sudo filefrag -v /swapfile

Anda akan mendapatkan sesuatu yang terlihat seperti ini:

ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   2:    63488..   96255:     100352..    133119:  32768:      98304:
   3:    96256..  126975:     133120..    163839:  30720:   
etc...

dan Anda ingin nomor pertama, di baris pertama di bawah physical_offset (dalam hal ini 34816 )

Jadi sebagai contoh, menggunakan UUID dan offset fisik mesin saya dengan Swapfile, saya telah mengubah GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" baris menjadi

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=09e601cd-5bac-491a-9115-fda1b2eb4664 resume_offset=34816"

Jangan lupa untuk menjalankan sudo update-grub dan reboot, tetapi setelah itu hibernasi akan berfungsi dengan benar.


Ubuntu
  1. Bagaimana Cara Downgrade Ke Subversion 1.6?

  2. N Alternatif Untuk Terminal Gnome?

  3. Tidak Ada Jaringan Setelah Upgrade Ke 16,04?

  1. Loop Masuk Ubuntu 14.04?

  2. Instal Qt di Ubuntu

  3. su - pengguna Vs sudo su - pengguna

  1. Integrasi Git Nautilus?

  2. Masalah Docker Di Ubuntu 20.04?

  3. sudo bagus atau sudo bagus?