Ubuntu 18.04 hazırda bekletme modundan sonra devam edemiyor


17

Ubuntu 17.04 kullanırken Hibernate düzgün çalıştı. 17.10'a yükselttikten sonra, devam ettikten sonra siyah ekran yüzünden devam edemedim ( bu hata ).

Hazırda bekletme modundan sonra bilgisayarımı başlatmaya çalışırsam, hazırda bekletme modu yokmuş gibi önyükleme yaparsam 18.04'e yükselttikten sonra.


Ben 18.04 ile aynı sorunu var, ben özgeçmiş özgeçmiş için doğru bölümü belirtmek gerekir ama yine de bunu yapmak için yol bulamadım. Tüm bulduğum Google benim için çalışmadı.
user2819650

Bölüm, /etc/initramfs-tools/conf.d/resume içinde takasma doğru şekilde ayarlanmış. Hazırda bekletme modunun doğru şekilde yapılmadığından veya önyükleme sırasında devam etmenin çalışmadığından şüpheleniyorum. Ama nasıl daha fazla hata ayıklayacağımı bilmiyorum. Syslog ve dmesg sorunun ne olduğuna dair ipucu vermiyor.
Kamil

Yanıtlar:


29

Önceki LTS (16.04) ile karşılaştırıldığında varsayılan ayarlarda değişiklik yapılmıştır. Benim durumumda, birkaç adım yapana kadar hazırda bekletme işe yaramadı, aralarında takas dosyasının boyutunu artırdı, açtı, politikaların izin verdiğinden emin oldu, vb.

Bu kolayca tüm StackExchange benim en uzun cevap olabilir, bu yüzden üstbilgileri açıklayıcı yapmaya çalıştım .

Kış uykusu olmadığı için bot

Günlüklerinize ( dmesgyardımcı olabilir) bir göz atmak ve orada bir şey olup olmadığını görmek için ihtiyatlı olurdu . Sisteme hazırda bekletme modunu söylemenize rağmen, aslında çalışmayacak veya RAM'e askıya alınacak (uyku).

Hazırda bekletme ile ilgili mesajlara bakmak kern.logve syslogbakmak da zarar vermez. "Sorun" ile başlayan bölümler size belirli konularda yardımcı olabilir.

Dosyayı değiştir veya bölümü değiştir

Önemli değişikliklerden biri, şimdi bir takas bölümünüz OLMAMASI, ancak bir takas DOSYANIZ olması.

Takas dosyası, donanım / sürücüler / işletim sistemi ve hazırda bekletme modu karışımınız için çalışmayabilir.

Hazırda bekletme modu kapalı

Politikalar hazırda bekletme modunu kapatabilir veya izin vermeyebilir.

Jargon

RAM'i askıya alma - RAM verileri tutar, bilgisayar daha hızlı uyku moduna geçer, askıya alındığında daha fazla enerji kullanır, daha hızlı uyanır. Bazıları buna uyku diyor.

Diske askıya alma - sabit disk askıda uyku kipi. RAM takas (bölüm veya dosya) olarak kaydedilir, bilgisayar daha yavaş uyku moduna geçer, hazırda bekletme sırasında daha az enerji kullanır, daha yavaş uyanır.

Rafael J. Wysocki ve A. Leonard Brown tarafından Linux'ta RAM'i askıya alma

Önkoşullar - yeterli alanınız var mı?

Hazırda bekletme moduna geçmek için (burada basitleştirme) tüm RAM'inizi sabit diskinize kaydetmeniz gerekir. Bu nedenle, bunu yapmak için yeterli alan ayırmanız gerekir. Bunu yapmazsanız, bu başarısız olur ve hazırda bekletme modunuz olmaz.

  1. free -m takasınızda ne kadar belleğiniz olduğunu, kullandığınızı ve ne kadar bellek bulunduğunu söyleyecektir.
  2. df -h her bağlama noktasında ne kadar disk alanınız olduğunu ve ne kadarının kullanıldığını, boşta vb. takasınız için yeterli alan.
  3. cat fstabtakas bölümünüz veya dosyanız varsa size bilgi vermelidir. Ubuntu'ya göre Hazırda Bekletme Hakkında SSS swapfile, bazı donanım / sürücü kombinasyonlarıyla her zaman çalışmayabilir.

Yeterli alanınız yoksa Ubuntu takas SSS bölümünü izleyin . Size takas dosyasını nasıl artıracağınızı, nasıl ekleyeceğinizi, kullanılıp kullanılmadığını vb. Gerçekten güzel bir kaynak.

RAM'ime sığacak kadar yerim yok!

Çekirdek dokümanlar diyor ki:

/ sys / power / image_size, diske askıya alma mekanizması tarafından oluşturulan görüntünün boyutunu denetler. Görüntü boyutunun üst sınırı olarak kullanılacak, bayt olarak negatif olmayan bir tamsayıyı temsil eden bir dize yazılabilir. Diske askıya alma mekanizması, görüntü boyutunun bu sayıyı aşmamasını sağlamak için elinden geleni yapacaktır. Ancak, bu imkansız olduğu ortaya çıkarsa, mümkün olan en küçük görüntüyü kullanarak yine de askıya almaya çalışacaktır. Özellikle, bu dosyaya "0" yazılırsa, askıya alma görüntüsü mümkün olduğunca küçük olacaktır. Bu dosyadan okunduğunuzda, varsayılan olarak kullanılabilir RAM'in 2 / 5'ine ayarlanmış olan geçerli görüntü boyutu sınırı görüntülenir.

Bu nedenle, resim boyutunuzu değiştirmeyi deneyin. Nasıl - başka bir soru sorun lütfen.

Önkoşullar - çekirdeğiniz diske askıya almayı destekliyor mu?

Çekirdek, listelenenleri destekler /sys/power/state, bu nedenle:

cat /sys/power/state

(Bildiğim kadarıyla) İzin buraya eklenecek girişleri: mem, standby, freeze, disk. Açıklama:

  • mem- Sisteminizde tam olarak bulacağınız birkaç anlam vardır cat /sys/power/mem_sleep. Sahibim:s2idle [deep]
  • standby - Açılışta Askıya Alma (destekleniyorsa)
  • freeze - Bekleme Moduna Alma (STI)
  • disk- Diske Askıya Al (STD), hazırda bekletme . Bu - istiyorsun.

O zaman kontrol etmeliyiz cat /sys/power/disk. Orada varsa disabled, BIOS'unuzda Güvenli Önyükleme'yi arayın - sunabileceğim tek fikir budur ve bildiğim tek şey hazırda bekletme modunu engelleyebilir ve kapatabilir. Ben sadece SecureBoot biliyorum, ancak başka müdahaleler olabilir, bu yüzden herhangi bir "güvenli önyükleme" olmasa bile BIOS bir göz atmak iyi bir fikirdir.

Burada okuma:

  1. Çekirdek dokümanlar
  2. Kış uykusunda Debian Wiki

TBH, çekirdeğiniz hazırda bekletme modunu desteklemese bile, başka bir şekilde deneyebilir, bölüme ilerleyebilirsinizInterfaces .

Bunu okuyun - uyarılar ve sorunlar - BTRFS yok

Belirli bir sırada değil:

  1. Tüm yonga setleri çalışmaz (burada alıntı yapabileceğim kaynaklar yok, bu yüzden bunun kulaktan dolma olduğunu söyleyelim)
  2. VAIO'nun sorunları var, sözde onlara karşı koymak için bir bayrak var
  3. SecureBoot genellikle hazırda bekletme modunu engelleme veya kapatma olarak belirtilir
  4. LAN'da Uyandırma, hazırda bekletme modunda bile güç tüketir
  5. Modül sayısı (özellikle grafikler), sisteminiz hazırda bekletme modundan düzgün şekilde devam etmeden ÖNCE başlatılabilir - bu genellikle devam ederken siyah ekranın nedenidir . Sorunların nasıl ayıklanacağına ilişkin ipuçları için ArchLinux Wiki'ye bakın. Hazırda bekletme sorunları hakkında Ubuntu hakkında SSS öneririm. Launchpad hatalarına göz atmak da sonuç verebilir. IIRC, devam etmeden önce saniye cinsinden gecikmeyi belirten bir çekirdek parametresi vardır .
  6. Hazırda bekletme yordamına izin verme farklı Polkit sürümleri için farklılık gösterir

BTRFS ve hazırda bekletme modunu kullanmayın: sonuç bozuk veriler olacaktır.

Hazırda bekletmek istiyorum - takas bölümü

İnsanlar takas dosyasını bırakıp takas bölümüne geri döndükleri durumlar vardır. Sonuçta, önceki LTS üzerinde çalıştı. Ben denemedim, bu yüzden işaretçiler sunmaz.

Hazırda bekletmek istiyorum - takas dosyasıyla

  1. Orada yeterli alanınız olduğundan emin olun. Ubuntu takas SSS size ne kadar ihtiyacınız olduğunu söyler, yukarıdan komutlar da bunu yapar. Burada daha fazla bilgiye ihtiyacınız varsa, lütfen başka bir soru sorun, çünkü bu uzun bir konu.
  2. Takas dosyasını artırın veya yeterince iyi boyutta yeni bir dosya oluşturun (tercih edilir, muru ile aynı fikirdeyim ) ve yenisiyle değiştirin /etc/fstab. Değişikliği iyi görmek için yeniden başlatın ( fstabher durumda kolayca geri dönebilmeniz için yedeğini saklayın .
  3. Çekirdeğinizi buna uygun parametrelerle doğrultun, böylece nereden devam edeceğinizi bilin.
  4. Önyükleme yükleyicinizi güncelleyin / yeniden yapılandırın ve yeniden başlatın.

Çekirdek parametreleri? Korkunç!

Bunu yapmak isteyip istemediğinizi dikkatlice okuyun ve karar verin, ancak bu sadece çekirdeğinizi yapılandırmanın bir yoludur. Yoluyla hazırda bekletme daha kolay olabilir systemdve uswsusp(bkz Arayüzleri aşağıda). Belki benim gibi - RAM'i askıya almanın yeterli olduğuna karar vereceksiniz ve bir takas dosyasında 32 GB olmasını istemiyor olabilirsiniz (örneğin, dizüstü bilgisayarlarında bir SSD bulunan kişiler için çok büyük değil). Fakat!

  1. takas dosyasına hazırda bekletme, takas dosyanızın resume=hangi bölümde olduğunu ve takas dosyasında resume_offset=nerede başlayacağını bilmeyi gerektirir .
  2. bölüm için hazırda bekletme bölümü resume=takas için işaret gerektirir .
  3. siyah ekran sorunlarının çözülmesi de gerekebilir resumedelay=.

Hazırda Bekletme modundan devam etmeyi geciktirme hakkında çekirdek belgeleri:

resumedelay = [HIBERNATION] Özgeçmiş dosyalarını okumaya çalışmadan önce duraklatma gecikmesi (saniye olarak)

Takas dosyası ve hazırda bekletme modu için gerekli parametreler :

özgeçmiş = [SWSUSP]

      Specify the partition device for software suspend

      Format:

      {/dev/<dev> | PARTUUID=<uuid> | <int>:<int> | <hex>}

resume_offset = [SWSUSP]

      Specify the offset from the beginning of the partition
      given by "resume=" at which the swap header is located,
      in <PAGE_SIZE> units (needed only for swap files).

      See Documentation/power/swsusp-and-swap-files.txt

İçin resume=aynı stil seçin olarak rooteleman sahip olduğu fstab. Yani, ya /dev/sdaXda UUIDya LVM. Dosyayı hazırda bekletme için - dosyanızın bulunabileceği bölümü sağlayın.

Okuma:

  1. https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
  2. https://wiki.archlinux.org/index.php/Kernel_parameters

Sorun - takas başlığı bulunamadı

Takas dosyasının düzgün biçimlendirilmesi gerekiyor. Günlükleriniz bunu söylüyorsa, ya bir dosyayı hazırda bekletmeye çalışıyorsunuzdur veya devam parametreniz doğru değil.

Hazırda bekletme için kullanılan bölüme geçin veya dosyayı düzeltin veya arabirimi değiştirin.

Bkz. Https://unix.stackexchange.com/questions/43508/debian-hibernate-problem-pm-swap-header-not-found

mkswapdosyayı biçimlendirmek için kullanılır, buradan daha fazla bilgi edinebilirsiniz

Sorun! Hazırda bekletme moduna izin verilmiyor!

Test: pm-hibernate(pm-utils paketi kuruluysa) veya systemctl hibernatesize izin verilmediğini söyleyin. IIRC 12.04'ten bu yana Ubuntu'da varsayılan ayar.

Çözümler: Polkit sürümünüze, Ubuntu sürümünüze ve lezzetinize bağlıdır ... Bu soruya bakın . Ayrıca, Polkit'teki ArchWiki yardımcı olabilir.

Mint için, bkz: https://forums.linuxmint.com/viewtopic.php?t=259912

Sorun! Hazırda bekletme, BIOS'taki bir şey tarafından devre dışı bırakıldı!

Test: cat /sys/power/diskvardır disabled. Günlükler, "Sistem oturum açma yoluyla hazırda bekletilemedi: Uyku fiili desteklenmiyor" gösteriyor.

Çözüm: BIOS'unuzda arama yapın ve sorunlu şeyi bulun. Kapatmak.

Çözüm 2: Başka bir hazırda bekletme arabirimini deneyin.

Bakınız: 16.04.1'de hazırda bekletme modu nasıl etkinleştirilir? (systemd) .

Arayüzler

  1. swsusp - düşük seviyeli çekirdek arayüzü. Bkz. Önkoşullar - hangi dosyalar için çekirdek. Dosyalara doğrudan yazmak askıya alınmaya (RAM'e, diske ve hibrit) neden olabilir. SwapFAQ göre dosya için hazırda bekleme ile sorunlu.
  2. uswsusp - ArchWiki ve Debian Wiki ve güzel bir AskUbuntu sorusu ile nasıl kullanılacağı bir yazma .
  3. systemd - Başlıkta ArchWiki
  4. pm-utils - Aslen Debian'ın senaryolarından oluşan bir koleksiyon AFAIK - kendimi daha fazla bilgi memnuniyetle karşılayacağım.

Kapanış konuşması

Benim için bunu derlemek neredeyse iki günlük bir iş meselesiydi. Umarım bu size (ve diğerlerine) sorununuzu daha hızlı çözmenize yardımcı olur. Hala atladığım noktalar var ama 02:00 ve şimdi daha fazla yazmak istemiyorum. Bunu daha iyi yapmak için elbette herkesin işaretçilerine açıkım, bu yüzden yorum yap. Uyuduğumda, çalıştığım vb.

Diske hazırda bekletme konusunda emin değilim. Sonunda uyku ile gittim. Ama benim için sorun, genellikle hiç takastan kaçındığım için sadece hazırda bekletme yapabilmek için 32GB'lık bir dosyaya sahip olmaktı. İlk takas dosyam 2GB'dı ve çoğunlukla boştu. YMMV. Yine de, iyi şanslar! Ve günlüklerle başlayın!


Mükemmel cevap! Ama nihayetinde davamı çözen şey bağlantılı Takas SSS idi ve bana grub yapılandırma dosyasındaki bir değişkene ve / veya sitramfs araçlarına benzer sth'ye "özgeçmiş = UUID" eklememi söyledi. Nedense orada yanlış bir UUID vardı hangi muhtemelen sorun oldu. Bu nedenle, benzer bir sorunu olan birine ilk önce "Takas bölümü nasıl ekleyebilir veya değiştirebilirim?" Altındaki Takas SSS bölümünde yazılanları ve hazırda bekletme moduyla ilgili üçüncü noktayı kontrol etmenizi öneririm.
RimaNari

1
"disk - Diski Askıya Al (STD), hazırda bekletme. Bu - istediğiniz." Bu işi yapan tek kişi ben miyim? Çok teşekkürler.
spakmad

mükemmel cevap! küçük bir açıklama: Makinelerimden birinde, hazırda bekletme modundan sonra yalnızca ikinci bir önyükleme girişiminden sonra çalışmaya devam eder (ilk denemede monitörde hiçbir şey görüntülenmedi). Ben bir HWE yığını yükleme düzeltmek olabilir: $ sudo apt install linux-generic-hwe-18.04(bazı donanım için bile linux-generic-hwe-18.04-edgebir atış değerinde olabilir).
hiro kahramanı

1
Ah. Kış uykusuna yatmayacağım! 512Gb RAM'im var. Oh iyi ... (10 TB HDD'imde yeterli alanım var, ancak yeniden başlatmak saatler sürecek!)
Alexis Wilke

9

DEVAM parametresinde yerine en montaj noktası It ait takas bölümünün UUID kullanın resume=UUID=<#>hem de /etc/default/grubve/etc/initramfs-tools/conf.d/resume

Takas bölümü için böyle /etc/fstab bir montaj noktası olmadan bir giriş oluşturun

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

In /etc/default/grubben hazırda beklemeyi sürdürme için ayrı bir giriş kullandım

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

Yerel yönetimde bir ilke seti oluşturma (pkla)

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

Ve oraya yerleştir

[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

[Enable hibernate to be run via cron]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.hibernate-multiple-sessions
ResultAny=yes

Bu güncellemeden sonra initramfs ve GRUB

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

Yeniden başlatın, bazı uygulamaları açın ve systemctl hibernateçalışıp çalışmadığını görmek için (sudo olmadan) kullanın


iyi çalışıyor! çok teşekkürler.
Yossarian42

teşekkürler dostum, beni kurtardın!
Vahe Shadunts

1

Benim için her zaman 18.04'e kadar çalıştı ve 18.04'ten sonra birçok makalede olduğu gibi etkinleştirdim, ancak aniden dün çalışmayı bıraktı (4-5 ay boyunca iyi çalışıyor),

ve işte ... Yeniden çalışmasını sağlayan BİR ŞEY ...

Grub2'ye takas bölümünün nerede olduğunu söyle:

Önce aşağıdaki komutu kullanarak hangi bölümün üzerinde olduğunu bulun:

cat /etc/fstab

Benimki sda7'de olduğu gibi aşağıdaki çıktı:

yükleme sırasında takas / dev / sda7 idi

Ardından, Grub2'de aşağıdaki komutu kullanarak aşağıdaki satırı ekleyin:

sudo gedit / etc / default / grub

GRUB_CMDLINE_LINUX_DEFAULT = "intel_pstate = özgeçmişini devre dışı bırak = / dev / sda7"

Önemli olan resume=/dev/sda7

/ dev / sda7 benim durumumda

Sonra Grub'u aşağıdaki komutla güncelleyin ve bundan sonra tekrar mükemmel çalışmaya başladı:

sudo update-grub

Birçok denemeden sonra bu işe yarayan tek şeydi, belki de sadece onu çeken çekirdeğin güncellenmesi yüzünden oldu, asla bu kadar az işe yaramadı.


0

Umarım bu birine yardımcı olur, ama ben popos / ubuntu 19.04 çalıştırıyorum. Kurulumumda s2disk veya pm-hibernate kullanarak hazırda bekletebildim, ancak sürdürme başarısız oldu. Bunu düzeltmek için, sistemim grub yerine UEFI kullanılarak önyüklendiğinden. Önyükleme yükleyicisini yeniden yüklemek zorunda kaldım. UEFI çalıştırıp çalıştırmadığınızı kontrol etmek için aşağıdakileri kullanın:

[ -d /sys/firmware/efi ] && echo "Installed in UEFI mode" || echo "Installed in Legacy mode"

UEFI modundaysa, önyükleyiciyi yeniden yüklemek için bu kılavuzu izledim, bir nvme diski veya sata disk kullanıyorsanız değişiklik gösterir: https://support.system76.com/articles/bootloader/

kernalboot seçeneklerinizde, nereden devam edeceğinizin bölümünü veya UUID'sini belirttiğinizden emin olun, örn. böyle bir şey:

Devam = UUID'si = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Bunu aşağıdakilerden birini kullanarak ekleyebilirsiniz: 1) sudo kernel-stub -a "resume = UUID = ..." 2) /etc/initramfs-tools/conf.d/resume dosyasını düzenleyin ve şunu ekleyin: resume = UUID = ed8347ed- 2eb4-40bc-bc77-cc53b987ed88

/ var / log / syslog dosyasını böyle bir şey için kontrol edin: 4 Ağu 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 = yanlış özgeçmiş = UUID = ed8347ed-2eb4-40bc-bc77-cc53b987ed88

Özgeçmiş eksik veya yanlışsa, önyükleme çekirdeğinizi tekrar güncellemeniz gerekir.


0

Apart belirtilen grub içinde takas Devam noktası kurma dan Sam73 en cevabı , benim Ubuntu 18.04 da yüklemek yapması gerektiğini ortaya çıkardı laptop-mode-tools:

$sudo apt install laptop-mode-tools

ardından ENABLE_LAPTOP_MODE_ON_AC=1yapılandırma dosyasını değiştirin :

$sudo vim /etc/laptop-mode/laptop-mode.conf

dizüstü bilgisayar modunu şununla başlat:

$sudo laptop_mode start

PS Dizüstü bilgisayarın başlayıp başlamadığını kontrol edebilirsiniz

$cat /proc/sys/vm/laptop_mode

Yazdırırsa 0, laptop_modeçalışmaz, aksi takdirde düzgün çalıştığını gösterir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.