Linux çekirdeği 4.9.0, Debian 9'da hazırda bekletme süresine geçilemedi


9

Yakın zamanda çekirdeğimi 3.16.4'ten (Debian jessie) 4.9.0'a (Debian streç) yükselttim. "Hazırda Bekletme" (diske askıya alma) çalışana kadar her şey yolundaydı.

LXDE'de Hazırda Beklet seçeneğini kullandığımda, hazırda bekletme modunda görünüyor. Disk milinin veri işleyip yazdığını duyabiliyorum. Ancak hazırda bekletme modundan devam ettirilirken sorunlar ortaya çıkar. Çekirdek, görüntüyü takastan başarıyla geri yükler, ancak sonra tüm işler kaybolur, donar ve yeniden başlatılır. İnternette hiçbir yerde cevap bulamadım. İnsanlar /etc/initramfs-tools/conf.d/resume ayarlamama ya da çekirdek parametreleri ayarlamama ya da / etc / fstab içine yanlış giriş yapma konusunda bazı hataları çözüyorlar. Bunları doğru buldum. /Etc/initramfs-tools/conf.d/resume içindeki UUID'yi düzeltin, fstab'ı düzeltin ve özgeçmiş çekirdeği parametresini ayarlamayın.

  • Takas bölümünü genişletilmiş bölümün dışına birincil konuma taşıdım. UUID kaydedildi ve yeni swap'a uygulandı.

  • Sistem "Görüntüyü% 100 geri yükleme" ve ardından "Askıya alma konsolları" na ulaşır ve ardından tüm işler kaybedilirken normal şekilde kapanır ve önyükleme yapar.

  • Temiz kurulum denedi, ama şanssız.

  • Sadece i386'da (32 bit x86) olur, amd64 (64 bit x86) acı çekmez.

Disk bölümü tablosu düzeni:

NAME   FSTYPE LABEL    UUID                                 MOUNTPOINT
sda                                                         
├─sda1 ext4   HDD      <ROOT-UUID> /
└─sda2 swap   HDD-SWAP <SW-UUID> [SWAP]
sr0

Sda2, yükseltmeden önce mantıklıydı (içeride-genişletilmiş).

fstab:

UUID=<ROOT-UUID> / ext4 errors=remount-ro 0 1
UUID=<SW-UUID> none swap sw 0 0

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

RESUME=UUID=<SW-UUID>

Çekirdek cmdline

BOOT_IMAGE=/boot/vmlinuz-4.9.0-3-686-pae root=UUID=<ROOT-UUID> ro quiet

Sistem bilgisi:

Computer: Compaq CQ60-120ec
Swap Size: 3.5GiB
Processor: AMD Athlon X2 64 QL-66
GPU: Nvidia Geforce 8200M G
Memory: 2G DDR2 667MHz
Desktop Environment: LXDE
Debian Version: 9 (stretch)
Kernel version: 4.9.0-3
Graphics Driver: nvidia legacy 304xxx

(İşlemcinin 64bit olduğunu biliyorum ama orijinal olarak 32bit os ile geldi, bu yüzden / proc / cpuinfo'yu inceleyene kadar 32bit olduğunu düşündüm)

Yanıtlar:


4

Mesele, hazırda arasında bir çatışma olduğunu kASLR üzerinde x86-32 . Bu, kASLR'nin nokaslr çekirdek önyükleme seçeneğiyle devre dışı bırakılmasıyla çözülebilir . x86-64 bu durumdan etkilenmez.

Grub için bu, / etc / default / grub'u düzenleyerek ve önyükleme seçeneklerine nokaslr ekleyerek yapılabilir , örneğin: GRUB_CMDLINE_LINUX_DEFAULT = "quiet nokaslr "

Ardından , yapılandırmayı güncellemek için update-grub'u çalıştırın ve denemek için yeniden başlatın.


Tamamen aynı sorun vardı ve sadece PAE çekirdeği bu sorundan etkilenmiş gibi görünüyor. PAE'siz aynı çekirdek sorunsuz çalışır.

Benim için geçici çözüm linux-image-686'yı yüklemek ve linux-image-686-pae ve linux-image-4.9.0-4-686-pae'yi kaldırmaktı. Tam çekirdek sürümü, yükseltmeler nedeniyle zamanla değişebilir, ancak temelde şu anda çalışan PAE çekirdeğinin PAE'siz bir çekirdekle değiştirilmesi gerekir.

CPU'mun PAE desteği ile hiçbir ilgisi yok, çünkü CPU'm / proc / cpuinfo'ya göre PAE'yi destekliyor. Ancak PAE zaten eski dizüstü bilgisayarlarda çok fazla kullanılmıyor.

Debian backports'tan çekirdek 4.13 PAE ile aynı sorun olduğu için, 4.9 PAE çekirdeği ile de ilgisi yoktur.


Bu mükemmel cevap çok daha fazla hak etmeyi hak eder, ancak sadece bir tane verebilirim.
peterh - Monica'yı

Evet teşekkürler, bu sitenin uzmanların dışında olduğunu düşündüm. (Un) Neyse ki amd64 sürümü sorunsuz çalıştığını düşündüm, bu yüzden 686 sürümünü korumak için durdu düşündüm, ama PAE olmadan 686 sürümü olduğunu bilmiyordum. Umarım debian bunu düzeltir, aksi halde insanlar şikayet eder.
Enginecrafter77

3

Muhtemelen /etc/uswsusp.conf'özgeçmiş cihaz' için değiştirilmiş bir giriş ister, eğer bu kullanılmazsa, myabe sadece /etcdeğişiklik gereken bir yer bulmak için tüm dosyalarda eski UUID'nizi grep etmeye çalışın . Ayrıca update-initramfsgerekli olurdu, diyebilirim.


Hiçbir şey uswsusp yüklemeye ve dosyanın doğru olup olmadığını kontrol etmeye çalıştı, ancak şans yok. / Etc içindeki hiçbir yapılandırma dosyası eski UUID'mi içermiyor.
Enginecrafter77

2

Aynı hatayı alıyordum. En son netinst iso ile yeniden yükleme, yani debian-9.1.0-amd64-netinst.iso bunu sıraladı. Hata düzeltildi gibi görünüyor (en azından bu mimari için).


Evet katılıyorum, amd64'te (yani x64) düzeltildi, ancak hata hala i386'da (takma 686 veya x86) var
Enginecrafter77

1

Uswsusp'u kaldırdım ve hazırda bekletme tekrar bir cazibe gibi çalışıyor. BTW Ben nvidia sürücüsü kullanırken Jessie önce zaten böyle olduğunu düşünüyorum, uswsusp kullanarak test ve hazırda bekletme almak için kaldırmak zorunda kaldı.


32-bit bilgisayar testinde uswsusp yüklü değil, ancak hazırda bekletme modu hala çalışmıyor.
Enginecrafter77

Çok kötü. Nvidia sürücüsünü kaldırmayı ve nouveau kullanmayı denediniz mi?
Alain

Evet tamamen temiz Debian 9 kurulumunu (32 bit) denedim ama sorun hala var. Ayrıca Intel grafikli bilgisayarda da olur, bu yüzden GPU ile hiçbir ilgisi olmadığını düşünüyorum.
Enginecrafter77

1

Bir takas bölümünüz varsa (doğru boyutta) ve "/etc/initramfs-tools/conf.d/resume" ifadesini "#blkid" sonucu ile düzenlerseniz ve i386, Debians i386'daki hatadan daha doğru hazırda bekletilmez. çekirdek! Çekirdeği 4.9'dan daha büyük bir sürüme güncelleyin veya 3.16 çekirdeğe geri dönün.


0

Lütfen bu cevabın genel niteliğini affedin. Web'de benzer sorular gördüm ve herkes için bir cevap yazmaya karar verdim. Bir Hp2510'da Debian-Jessie'yi yükseltirken de aynı sorunla karşılaştım. Ubuntu masaüstüne geçtim ve orada da buldum. Daha sonra Ubuntu ve Hp2510 üzerinde testlerimi yaptım, böylece durumunuz için tamamen geçerli olmayabilir.

Yeni Linux sistemleri ile güncellenen bazı eski bilgisayarlarda önyükleme sorunları yaşanır. Hiç önyükleme yapmayabilir veya önyükleme işlemi üç dakika sürebilir. Tesadüfen, ya hazırda bekletme konusunda başarısız olurlar ya da hazırda bekletme ve devre dışı bırakmak için bu kadar uzun sürebilirler. Çoğu zaman bu, eski bilgisayarların sadece yavaş olmasından değil, 4.8 Linux çekirdeğinde yapılan bir değişiklik nedeniyle, svideo çıkışı içeren çok yaygın bir Intel yongaseti ile bir soruna neden oluyor. Bu çekirdekten başlayarak, bu yonga setine sahip herhangi bir bilgisayar Linux komut satırı argümanı olmadığı sürece önyükleme sorunları yaşayacaktır"video=SVIDEO-1:d"GRUB_CMDLINE_LINUX içine dahil edilmiştir. Bu, hem 64 bit hem de 32 bit önyükleme sürelerini önemli ölçüde kısaltır, ancak hazırda bekletme sorunlarını yalnızca 64 bit için giderir. Hiçbir 32 bit sistem bu noktadan sonra hazırda bekletme modunu desteklemez. Ayrıca, tüm 4.8 ve 4.9 çekirdek sürümleri için önyükleme süreleri kötüdür (4.8.rc1-7 hariç). Bu nihayet 4.10'da çözüldü. 4.8 ve 4.9 çekirdeklerinden kaçınılmalıdır (yine de kullanılmamaktadır).

En hızlı önyükleme sürelerini istiyorsanız, 4,8 öncesi bir çekirdek kullanın. Çekirdek 4.7.10'a güncellenmiş olarak Ubuntu-desktop 15.04'ü kullanardım. 32 sistemde hazırda bekletme modunu almanın tek yolu budur. 64-bit sistem 32-bit'ten% 7 daha yavaş önyükleme yapar ancak yine de sonraki sürümlerden daha hızlıdır. Şu anda desteklenen bir 32 bit sistem istiyorsanız ve hazırda bekletme modundan çıkmak istiyorsanız, 4.10 veya sonraki bir çekirdeğe yayımlanmış veya güncellenmiş olanları kullanın. Herhangi bir 64 bit sürüm, video düzeltmesiyle 4.8'den sonra çalışır, ancak en iyi performans için 4.8 ve 4.9'dan kaçının.

Video düzeltme eklemek için yapın sudo nano /etc/default/grub. Nano kapattıktan sonra yapın sudo update-grub. GRUB_CMDLINE_LINUX'dan sonra eklenen GRUB_CMDLINE_LINUX_DEFAULT boş "video=SVIDEO-1:d"olmadığı sürece, bazı insanların gerekli olduğunu söylediği son Linux komut satırı argümanı olmayacaktır. Aslında her yerde olabilir.

Bir terminalde (veya tty) pm-hibernate komutuyla hazırda bekletme modunu çağırabilirsiniz, ancak kullanılabilir bir GUI seçeneğine sahip olmak /etc/polkit-1/localauthority/50-local.d/ com.ubuntu.enable-hibernate.pklaiçin aşağıdaki metni oluşturmanız veya ilke dosyasına eklemeniz (açıkça dağıtımına özgü) gerekir:

[Re-enable hibernate by default for login1]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate
    ResultActive=yes
[Re-enable hibernate for multiple users by default in logind]
    Identity=unix-user:*
    Action=org.freedesktop.login1.hibernate-multiple-sessions
    ResultActive=yes

0

Bazen sorun grub veya UUID'de değildir. Bu, depolama alanınız kalmadığında da olur. Yazma alanı kalmayacak, böylece hazırda bekletme modundan devam etmek donacaktır.

Bu hatayı aldığınızda, terminali açmak için alt+ f2/f3/f7veya üzerine tıklayabilirsiniz ctrl+alt+ f2/f3/f7. Terminal kullanarak hesabınıza veya root hesabınıza giriş yapın.

Ardından sudo df -hdepolama alanını kontrol etmek için komutu çalıştırın . Benim durumumda yerim yoktu, bu /dev/sda1yüzden listedeki sürücülerde boş alanı kontrol edin.

Alanınız kalmadıysa, kayda değer miktarda alan elde etmek için lütfen bazı dosyaları silmeyi deneyin.

Bundan sonra alt+f1veya ctrl+alt+f1giriş gui'sinin görünmesini veya yazılmasını bekleyebilir veyareboot in the terminal to reboot


Denemeniz için teşekkürler, ancak bu sorun zaten çözüldü. Sorun 4.9.0 i386 + PAE çekirdeği ile ilgili. Daha sonra PC'imin 64bit yazılım çalıştırabildiğini keşfettim (PC her zaman aldığım günden 32 bit çalışmasına rağmen) ve 64 bit çekirdek sorunu çözdü.
Enginecrafter77

Tamam bir şey değil.
David Kariuki
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.