ฉันจะจำศีลใน Ubuntu 16.04 ได้อย่างไร


86

ฉันจะจำศีลใน Ubuntu 16.04 ได้อย่างไร

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



ไม่sudo pm-hibernateทำงาน?
Pilot6

2
สถานการณ์ไม่เปลี่ยนแปลงด้วย systemd หรือไม่ ตอนนี้เรามีความตั้งใจที่จะใช้systemctl hibernateดังนั้นอาจไม่ใช่ผู้ล่อลวง ... หรืออย่างน้อยคำตอบที่อัปเดตอาจจำเป็นต้องทำให้คำถามเดิมใช้ได้กับ dupe
Zanna

คุณใช้เคอร์เนลเวอร์ชันใด พิมพ์uname -rเทอร์มินัล (ขออภัยถ้าคุณรู้สิ่งนี้อยู่แล้ว)
WinEunuuchs2Unix

โปรดแก้ไขคำถามของคุณและเพิ่มผลลัพธ์ free เพื่อให้เราสามารถตรวจสอบว่าคุณมีการตั้งค่าการสลับที่เพียงพอที่จะจำศีลได้สำเร็จหรือไม่
Elder Geek

คำตอบ:


62

การไฮเบอร์เนตใช้systemctlและทำให้มันใช้งานได้ในกรณีที่ยากลำบาก

สำหรับฉันpm-hibernateล้มเหลวเสมอ หลังจากปรับแต่งบางอย่างฉันก็สามารถจำศีลได้โดยใช้ส่วนต่อประสานของ systemd (ระบบ init ใน 16.04 ขึ้นไป) ฉันจัดการเพื่อให้มันทำงานบน 17.04 ด้วยไฟล์สลับ กรณีศึกษานี้อาจเป็นประโยชน์สำหรับผู้อื่นที่มีปัญหา

ครั้งแรกลอง:

sudo systemctl hibernate

หากสิ่งนั้นล้มเหลวให้เริ่มการแก้ไขปัญหา: ในสถานะไฮเบอร์เนต (HTD หรือ ACPI S4) สถานะของเครื่องจะถูกเขียนลงดิสก์เพื่อไม่ต้องใช้พลังงานในการเก็บรักษาไว้ สถานะถูกเขียนลงในพาร์ติชันสลับหรือไปยังไฟล์สลับ หมายเหตุ: หากใช้ BTRFS อย่าพยายามใช้ไฟล์ swap เนื่องจากอาจทำให้ระบบไฟล์เสียหายได้

พาร์ทิชันสว็อปหรือไฟล์สว็อปของคุณอาจต้องมีขนาดเท่ากับ RAM เพื่อให้จำศีล แต่มีโอกาสที่ดีที่คุณจะสามารถจำศีลถ้ามันเป็นอย่างน้อย 2/5 ขนาดของ RAM ตามหน้าArch วิกิดังนั้นให้ลองทำตามขั้นตอนอื่น ๆ ก่อนที่จะเพิ่มขนาดสวอป

หากปัญหาของคุณคือคุณได้รับคลีนบูตแทนเรซูเม่ที่คาดไว้อย่างน้อยที่สุดคุณจำเป็นต้องตั้งค่าพารามิเตอร์การบู๊ตเพื่อค้นหาดิสก์อิมเมจ

ค้นหาพาร์ติชัน swap ของคุณ:

grep swap /etc/fstab

สำหรับฉันผลตอบแทนนี้ (เอาท์พุทบางส่วน)

# swap was on /dev/mmcblk0p3 during installation

โดยที่/dev/mmcblk0p3จะระบุพาร์ติชัน

เพิ่มพารามิเตอร์การบูต:

sudoedit /etc/default/grub

ในบรรทัดที่เริ่มต้นให้GRUB_CMDLINE_LINUX_DEFAULTเพิ่มresume=/dev/YourSwapPartitionไปยังส่วนในเครื่องหมายคำพูด (แทนที่ด้วยพาร์ติชันที่คุณระบุไว้ก่อนหน้านี้) ใช้ตัวอย่างของฉัน:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=/dev/mmcblk0p3" 

เมื่อใดก็ตามที่คุณเปลี่ยนไฟล์นี้คุณต้องเรียกใช้มิsudo update-grubฉะนั้นการเปลี่ยนแปลงจะไม่มีผล

ตอนนี้คุณต้องรีบูต จากนั้นคุณสามารถลองจำศีลโดยออกคำสั่ง:

sudo systemctl hibernate

ในการกลับมาทำงานต่อให้กดปุ่มเปิดปิดและระบบจะบูต

หากคุณยังคงมีปัญหาเริ่มการดีบัก

ฉันรวมถึงกรณีของฉันด้านล่างเป็นตัวอย่าง แต่ข้อมูลรายละเอียดเกี่ยวกับการแก้จุดบกพร่อง S รัฐสามารถพบได้ในบล็อกนี้และยังเป็นหนึ่งในนี้

ตั้งค่าพารามิเตอร์การบูตเพิ่มเติมเพื่อรวบรวมข้อมูลเพิ่มเติม ลบquietและsplashเพิ่มinitcall_debugและno_console_suspendสิ่งที่จะทำให้การเรียกระบบเริ่มต้นจะถูกพิมพ์ไปยังคอนโซลเพื่อให้คุณสามารถดูสิ่งที่ผิดพลาด ฉันตั้งสิ่งนี้:

GRUB_CMDLINE_LINUX_DEFAULT="resume=/dev/mmcblk0p3 no_console_suspend initcall_debug"

ซึ่งช่วยให้ฉันดูว่าเกิดอะไรขึ้นกับประวัติย่อจากการจำศีล

ในกรณีของฉันหลังจากที่ทำต่อฉันทำ WiFi หายและเคอร์เนลไม่พอใจอย่างชัดเจนเนื่องจากคำสั่งส่วนใหญ่ (เช่นการอ่านอะไรจากการ/sysโหลดโมดูลหรือsystemctlคำสั่งใด ๆ) จะไม่ทำงาน - กระบวนการจะเริ่มต้นและหยุด (ทั้งหมดนี้จะเป็น กลับสู่ปกติหลังจากรีบูตแน่นอน) การดูระบบปิดตัวลงอย่างช้า ๆ และอ่านข้อความดีบั๊กทั้งหมดฉันสังเกตว่ามีปัญหามากมายกับ "brcm" ดังนั้นฉันจึงเดาได้ว่าโมดูลไดรเวอร์ไร้สายของ Broadcom คือการตำหนิ ฉันได้ปรับกระบวนการไฮเบอร์เนตของฉันเพื่อยกเลิกการโหลดโมดูลก่อน:

sudo modprobe -r brcmfmac
sudo systemctl hibernate

เมื่อกลับมาฉันใส่โมดูลเข้าไปใหม่

sudo modprobe brcmfmac

และทุกอย่างทำงานได้อย่างสมบูรณ์ ฉันต้องขึ้นบัญชีดำของbtsdioโมดูลที่ดูเหมือนว่าจะเข้ากันไม่ได้brcmfmac


อัปเดต: ไฮเบอร์เนตโดยใช้ไฟล์ swap ในวันที่ 17.04

อีกครั้งด้วยความช่วยเหลือจากหน้า Arch wiki และการซ่อมแซมเพิ่มเติมฉันจัดการเพื่อให้จำศีลในการทำงานกับ 17.04 ด้วยไฟล์ swap สิ่งนี้ต้องการพารามิเตอร์การบู๊ตเพิ่มเติมโดยresume_offset=nที่ n คือหมายเลขแรกภายใต้physical_offsetในเอาต์พุตของsudo filefrag -v /swapfile:

$ sudo filefrag -v /swapfile
Filesystem type is: ef53
File size of /swapfile is 1425873920 (348114 blocks of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..   32767:      34816..     67583:  32768:            
   1:    32768..   63487:      67584..     98303:  30720:            
   .... 

resume_offset=34816ดังนั้นพารามิเตอร์บูตเพิ่มเติมในกรณีของฉันคือ คุณยังคงต้องตั้งค่าพารามิเตอร์การบู๊ตสำหรับพาร์ติชันเพื่อดำเนินการต่อ นี่จะเป็นรูทพาร์ติชัน (หรือพาร์ทิชั่นไฟล์สวอปของคุณอยู่) พารามิเตอร์ของฉันคือ

GRUB_CMDLINE_LINUX_DEFAULT="no_console_suspend initcall_debug resume=/dev/mmcblk1p2 resume_offset=34816"

/dev/mmcblk1p2พาร์ติชั่นรูทของฉันอยู่ที่ไหน(คุณมีแนวโน้มที่จะเป็นเหมือน/dev/sda2)

ระหว่างดำเนินการต่อฉันเห็นการโหลดรูปภาพสำเร็จ แต่ในกรณีของฉัน (เพียงแค่ตัวอย่าง - YMMVAPD) จากนั้นไดรเวอร์บางตัวเพิ่มเติม ( i2c_designware) โยนข้อผิดพลาดบางอย่างและฉันได้รับระบบที่สมบูรณ์ในการดำเนินการต่อ การไฮเบอร์เนตใช้งานได้หากฉันยกเลิกการโหลดโมดูลเหล่านั้นเพิ่มเติมbrcmfmacแต่ระบบจะไม่สามารถใช้งานได้อย่างรวดเร็วหากไม่มีโมดูลเหล่านั้น ดังนั้นฉันจึงจัดเรียงสคริปต์เพื่อยกเลิกการโหลดโมดูลบั๊กกี้และแทรกมันอีกครั้งทันทีที่กลับมา:

# remove buggy modules
modprobe -r brcmfmac i2c_designware_platform i2c_designware_core &&
# hibernate
echo disk > /sys/power/state
# reinsert
modprobe i2c_designware_core i2c_designware_platform brcmfmac

sudo bash scriptเมื่อฉันต้องการที่จะจำศีลผมทำงาน มันใช้งานได้ดี


TL; DR

ใช้ systemd ตั้งค่าพารามิเตอร์การบูตสำหรับการดำเนินการต่อจาก swap ระบุไดรเวอร์ buggy และยกเลิกการโหลดพวกเขาก่อนที่จะเริ่มจำศีล หากระบบไม่สามารถทำงานได้เป็นเวลานานหากไม่มีโมดูลเหล่านั้นหรือคุณจำเป็นต้องยกเลิกการโหลดหลาย ๆ ครั้งระบบอาจใช้สคริปต์ง่าย ๆ ในการเริ่มต้นการจำศีล


ข้อมูลจากที่ใดขนาด 2/5 ของ RAM อาจเพียงพอและภายใต้สถานการณ์ใด ฉันมีตัวเลือกผู้ใช้ใน Gnome, "Hibernate" และดูเหมือนว่าจะจำศีล แต่เมื่อตื่นขึ้นมาก็ไม่ทำงานอย่างถูกต้อง ฉันมีพาร์ติชั่นสว็อปของ RAM 8GB และ 32GB นั่นไม่ใช่ 2/5 แต่ก่อนที่จะสร้างไฟล์ swap ขนาด 32GB (หรือพาร์ติชัน) คุณควรรู้
cslotty

@cslotty ผมได้รับข้อมูลว่าจากวิกิพีเดีย IIRC Arch - แจ้งให้เราทราบถ้าคุณไม่จัดการกับมันได้โปรด
Zanna

ขอบคุณ @Zanna ฉันพบว่าจริงๆแล้วมันไม่ได้จำศีลสิ่งที่ฉันต้องการ แต่ระงับ (S3 / STR) - sry
cslotty

@cslotty ไม่ต้องกังวลเลย ในกรณีนี้การแลกเปลี่ยนไม่ใช่ปัญหาของคุณเนื่องจากไม่เกี่ยวข้อง
Zanna

1
ขอบคุณฉันต้องการการสังเคราะห์คำตอบนี้รวมถึงเคล็ดลับในการปิดใช้งาน SecureBoot เพื่อให้สามารถใช้งานได้ในที่สุด
oligofren

62

คุณสามารถใช้ได้

sudo pm-hibernate 

เพื่อตรวจสอบว่าการจำศีลทำงานบนระบบของคุณหรือไม่ ( นี่จะเป็นการจำศีลในคอมพิวเตอร์ของคุณ )

หากไม่ได้ผลให้ตรวจสอบว่าขนาดการแลกเปลี่ยนของคุณมีขนาดใหญ่กว่า RAM ของคุณอย่างน้อย

ในการเพิ่มตัวเลือกในเมนูการตั้งค่าคุณสามารถสร้างไฟล์กำหนดค่า เปิดหน้าต่างเทอร์มินัลและรันคำสั่งนี้:

sudo nano /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.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

จากนั้นบันทึกการเปลี่ยนแปลงและปิดนาโนและรีบูตระบบเพื่อให้ไฮเบอร์เนตพร้อมใช้งานปรากฏใน "ตัวเลือกพลังงาน"

การอ้างอิง: ฉันจะจำศีลคอมพิวเตอร์ได้อย่างไร ในเอกสารอย่างเป็นทางการสำหรับ Ubuntu 16.04

หวังว่ามันจะใช้งานได้ สิ่งนี้ใช้ได้สำหรับฉันหลังจากลองใช้ตัวเลือกอื่น ๆ ทั้งหมด


เราต้องรีบูตเครื่องหลังจากแก้ไขไฟล์เพื่อให้ไฮเบอร์เนตพร้อมใช้งานปรากฏใน "ตัวเลือกพลังงาน"
Jus12

21
'sudo pm-hibernate' ฆ่าระบบของฉันทันทีโดยไม่มีการเตือนล่วงหน้า คุณควรบอกคนอื่นว่าอะไรกำลังจะเกิดขึ้น
Yair Daon

คำตอบที่ดีที่สุด สิ่งนี้ยังทำงานใน 17.4 และ 17.10 เช่นกัน
Saurabh Bhandari

1
คำตอบนี้รวมกับการบอกเพื่อเพิ่ม "resume =" ให้กับ GRUB_CMDLINE_LINUX_DEFAULT แก้ปัญหาให้ฉัน - ขอบคุณ!
Christoph

ฉันมี 17GB ในพาร์ติชั่นสว็อปและ RAM ขนาด 16GB, ทำไมมันไม่ทำงาน? ดูเหมือนว่าจะจำศีลเพราะใช้เวลาตลอดไปในการปิดคอมพิวเตอร์ในขณะที่ถ้าฉัน "ปิด" มันจะปิดไปเกือบจะในทันที แต่เมื่อฉันเปิดเครื่องคอมพิวเตอร์ทุกอย่างก็ปิดและฉันต้องเริ่มต้นใหม่อีกครั้ง นั่นไม่ได้จำศีลเลย ทำไมมันไม่ง่ายเหมือนใน Windows? ฉันต้องการความช่วยเหลือถ้าใครมีแนวคิดเกี่ยวกับวิธีที่ฉันสามารถทำให้มันจำศีลได้อย่างถูกต้อง
user1271772

20

ฉันคิดว่าวิธีการเปิดใช้งานไฮเบอร์เนตสำหรับ 16.04 คำตอบเป็นที่รู้จักกันทั้งหมดตามที่อธิบายไว้ในUbuntu Wiki (ดูด้านล่างหากคุณต้องการขั้นตอน) แต่สิ่งที่ต้องมีการตรวจสอบนั้นไม่ได้คิดอย่างถี่ถ้วน อย่างน้อยนั่นคือสิ่งที่ฉันพบ

สิ่งที่ต้องตรวจสอบ

จากการทดสอบของฉันเองฉันพบอย่างน้อยหนึ่งการตรวจสอบพิเศษที่คุณควรทำ ฉันไม่พบที่ใดก็ได้ในอินเทอร์เน็ต

นี่คือการตรวจสอบบางอย่าง -

  1. ตรวจสอบว่าคุณไม่ได้ใช้พาร์ทิชันbtrfsใด ๆ ใช่แล้ว จากการทดสอบของฉันฉันพบว่าถ้าคุณมีพาร์ทิชันbtrfs , ไฮเบอร์เนตจะไม่ทำงาน การลบหรือเปลี่ยนประเภทพาร์ติชั่นเป็นext4ไม่ช่วยฉัน ฉันต้องการลบbtrfs-toolsแพ็คเกจ

    sudo apt-get purge btrfs-tools
    

    คุณอาจต้องการตรวจสอบประเภทพาร์ติชันใหม่ที่ไม่ผ่านการทดสอบ หากไม่ลบแพ็คเกจการขึ้นบัญชีดำอาจทำงานได้ แต่ฉันยังไม่ได้ทดสอบ

  2. นอกจากนี้คุณต้องตรวจสอบว่าคุณมีพาร์ติชันสลับใหญ่พอที่จะเก็บเนื้อหาของ RAM หาก RAM ของคุณมีขนาด 4 GB การแลกเปลี่ยนควรมีขนาดใหญ่อย่างน้อย 4 GB (คุณควรจัดสรร MB อีกสองสามตัวให้ปลอดภัย

ขั้นตอนในการเปิดใช้งานการไฮเบอร์เนต

มันเกี่ยวข้องกับขั้นตอนเหล่านี้

  1. สร้างไฟล์ตามรูท /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla

    sudo -i nano /etc/polkit-1/localauthority/50-local.d/enable-hibernate.pkla
    
  2. ใส่เนื้อหาเหล่านี้ลงในไฟล์นั้น

    [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
    
  3. บันทึกไฟล์โดยการกด-Ctrl Oออกด้วยCtrl-X

  4. รีสตาร์ทpolkitddaemon

    sudo systemctl restart polkitd.service
    

ควรเปิดใช้งานการไฮเบอร์เนต


2
ขอบคุณอันวาร์ ฉันยื่นข้อผิดพลาด # 1619846และส่งคำตอบของคุณมาให้คุณ โอกาสใดที่คุณสามารถเสนอการเปลี่ยนแปลง / เพิ่มเติมที่แน่นอนเพิ่มเติมไปยังหน้านั้นในเอกสารอย่างเป็นทางการ?
Gunnar Hjalmarsson

1
@GunnarHjalmarsson ฉันขอเสนอคำเตือนนี้ แต่ฉันจะต้องทดสอบเพิ่มเติมยืนยันนี้ จะแจ้งให้คุณทราบภายหลัง
Anwar

ตกลงมาคุยกันมากขึ้นแล้ว
Gunnar Hjalmarsson

ฉันติดตั้งบนพาร์ทิชัน btrfs และกำจัดbtrfs-toolsตามคำแนะนำของคุณ ยังคงจำศีลไม่ได้
Oxwivi

1
บนดิสก์มีเพียงvfatสำหรับ UEFI และและbtrfs swapฉันสงสัยจริงๆว่าเป็นเพราะฮาร์ดแวร์ (แล็ปท็อป AMD) ฉันจะทดสอบสิ่งนี้ในระบบอื่นด้วย btrfs และกลับมาหาคุณ
Oxwivi

7

Secure Boot

(ฉันถามคำถามที่คล้ายกันเพื่อขอโฟกัสไปที่การตอบกลับตาม systemd แบ่งปันโซลูชันของฉันที่นี่สำหรับผู้ที่ติดตามคำถามนี้)

วิธีการแก้ปัญหานี้มาจากหัวข้อFedora (พวกเขาเปลี่ยนไปใช้ระบบในขณะที่ผ่านมาดังนั้นจึงมีเนื้อหามากขึ้น)

ในกรณีของฉัน (การติดตั้ง 16.04.1 ใหม่บนเครื่องที่รองรับการจำศีลเสมอ) การโทรที่ล้าสมัยsudo pm-hibernateดูเหมือนจะไม่ทำอะไรเลยและวิธีการที่ทันสมัยของระบบsystemctl hibernateจะกลับมา:

Failed to hibernate system via logind: Sleep verb not supported

ปรากฎว่าการบูตปลอดภัยเป็นผู้ร้าย: การติดตั้ง 16.04 คุณถูกถามว่าคุณต้องการทำอะไรกับมัน (ซึ่งเป็นสิ่งใหม่เท่าที่ฉันจำได้) และฉันเก็บไว้โดยไม่ได้คิดอะไรมาก

ในเครื่องของฉันที่มี boot boot อย่างปลอดภัยให้cat /sys/power/diskตอบ:

 [disabled]

หลังจากรีบู๊ตและปิดการใช้งานการบู๊ตอย่างปลอดภัยในการตั้งค่าไบออส (นี่เป็นเฉพาะเครื่อง แต่โดยทั่วไปแล้วค่อนข้างตรงไปตรง) ฉันลองcat /sys/power/diskและได้:

 [platform] shutdown reboot suspend 

ซึ่งดูดีกว่า และแน่นอนการเรียกsystemctl hibernateผลลัพธ์ในลำดับไฮเบอร์เนต / ละลายที่ประสบความสำเร็จ

ยิ่งกว่านั้นหลังจากนั้นฉันเห็นการไฮเบอร์เนตเป็นตัวเลือกในสถานที่ต่าง ๆ ของส่วนต่อประสานกราฟิกโดยไม่จำเป็นต้องpolkitแฮ็ค ดังนั้นดูเหมือนว่าsystemdจริง ๆ แล้วเดาได้/sys/power/diskว่าระบบไม่สามารถจำศีลได้


ฉันทำสิ่งที่คุณอธิบายตรงนี้ แต่หลังจากฉันรันคำสั่ง "systemctl hibernate" หน้าจอจะมืดเป็นเวลา 3 วินาทีจากนั้นเดสก์ท็อปก็กลับมาพร้อมกับโปรแกรมที่เปิดอยู่ทั้งหมดเหมือนก่อนที่ฉันจะสั่งคำสั่ง เมื่อฉันรันคำสั่ง "cat / sys / power / disk" ... มันแสดงให้ฉันเห็นข้อความนี้: "[แพลตฟอร์ม] ปิดเครื่องรีบูตระงับ test_resume" ซึ่งมันคล้ายกับผลเมื่อคุณดำเนินการเดียวกันจากด้านข้างของคุณ แต่ข้อความสุดท้าย : "test_resume" คุณมีความคิดว่าฉันจะพยายามแก้ไขปัญหาของฉันได้อย่างไร
foxhard

ไม่แน่ใจเกินไปดูเหมือนว่าการจำศีลไม่ได้ทำงานนอกกรอบบนฮาร์ดแวร์ของคุณซึ่งเป็นสาเหตุที่ทำให้ถูกปิดใช้งานตามค่าเริ่มต้นตามที่คนอื่น ๆ ชี้ให้เห็น คุณอาจต้องการเริ่มคำถามแยกต่างหากเกี่ยวกับปัญหาเฉพาะของคุณ
Marc

ทำงานเพียงครึ่งเดียวสำหรับฉัน ไฮเบอร์เนต แต่แทนที่จะตื่นจากการไฮเบอร์เนตไปที่บูตตามปกติจากนั้นจะติดตลอดไปจนกว่าจะปิดเครื่องอย่างหนัก
matt

6

คำแนะนำนี้ใช้ได้กับการติดตั้ง Ubuntu 18.04 ของฉัน

  1. sudo apt install hibernate มันจะติดตั้งไฮเบอร์เนตและการอ้างอิงอื่น ๆ ที่จำเป็นในการจำศีล
  2. grep swap /etc/fstab (นิ้ว UUID)
  3. sudoedit /etc/default/grub ที่บรรทัด GRUB_CMDLINE_LINUX_DEFAULT = "สแปลชเงียบ" ให้เพิ่ม UUID ของการสลับ บรรทัดมีลักษณะเช่นนี้ GRUB_CMDLINE_LINUX_DEFAULT = "Resume splash ที่เงียบ = UUID ของการสลับ"
  4. sudo update-grub
  5. sudo systemctl hibernateเริ่มต้นใหม่หลังจากที่เริ่มต้น ถ้าทุกอย่างใช้ได้ดีให้เพิ่มรายการเมนู
  6. sudo gedit /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.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes

คัดลอกจากhttps://askubuntu.com/a/819891/712203

  1. รีสตาร์ทคอมพิวเตอร์
  2. ติดตั้งhttps://extensions.gnome.org/extension/755/hibernate-status-button/

1
แทนการเพิ่มค่าคงที่จะ/etc/default/grubพิจารณาปรับปรุง initramfs ใช้และมองหาข้อความเช่นupdate-initramfs -u -k all The initramfs will attempt to resume from /dev/dm-0นี่จะเป็นการตั้งค่าอุปกรณ์ดำเนินการต่อโดยอัตโนมัติ
ukos

ขอบคุณทำงานได้อย่างสมบูรณ์บน Ubuntu 18.04! โปรดทราบว่าหากนี่เป็นครั้งแรกที่คุณใช้ส่วนขยาย gnome คุณจะต้องติดตั้งส่วนขยายของเบราว์เซอร์และตัวเชื่อมต่อ นี่คือคำอธิบายในลิงก์ส่วนขยายที่ด้านบน
Karim Sonbol

4

ขยายความคิดเห็นของฉันเองไปยังคำตอบของ kelvinelove ไฟล์ที่เขาแนะนำให้แก้ไขไม่ได้อยู่ในระบบของฉัน (Ubuntu สด 16.04) ฉันทำสิ่งนี้แทน:

  1. sudo nano /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

  2. มองหาส่วนเหล่านี้ (ถูกต้องซึ่งกันและกัน):

    [ปิดใช้งานการไฮเบอร์เนตโดยค่าเริ่มต้นใน upower] Identity = unix-user: * Action = org.freedesktop.upower.hibernate ResultActive = no

    [ปิดใช้งานการไฮเบอร์เนตโดยค่าเริ่มต้นใน logind] Identity = unix-user: * Action = org.freedesktop.login1.hibernate; org.freedesktop.login1.handle-hibernate-key; ResultActive = ไม่มี

  3. เปลี่ยนResultActive = noเป็นResultActive = ใช่สำหรับทั้งคู่

  4. กดCtrl + Oเพื่อบันทึกไฟล์
  5. รีบูทคอมพิวเตอร์ของคุณ
  6. Hibernateตัวเลือกที่มีอยู่ในเมนูอำนาจของคุณ

แก้ไข: Gunnar ชี้ให้เห็นว่าไฟล์นี้จะถูกเขียนทับหากแพคเกจบางอย่างได้รับการปรับปรุงดังนั้นขึ้นอยู่กับความตั้งใจของคุณมันน่าจะเป็นทางออกที่ดีที่สุด

ที่มา: http://www.zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04/


ไฟล์ใน/etcไม่ควรจะมีอยู่ตามค่าเริ่มต้น เป็นไฟล์กำหนดค่าที่คุณสร้าง การแก้ไขไฟล์ที่เป็นเจ้าของแพ็คเกจตามที่คุณแนะนำข้างต้นเป็นคำแนะนำที่ไม่ดีเนื่องจากไฟล์จะถูกเขียนทับในการอัปเดตแพ็คเกจครั้งต่อไป
Gunnar Hjalmarsson

@GunnarHjalmarsson หากเป็นกรณีนี้ฉันจะยืนยันว่าควรระบุว่าอาจไม่มีอยู่จริง ฉันคาดหวังมากขึ้นจากอันดับสูงสุดถามคำตอบของ Ubuntu มากกว่า "คัดลอก / วางคำสั่งนี้" -> "พิมพ์คำตอบนี้" - สไตล์คำตอบที่ขาดการตรวจสอบทุกประเภทว่าคุณกำลังทำสิ่งที่ถูกต้องหรือไม่ . เกิดอะไรขึ้นถ้ามีคนพบคำตอบนั้นในสองสามปี แต่กลัวที่จะลองเพราะไฟล์ว่างเปล่าและคำแนะนำอย่างชัดเจนเพื่อเพิ่มไฟล์ซึ่งหมายความว่ามันมีอยู่จริง? อย่างไรก็ตามฉันขอขอบคุณข้อมูลที่จะเพิ่มไปยังคำตอบสำหรับการเสร็จสิ้น
fgblomqvist

1
จุดยุติธรรม ฉันแก้ไขคำตอบของ NirajW ด้วยการชี้แจง มันควรจะตั้งข้อสังเกตว่าต้นฉบับของข้อมูลในหน้านี้พูดคุยเกี่ยวกับการสร้าง
Gunnar Hjalmarsson

นี่คือความสมบูรณ์แบบที่คุณช่วยชีวิตฉันพี่ชาย :)
Azam Alvi

4

สำหรับผมมันทำงานในการติดตั้งแพคเกจเริ่มต้นใหม่และเรียกใช้hibernate sudo hibernate-diskฉันแน่ใจว่าเป็นไปได้ที่จะเพิ่มลงในเมนู แต่ไม่คุ้มกับเวลาสำหรับฉัน


3

อันดับแรกฉันขอแนะนำให้คุณทดสอบว่าเครื่องของคุณรองรับการจำศีลหรือไม่เพราะสาเหตุที่การปิดการจำศีลถูกปิดใช้งานโดยค่าเริ่มต้นคือบางครั้งเครื่องอาจมีผลลัพธ์ที่ไม่พึงประสงค์ในเครื่องบางเครื่อง ทดสอบเครื่องของคุณโดยเปิดเทอร์มินัล ( Ctrl+ Alt+ T) แล้วพิมพ์sudo pm-hibernate

เครื่องของคุณควรจำศีล ปลุกเครื่องให้ตื่นหลังจากจำศีลและสังเกตว่าเครื่องทำงานผิดปกติหรือทำงานผิดปกติ หากคุณพบความผิดปกติใด ๆ หลังจากไฮเบอร์เนตฉันขอแนะนำให้คุณไม่ดำเนินการตามขั้นตอนต่อไปนี้ อย่างไรก็ตามหากใช้งานได้ดีให้เปิดใช้งานการจำศีลต่อไปโดยทำดังนี้

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

แก้ไขไฟล์ที่เปิดและเพิ่มบรรทัดนี้:

[Re-enable hibernation]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

หลังจากนี้ให้รีสตาร์ทเครื่องของคุณและหลังจากเข้าสู่ระบบคุณจะเห็นตัวเลือกไฮเบอร์เนตที่เพิ่มเข้ามาในเมนูพลังงานที่มุมบนขวาของการตั้งค่า


ฉันมี thinkpad -E550 และไม่มีปัญหากับการจำศีลเมื่อ OS ของฉันคือ ubuntu 15.1 หรือ windows8.1 แต่ใช้ Ubuntu 16.04 เมื่อฉันใช้คำสั่ง "sudo pm-hibernate" มันไม่จำศีลอย่างสมบูรณ์และหน้าจอจะเป็นสีดำและเครื่องยังทำงานอยู่
Mahyar

ในกรณีของฉันคำสั่งไม่ทำอะไรเลย เทอร์มินัลไปที่บรรทัดใหม่และรอคำสั่งถัดไปเช่นคำสั่งก่อนหน้านี้ได้รับการดำเนินการ แต่มันก็ไม่ทำอะไรเลยat all
Aalok

มันไม่ได้ผลสำหรับฉัน Ubuntu 16.04 ตัวเลือกไฮเบอร์เนตไม่ได้เกิดขึ้นและยังคงปิดการใช้งานในการตั้งค่า -> พลังงานมีอะไรอีกไหม?
Daniele Segato

การแก้ไขนโยบายที่มีอยู่แล้วดีกว่า: zedt.eu/tech/linux/enable-hibernation-xubuntu-16-04
fgblomqvist

com.ubuntu.enable-hibernate.pklaเนื้อหาไม่สมบูรณ์ใน ดูคำตอบที่โพสต์โดย NirajW
Gunnar Hjalmarsson

3

มีแหล่งข้อมูลที่ดีมากที่นี่เพื่อช่วยให้คุณจัดการกับปัญหาจำศีลที่พบบ่อยมากขึ้นภายใต้ Ubuntu

ในกรณีของฉันใช้ Ubuntu 16.10 กับ Lenovo u300 เพื่อให้จำศีลทำงานได้อย่างถูกต้องฉันต้องทำสิ่งต่อไปนี้:

  • สร้างไฟล์ swap ที่มีขนาดเหมาะสม (โดยปกติฉันมักจะมีขนาดประมาณ 1x เท่าที่เคยได้ยินมามากถึง 1.6 เท่าและ 2x)
  • แก้ไข/etc/default/grubเพื่อรวมบรรทัดต่อไปนี้:

    GRUB_CMDLINE_LINUX_DEFAULT="splash quiet pci=nomsi RESUME=UUID=92781adb-f2a6-4f15-88fc-e1ce801291dd"
    

RESUME อ้างถึง UUID ไฟล์สวอปเฉพาะของคุณ โดยเฉพาะอย่างยิ่งในการตั้งค่าเครื่องของฉันpci=nomsiเป็นกุญแจสำคัญ

ขอให้โชคดี!


กรณีด้วงไม่ไวหรือไม่ เหตุใดจึงใช้ RESUME
NelsonGon

1

คุณต้องเปิดใช้งานด้วยตนเองด้วยความพยายามเล็กน้อย มันถูกปิดการใช้งานโดยค่าเริ่มต้น

http://ubuntuhandbook.org/index.php/2014/04/enable-hibernate-ubuntu-14-04/

จากนั้นหากไม่ได้ผลอาจเป็นปัญหาเคอร์เนล 4.4.0 และคุณอาจต้องอัพเกรดเคอร์เนล


2
คำตอบอ้างอิงถึง 14.04 ในขณะที่คำถามอยู่ที่ประมาณ 16.04
Gunnar Hjalmarsson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.