Ubuntu 16.04 ไม่ปิดตัวลงหลังจากหยุดชั่วคราวหรือไฮเบอร์เนต


14

ที่จริงคำถามของฉันอาจปรากฏขึ้นเหมือนกันในฟอรัมนี้ (และคำถามนี้ที่อื่น ); แน่นอนคำถามเหมือนกัน แต่ฉันถามมันต่อไปเพราะฉันสามารถให้ข้อมูลเพิ่มเติมและเพราะฉันลองใช้วิธีแก้ปัญหาบางอย่างที่พบในเว็บ

ฉันเคยจำศีล Ubuntu 15.10 (ปิดฝา) ตอนนี้ฉันได้อัปเดตเป็น 16.04 (ฉันคิดว่ามันเป็นสิ่งที่ดีเนื่องจากเวอร์ชันนี้คือ LTS ซึ่งแตกต่างจาก 15.10) ฉันไม่สามารถใช้การไฮเบอร์เนต (หรือการระงับ!) อีกต่อไป: ถ้าฉันพยายามใช้งาน ไม่ปิดเพียงหน้าจอเป็นสีดำไฟ LED เปิดอยู่และฉันไม่สามารถทำอะไรได้นอกจากปิดเครื่องด้วยตนเอง (กดปุ่มเปิดปิดเครื่องนาน) เมื่อฉันเปิดเครื่องอีกครั้งฉันเห็นบรรทัดต่อไปนี้

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้น Ubuntu ก็บูทขึ้น

จากที่นี่ฉันลองด้วย

sudo -s
echo shutdown > /sys/power/disk
echo disk > /sys/power/state

และ

sudo -s
echo platform > /sys/power/disk
echo disk > /sys/power/state

เฉพาะส่วนแรกเท่านั้นที่ทำงานและเพียงครั้งเดียว: โดยบางส่วนฉันหมายถึงว่าหลังจากที่โหดร้ายปิดตัวลงเซสชั่นถูกกู้คืน

จากนั้นฉันพยายามทำตามคำแนะนำนี้ ฉันไม่เข้าใจความคิดเห็นที่เขียนหลังจากคำสั่งดังนั้นฉันจึงป้อนคำสั่งตามที่เป็นจริง (โดยคิดว่ามีข้อผิดพลาดบางอย่างเช่น "คำสั่ง / โฟลเดอร์นี้ไม่มีอยู่" จะเกิดขึ้นหากมีบางอย่างมาแทนที่คำสั่ง ):

แก้ไข

cat /proc/meminfo
sudo swapoff -a
sudo dd if=/dev/zero of=/swapfile bs=1024 count=8M
sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
sudo -b gedit /etc/fstab
free -m
swapon

mount | grep " / "
sudo blkid -g
sudo blkid
sudo filefrag -v /swapfile | grep "First block:"
sudo filefrag -v /swapfile
echo "resume=UUID=cdXX--X18 resume_offset=66050" | sudo tee /etc/initramfs-tools/conf.d/resume
sudo -b gedit /boot/grub/menu.lst
sudo -b gedit /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="... resume=UUID=cdXX--X18 resume_offset=66050"
sudo update-grub -y
sudo update-initramfs -u

บางทีนี่อาจเป็นความคิดที่แย่มากตั้งแต่ตอนนี้ฉันก็ได้

IMG:

ในที่สุดฉันพบคำถามที่เชื่อมโยงด้านบนและฉันไปที่นี่แต่ฉันไม่รู้จะทำอย่างไร

แก้ไข 2ในขณะนี้ถ้าฉันป้อน

...$ sudo swapon -s

ฉันไม่ได้อะไรเลย

...$

อาจเป็นเพราะ BIOS ใน BIOS ของฉันฉันไปที่การจัดการพลังงานและควรมีตัวเลือกว่าจะทำอย่างไรเมื่อถูกระงับ ปกติของฉันคือ S1 แต่ S3 เป็นของ
2559

แทงเข้าไปในที่มืดที่นี่ แต่คุณควรตรวจสอบการตั้งค่าไบออสของคุณและข้ามมันไป ออกคู่มือของคุณและตรวจสอบมัน ฉันเคยมีปัญหามากมายในอดีตที่มีสวิตช์ BIOS เป็นวิธีแก้ปัญหา
Jonathan

1
เลิกทำความคิดที่แย่มาก นี่เป็นข้อพิสูจน์ถึงวิธีการให้ Ubuntu ใช้พื้นที่สว็อปในการไฮเบอร์เนต ในฐานะที่เป็น root ด้วย sudo ให้ลบบรรทัดสุดท้ายที่เพิ่มจาก/etc/initramfs-tools/conf.d/resumeและสอง stanas กลับมาเพิ่มให้etc/default/grubรันสองบรรทัดสุดท้ายเพื่ออัพเดต grub และ initrd ลบ / สลับไฟล์ sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.targetวิ่ง พยายามใด ๆ sudo systemctl suspendของเป้าหมายเหล่านี้ด้วย เกิดอะไรขึ้น?
emk2203

ในที่สุดฉันตัดสินใจติดตั้ง Ubuntu 15.10 อีกครั้ง ตอนนี้การจำศีลทำงานได้อีกครั้ง บางทีฉันจะติดตั้ง 16.04 บนพาร์ติชันอื่น เมื่อฉันจะทำฉันจะอ้างถึงคำถามและคำตอบนี้
Enrico Maria De Angelis

คำตอบ:


6

บังคับให้จำศีลเพื่อปิดเครื่อง:

หลังจากมองไปรอบ ๆ เป็นเวลานานสำหรับคำตอบที่ได้รับการแก้ไขปัญหา (ไม่เกี่ยวข้องกับเรื่องนี้) ฉันพบเคล็ดลับที่ทำให้ฉันทำงานได้สำเร็จ:

สร้างไฟล์ในpmไดเร็กทอรี config:

sudo vim /etc/pm/config.d/hibernate_mode

ที่ตั้งค่าตัวแปรHIBERNATE_MODEดังนี้:

HIBERNATE_MODE="shutdown"

หลังจากทำเช่นนี้แล้วไฮเบอร์เนตจะปิดเครื่องเมื่องานเสร็จตามที่คาดไว้ คำอธิบายสำหรับการตั้งค่าที่HIBERNATE_MODEอยู่ในคู่มือสำหรับpm-hibernate :

วิธีการเริ่มต้นเพื่อปิดระบบเมื่อจำศีล หากไม่ได้ตั้งค่าระบบจะใช้ค่าเริ่มต้นเคอร์เนลเป็นค่าเริ่มต้น ตรวจสอบ / sys / power / disk สำหรับค่าที่ถูกต้อง ค่าเริ่มต้นจะถูกล้อมรอบด้วย [วงเล็บเหลี่ยม]

platformเริ่มต้นของฉันในแฟ้มที่เป็น ตั้งค่าตัวแปรด้านบนเพื่อshutdownลบล้างสิ่งนี้และรับสิ่งที่เราต้องการเกิดขึ้น

ข้อมูลที่เกี่ยวข้องและเคล็ดลับสำหรับการจำศีลในการทำงานอย่างถูกต้อง:

ในฐานะที่เป็น "ปัญหาที่เกี่ยวข้อง" ทุกคนดูเหมือนจะมีเคล็ดลับการแก้ไขข้อบกพร่องอย่างรวดเร็ว:

  1. ตรวจสอบว่าคำสั่งsudo pm-hibernateทำอะไรบางอย่างจริงๆ ถ้าไม่มีเคล็ดลับอื่น ๆ เหล่านี้จะสร้างความแตกต่างใด ๆ หากไม่ได้ผลให้แน่ใจว่า 1) ขนาดของพาร์ติชั่นสว็อปของคุณใหญ่กว่าของ RAM และ 2) การบูตที่ปลอดภัยถูกปิดใช้งานใน BIOS ของคุณ

  2. เพียงครั้งเดียวที่คำสั่งนั้นใช้งานได้ให้ดูที่การรวมระบบไฮเบอร์เนตในระบบของคุณ คู่ทั่วไป:

    • เพิ่มจำศีลในเมนูอูบุนตู: นี่เป็นคำตอบที่ดีที่สุดสำหรับฉัน เอกสารอย่างเป็นทางการยังมีรุ่นที่แตกต่างกันเล็กน้อย
      หมายเหตุ: เมื่อเพิ่ม Hibernate ไปที่เมนู Ubuntu คุณอาจต้องแก้ไขการโทรอื่นsudo systemctl hibernateด้วย เห็นได้ชัด (อย่างน้อยสำหรับ Ubuntu 16.04) ตัวเลือกเมนูอูบุนตูเรียกแทนsudo systemctl hibernate ได้รับการแก้ไขสำหรับฉันโดยการเพิ่มเนื้อหาต่อไปนี้ไปยังไฟล์:sudo pm-hibernatesystemctl hibernate/etc/systemd/sleep.conf

      [นอน]
      HibernateMode = ปิดเครื่อง

      หากยังไม่มีไฟล์คุณสามารถสร้างมันได้ ข้อมูลเพิ่มเติมที่นี่

    • เปลี่ยนพฤติกรรมของปุ่มเปิดปิด (ตามค่าเริ่มต้นจะแสดงในเมนูแบบโต้ตอบ):หากต้องการเปลี่ยนเป็นโหมดไฮเบอร์เนตโดยตรงหรือปิดเครื่องคุณต้องแก้ไขรายการgsettings ที่เกี่ยวข้อง คำตอบอื่น ๆ อีกมากมายผ่านทาง GUI หากสิ่งนั้นลอยอยู่ในเรือของคุณ หากต้องการดูตัวเลือกที่มีให้ใช้gsettings range org.gnome.settings-daemon.plugins.power button-power


2

เมื่อเห็นภาพสุดท้ายของคุณและแก้ไข 2ฉันสามารถเข้าใจได้ว่า Ubuntu ไม่พบ Swap Partition ในระบบของคุณ ดังนั้นฉันขอแนะนำให้คุณสร้างพาร์ทิชัน Swap เท่ากับหรือใหญ่กว่าขนาด RAM ของคุณแล้วลองอีกครั้ง

sudo pm-hibernate

คุณสามารถสร้าง swap partition โดยใช้ GParted แล้วรันสิ่งนี้เพื่อติดตั้ง

sudo apt-get install gparted

2

ฉันมีปัญหาเดียวกันหลังจากอัปเกรดจาก 15.10 เป็น 16.04:

  • การปิดฝาไม่ได้ทำอะไรเลย
  • การระงับรายการเมนูด้วยตนเองในถาดระบบด้วยตนเองทำให้มีสถานะระงับครึ่งหนึ่งด้วยวิธีเดียวในการรีเซ็ตระบบ

ฉันแก้ไขปัญหาเหล่านี้โดย

  1. อัปเกรดเคอร์เนลเป็น 4.4.8 (หลังจากที่ระงับจากเมนูนี้ใช้งานได้สำหรับฉัน)
  2. การเพิ่มบรรทัดHandleLidSwitchDocked=suspendลงใน /etc/systemd/logind.conf (ซึ่งทำให้สวิตช์ฝาทำงานอีกครั้ง)

ฉันคิดว่าทั้งสองประเด็นเป็นข้อบกพร่องที่ควรแก้ไข ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1574120 )


วิธีนี้ช่วยแก้ปัญหาสำหรับการระงับเท่านั้นหรือเพื่อการจำศีล
Enrico Maria De Angelis

0

ไฮเบอร์เนตถูกปิดใช้งานโดยค่าเริ่มต้น

ลองสิ่งนี้

sudo pm-hibernate

หากการทดสอบการจำศีลใช้งานได้คุณสามารถใช้คำสั่ง sudo pm-hibernate ต่อเมื่อคุณต้องการไฮเบอร์เนต

คุณยังสามารถเปิดใช้งานตัวเลือกไฮเบอร์เนตในเมนูได้ หากต้องการทำเช่นนั้นให้ใช้โปรแกรมแก้ไขข้อความที่คุณชื่นชอบเพื่อสร้าง /etc/polkit-1/localauthority/50-local.d/com.ubuntu.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.hibernate-multiple-sessions
ResultActive=yes

อ่านเพิ่มเติมเกี่ยวกับการไฮเบอร์เนต 16.04 จากลิงค์นี้

เพื่อปิดเครื่อง

sudo shutdown -h now

เพื่อเริ่มต้นใหม่

sudo shutdown -r now

ตามที่ฉันเขียน sudo pm-hibernate เคยทำงานได้ดีมากก่อนที่จะอัพเกรดฟอร์ม 15.10 เป็น 16.04LTS ดังนั้นปัญหาควรเกี่ยวข้องกับรุ่น 16.04LTS นอกจากนี้ฉันอาจทำสิ่งผิดปกติอย่างมากในการสอนโดยไม่เข้าใจพวกเขา คุณช่วยฉันแก้ไขปัญหาเหล่านี้ได้ไหม?
Enrico Maria De Angelis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.