ฉันสามารถไฮเบอร์เนตโดยไม่ใช้พาร์ทิชัน swap ได้หรือไม่


30

ฉันไม่ได้ตั้งค่า swap partition บนพีซีเพราะ a) ฉันมี RAM มากมาย (8 GB) และ b) ฉันมี harddrives ขนาดใหญ่ที่ฉันไม่ต้องการสับเป็นชิ้นเล็ก ๆ ดังนั้นพาร์ติชันที่เล็กที่สุดของฉันคือ 50 GiB และฉันใช้มันสำหรับระบบปฏิบัติการอยู่แล้ว

ตอนนี้ถึงไฮเบอร์เนตลินุกซ์ของฉัน (Ubuntu Jaunty) ต้องสลับ ฉันมีพาร์ติชั่นว่าง 100 GB ดังนั้นฉันจึงตั้งค่าเป็น swap แต่ฉันไม่พอใจ มันเคยถูกใช้สำหรับการจำศีลเท่านั้น (มี RAM จำนวนมากฟรีและระบบจะไม่ทำการสลับ) และมันก็มีขนาดใหญ่กว่าเล็กน้อยสำหรับการสลับ ในที่สุดฉันก็ต้องการมันเพื่อสิ่งอื่น

ฉันจะจำศีล (พักการใช้งานดิสก์) โดยไม่มีพาร์ติชั่น swap ใน Ubuntu Jaunty ได้อย่างไร?


3
นี่คือคู่มืออย่างเป็นทางการจากเดเบียนเกี่ยวกับการจำศีลโดยไม่ต้องสลับ: wiki.debian.org/Hibernation/Hibernate_Without_Swap_Partition
Francesco

แม้ว่าคุณจะมี RAM จำนวนมาก แต่การสลับยังสามารถช่วยคุณในการเพิ่มประสิทธิภาพเมื่อมีการใช้พื้นที่ของโค้ดแอพพลิเคชั่นที่ไม่ได้ใช้ (และเปลี่ยนเป็น) สำหรับการแคชข้อมูล
Michael Schmid

คำตอบ:


23

แนวคิดที่ยังไม่ทดลอง: ทำไมคุณไม่สร้างแผ่นปิดสำหรับs2diskหรือยูทิลิตีใดที่จัดการกับการระงับดิสก์ที่จัดการไฟล์ swap (ตรงข้ามกับพาร์ติชั่น swap) และลบทิ้งในประวัติย่อ?

  • สร้างไฟล์ swap: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8GB)
  • ตั้งค่าไฟล์สลับ: mkswap /swapfile
  • เมื่อคุณต้องการตั้งค่าการระงับชั่วคราวคุณสามารถเปิดใช้งานได้: swapon /swapfile
  • เมื่อคุณกลับมาทำงานต่อคุณสามารถปิดใช้งานได้: swapoff /swapfile

การดำเนินการต่อจากไฟล์ swap เป็นไปได้และมีการบันทึกไว้ใน kernel.org


ฉันคิดว่าไฟล์ swap แต่ฉันไม่รู้ว่าจะส่งผ่านสิ่งนั้นไปยังเคอร์เนลอย่างไรเมื่อเริ่มต้น ฉันสามารถทำ "resume = / path / to / file" ตามที่ฉันต้องการกับอุปกรณ์ block ได้หรือไม่?
Hanno Fietz

ดูการอัปเดตของฉันพร้อมลิงก์ไปยังเอกสารประกอบเกี่ยวกับการดำเนินการต่อจากไฟล์ swap
Robert Munteanu

8
Plz chmod 0600 /swapfileเพิ่มคำสั่ง ไฟล์สลับที่อ่านได้ทั่วโลกเป็นช่องโหว่ในพื้นที่ขนาดใหญ่
user4035

2
ฉันรู้ว่านี่เก่า แต่ฉันจะใช้ 'ตัด' แทน 'dd' ไม่จำเป็นต้องเขียนอะไรลงดิสก์จริงๆ
กุยโด

4
ที่จริงแล้วคุณไม่จำเป็นต้องเขียนลำดับของบางสิ่งบางอย่างไปยังดิสก์, swapon: /swapfile: skipping - it appears to have holes.การสร้างไฟล์ที่มีผลการตัดใน
hlovdal

9

คุณอาจมีสองวิธีที่นี่

  1. พิจารณาแลกเปลี่ยนไฟล์แทน swap-partition
    • ใช้ขนาดเล็ก (เทียบกับขนาดพาร์ติชันของคุณ แต่มีขนาดใหญ่พอสำหรับหน่วยความจำ) USB stick สำหรับ swap-partition

ไม่ว่าคุณจะทำอะไรฉันคิดว่าswapoffและswaponหลังจากนั้นจะมีประโยชน์
และเนื่องจากคุณไม่ต้องการการแลกเปลี่ยนจริงๆคุณสามารถออกได้swapoffหลังจากดำเนินการต่อ

ปรับปรุง: ความคิดเห็นทำให้เป็นจุดที่ดีเกี่ยวกับการไฮเบอร์เนต USB ช้า
ดังนั้นเช็คอินตามลำดับหมายเลข - แบบแผนแรกมีหมายเหตุสำหรับการไฮเบอร์เนตโดยใช้ไฟล์สลับ


จากความอยากรู้
ผมอยากจะรู้ว่าทำไมคุณต้องการที่จะจำศีลเมื่อ Linuxes เช่น Ubuntu ปิดและสามารถเริ่มต้นอย่างรวดเร็ว
ฉันคาดเดา

  • คุณโหลด RAM 8GB ของคุณด้วยแอพพลิเคชั่นบางตัวแล้วปล่อยทิ้งไว้
  • หรือคุณตื่นขึ้นมาบน LAN

แต่นั่นจริงเหรอ? หรือคุณมีเหตุผลอื่นที่จะจำศีล?

ฉันใช้USB เริ่มต้น Ubuntuและปิดเครื่องอยู่เสมอ


2
การระงับการใช้แฟลชไดรฟ์ USB จะช้ามาก
Tadeusz A. Kadłubowski

6
ฉันมักจะเปิดสิ่งต่าง ๆ จำนวนมากในระหว่างการทำงานและฉันชอบที่จะได้มันกลับมาเหมือนเดิมในวันถัดไป อูบุนตูนั้นรวดเร็วในการเริ่มต้น (ที่จริงแล้วสำหรับฉันมันดูเหมือนเร็วขึ้นแล้วกลับมาทำงานต่อ) แต่ Eclipse, Firefox ฯลฯ อาจไม่เป็นเช่นนั้นและแอปอื่น ๆ อาจไม่ได้บันทึกสถานะปัจจุบันของพวกเขาเมื่อปิด
Hanno Fietz

2
@Hanno, Firefox ยังช่วยให้คุณบันทึกเซสชันได้ถึงตำแหน่งเลื่อนของคุณ ดังนั้นการบันทึกและค่อนข้างดี ไม่แน่ใจว่า Eclipse สามารถทำอะไรได้
nik

3
Firefox ไม่จำพื้นที่ทำงานที่คุณมีหน้าต่างแต่ละหน้าต่างดังนั้นจึงมี PITA เล็กน้อยที่ต้องแจกจ่ายซ้ำอีกครั้งหลังจากรอให้ทุกคนโหลด นอกจากนี้ยังไม่มีวิธีการกู้คืนสถานะของสิ่งต่าง ๆ เช่นหน้าต่างเทอร์มินัล
intuited

จำศีลเต็ม 8GB หน่วยความจำจะใช้เวลาน้อยกว่าหนึ่งนาทีกับนี้ USB แฟลชติด
intuited

4

ใช่ แต่ไม่ใช่โดยไม่ต้องใช้ความพยายาม มี 2 ​​วิธีที่แตกต่างในการจำศีล (suspend-to-disk) บน linux:

  1. swswapซึ่งรวมอยู่ในเคอร์เนล
  2. tuxonice (เดิมคือ suspend2) ซึ่งไม่ใช่

Tuxonice พร้อมใช้งานเป็นโปรแกรมแก้ไขไปยังเคอร์เนลและจะช่วยให้คุณเขียนอิมเมจ suspend เป็นไฟล์ธรรมดา

จากวิกิพีเดีย :

TuxOnIce (formerly known as Suspend2) is an implementation of the suspend-to-disk (or hibernate) feature which is available as patches for the 2.6 Linux kernel. It was formerly known as 'swsusp'. During the 2.5 kernel era, Pavel Machek forked the original out-of-tree version of swsusp (then at approximately beta 10) and got it merged into the vanilla kernel, while development continued in the swsusp/Suspend2/TuxOnIce line. TuxOnIce includes support for SMP, highmem and preemption. Its major advantages over swsusp are:

    * It has an extensible architecture that allows for arbitrary transformations on the image and arbitrary backends for writing the image;
    * It prepares the image and allocates storage prior to doing any storage and accounts for memory and storage usage very carefully, thereby becoming more reliable;
    * Its current modules for writing the image have been designed for speed, combining asynchronous I/O, multithreading and readahead with LZF compression in its default configuration to read and write the image as fast as hardware is able;
    * It has an active community supporting it via a wiki, mailing lists and irc channel (see the TuxOnIce website);
    * It is more flexible and configurable (via a /sys/power/tuxonice interface);
    * Whereas the current swsusp (and uswsusp) implementations support writing the image to one swap device only, TuxOnIce supports multiple devices in any combination of swap files and swap partitions. It can also write the image to an ordinary file, thereby avoiding potential race issues in freeing memory when preparing to suspend.
    * It supports encryption by various methods;
    * It can store a full image of memory (resulting in a more responsive system post-resume), while uswsusp and swsusp write at most half the amount of RAM.

เนื่องจากมันไม่ได้รวมอยู่ในเคอร์เนลเริ่มต้นคุณจึงต้องรับ เคอร์เนลแพตช์ที่มีให้สำหรับ Jaunty และรวบรวมเคอร์เนลด้วยตัวคุณเอง

มีคำแนะนำเพิ่มเติมที่นี่แต่คุณอาจต้องการลองใช้คำแนะนำของโรเบิร์ตก่อนที่จะเดินไปตามถนนเส้นนี้เว้นแต่คุณจะเป็นมือเก่าที่จะรีดภาพเคอร์เนลของคุณเอง


2
ดีฉันได้ส่งเมล็ดจำนวนหนึ่ง (ฉันเป็นคนที่กระตือรือร้นมากใน Gentoo มาหลายปี) แต่มีเหตุผลว่าทำไมฉันถึงเปลี่ยนมาใช้ Ubuntu ... ;)
Hanno Fietz

3

อย่างที่โจเอลและเจฟฟ์คุยกันในพอดแคสต์การปิดสวิทช์โดยทั่วไปไม่ใช่ความคิดที่ดี - แม้ว่ามันจะคุ้มค่า (ซึ่งไม่ใช่) - พื้นที่ว่างในดิสก์มีราคาถูกอย่างไม่น่าเชื่อในทุกวันนี้ สิ่งใด คุณสามารถได้รับกิ๊กน้อยกว่าสิบเซ็นต์ (ยูโรนั่นคือ)!

อ้าง:

Atwood: ฉันคิดว่าทุกช่วงเวลาที่ผ่านกระบวนการคิดนี้ฉันได้รับความทรงจำมากมายและบางทีฉันอาจเปลี่ยนไฟล์หน้าของฉัน ฉันมีรายการบล็อกเกี่ยวกับเรื่องนี้ ... หมัดเด็ดคือ: มันไม่มีค่าอะไรเลย

ฟังพอดคาสต์เพื่อรับการสนทนาเพิ่มเติม (เริ่มประมาณนาทีที่ 59) หรืออ่านคำถามที่เซิร์ฟเวอร์ผิดที่เชื่อมโยงกับหน้าพอดแคสต์ (คำถาม 23621) พวกเขาพูดคุยเกี่ยวกับไฟล์หน้า windows แต่อาร์กิวเมนต์มีความถูกต้องเท่าเทียมกันสำหรับ UNIX (แม้ว่าพวกเขาอาจจัดการหน่วยความจำด้วยวิธีอื่น)


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

4
ปัญหาในการมีพาร์ติชั่น "จิ๋ว" คืออะไร? Btw ฉันจะไม่พิจารณาพาร์ติชั่น 8GB เลย - ฉันใช้ลินุกซ์ติดตั้งมานานหลายปีซึ่งอาศัยอยู่บนพาร์ติชันที่มีขนาดเล็กกว่านั้น และพีซีเครื่องแรกที่ฉันใช้มีฮาร์ดไดรฟ์ขนาด 20 เมกะไบต์ ..
0x89

1
ที่จริงแล้ว Linux จัดการหน่วยความจำในรูปแบบที่แตกต่างอย่างสิ้นเชิงกับ Windows แม้ในแล็ปท็อปเก่าของฉันกับ 2GB ของแลกเปลี่ยนแกะถูกนำมาใช้แทบ 200MB offloaded มีค่าสูงสุดที่ผมเห็น
vava

@vava: คุณอาจจะถูกต้องฉันปรับคำตอบของฉันเล็กน้อย แต่ความจริงที่ว่าคุณเห็นการโหลดไปถึง swap ของคุณ 200MB รองรับจุดของฉันจริงๆแล้ว ..
0x89
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.