क्या मैं एक स्वैप विभाजन के बिना लिनक्स को हाइबरनेट कर सकता हूं?


30

मैंने अपने पीसी पर एक स्वैप विभाजन स्थापित नहीं किया था, क्योंकि a) मेरे पास बहुत सारे RAM (8 GB) और b) मेरे पास बड़ी हार्डड्राइव हैं जिन्हें मैं छोटे टुकड़ों में काटना नहीं चाहता था, इसलिए मेरे सबसे छोटे विभाजन 50 हैं GiB, और मैं पहले से ही OS के लिए उपयोग कर रहा हूँ।

अब, हाइबरनेट करने के लिए, मेरे Linux (Ubuntu Jaunty) को स्वैप की आवश्यकता है। मेरे पास एक अतिरिक्त 100 जीबी विभाजन था इसलिए मैंने इसे स्वैप के रूप में सेट किया, लेकिन मैं इससे संतुष्ट नहीं हूं। यह केवल कभी भी हाइबरनेशन के लिए उपयोग किया जाता है (इसमें हमेशा बहुत सारी रैम मुफ्त होती है और सिस्टम कभी स्वैप नहीं होता है) और यह स्वैप के लिए थोड़ा बड़ा है। इसके अलावा, मैं अंततः इसे किसी और चीज़ के लिए चाहिए।

मैं Ubuntu Jaunty में एक स्वैप विभाजन के बिना हाइबरनेट (डिस्क के लिए निलंबित) कैसे कर सकता हूं?



भले ही आपके पास बहुत सी रैम हो, पर स्वैपिंग अभी भी प्रदर्शन को बढ़ाने के लिए आपकी मदद कर सकती है, जब अप्रयुक्त (और इसलिए अदला-बदली) स्थान का उपयोग कैशिंग डेटा के लिए किया जाता है।
माइकल श्मिट

जवाबों:


23

अनचाहे विचार: आप एक रैपर के लिए s2diskया जो भी यूटिलिटी हैंडल हैंडल करते हैं, उसे डिस्क पर निलंबित कर देते हैं, जो स्वैप फाइल को प्रबंधित करता है (स्वैप स्वैप के विपरीत) और फिर से शुरू होने पर इसे हटा देता है?

  • स्वैप फ़ाइल बनाएँ: dd if=/dev/zero of=/swapfile bs=1024 count=8388608(8GB)
  • स्वैप फ़ाइल सेट करें: mkswap /swapfile
  • जब आपको सस्पेंड करने की आवश्यकता हो तभी आप इसे सक्रिय कर सकते हैं: swapon /swapfile
  • जब आप फिर से शुरू करते हैं तो आप इसे निष्क्रिय कर सकते हैं: swapoff /swapfile

स्वैप फ़ाइलों से फिर से शुरू करना संभव है, और kernel.org पर प्रलेखित है


इहाद ने एक स्वैप फाइल के बारे में भी सोचा, लेकिन मुझे नहीं पता कि स्टार्टअप पर कर्नेल को कैसे पास किया जाए। क्या मैं ब्लॉक डिवाइस के साथ "रिज्यूम = / पाथ / टू / फाइल" कर सकता हूं?
हन्नो फिएट

स्वैप फ़ाइलों से फिर से शुरू होने पर प्रलेखन के लिंक के साथ मेरा अपडेट देखें।
रॉबर्ट मुंटेनु

8
Plz, कमांड जोड़ें chmod 0600 /swapfile। एक विश्व-पढ़ने योग्य स्वैप फ़ाइल एक बड़ी स्थानीय भेद्यता है।
user4035

2
मुझे लगता है कि यह पुराना है, लेकिन मैं 'dd' के बजाय 'truncate' का उपयोग करूंगा। वास्तव में डिस्क पर कुछ भी लिखने की आवश्यकता नहीं है।
गुइडो

4
दरअसल, आपको डिस्क पर कुछ करने के लिए एक सीक्वेंस लिखने की जरूरत है, जिससे ट्रंचेट रिजल्ट वाली फाइल बनाई जा सके swapon: /swapfile: skipping - it appears to have holes.
हवलदार

9

आपके पास शायद यहां दो तरीके हैं,

  1. स्वैप-विभाजन के बजाय एक स्वैप-फ़ाइल पर विचार करें
    • एक छोटे का उपयोग करना (आपके विभाजन आकार की तुलना में, लेकिन मेमोरी के लिए पर्याप्त बड़ा) स्वैप-विभाजन के लिए यूएसबी स्टिक

आप जो भी करते हैं, मैं एक लगता है swapoffऔर swaponफिर से शुरू करने के बाद उपयोगी होगा।
और, चूंकि आपको वास्तव में स्वैप की आवश्यकता नहीं है, इसलिए आप इसे swapoffफिर से शुरू करने के बाद छोड़ सकते हैं ।

अद्यतन: टिप्पणी धीमी USB हाइबरनेशन के बारे में एक अच्छी बात है।
तो, क्रमांकित क्रम में जांच करें - पहली योजना में स्वैप-फाइलों का उपयोग करके हाइबरनेशन के लिए नोट हैं।


जिज्ञासा से बाहर,
मैं जानना चाहता हूं कि जब आप उबंटू जैसे लिनक्स को बंद कर सकते हैं और इतनी तेजी से शुरू कर सकते हैं तो हाइबरनेट क्यों करना चाहते हैं।
मैं अनुमान लगा रहा हूँ,

  • आप कुछ अनुप्रयोगों के साथ अपने 8GB RAM को लोड करते हैं और उन्हें वहां छोड़ देते हैं
  • या, आप वेक-अप-ऑन-लैन

लेकिन, क्या वाकई ऐसा है? या, क्या आपके पास हाइबरनेट करने के लिए कोई और कारण है?

मैं एक USB बूटिंग उबंटू का उपयोग करता हूं और हमेशा बंद रहता हूं ।


2
USB फ्लैश स्टिक के लिए सस्पेंड इतना धीमा होगा
टेडेस्ज़ ए। कडलुबोस्की

6
मैं काम के दौरान सामान खोलना पसंद करता हूं और मुझे यह सब वापस करना पसंद है क्योंकि यह अगले दिन था। उबंटू शुरू करने के लिए तेज है (वास्तव में, मुझे यह तेज लगता है फिर से शुरू करें), लेकिन ग्रहण, फ़ायरफ़ॉक्स आदि नहीं हो सकता है, और अन्य ऐप भी बंद होने पर अपनी वर्तमान स्थिति को नहीं बचा सकते हैं।
हन्नो फिएट

2
@ हैनो, फ़ायरफ़ॉक्स आपको अपने स्क्रॉल-पोज़िशन तक सत्रों को सहेजने की अनुमति भी देता है। तो, सेव-एंड-क्विट बढ़िया है। निश्चित नहीं है कि ग्रहण क्या कर सकता है।
निक

3
फ़ायरफ़ॉक्स को याद नहीं है कि आपके प्रत्येक विंडो में कौन से कार्यक्षेत्र थे, इसलिए उन सभी को लोड करने के लिए इंतजार करने के बाद उन्हें वापस जगह पर फिर से विभाजित करने के लिए मामूली पीटीए है। टर्मिनल विंडो जैसी चीजों की स्थिति को पुनर्प्राप्त करने का कोई तरीका नहीं है।
intuited

पूरे 8GB मेमोरी को हाइबरनेट करने में इस USB फ्लैश स्टिक के साथ एक मिनट से भी कम समय लगेगा ।
intuited

4

हां, लेकिन बिना कुछ प्रयास किए। लिनक्स पर हाइबरनेट (सस्पेंड-टू-डिस्क) के 2 अलग-अलग तरीके हैं:

  1. स्वस्वैप , जो कर्नेल में शामिल है
  2. tuxonice (पूर्व में सस्पेंड 2), जो नहीं है।

Tuxonice कर्नेल को पैच के रूप में उपलब्ध है, और आपको सस्पेंड इमेज को एक साधारण फ़ाइल में लिखने देगा।

से विकिपीडिया :

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
ठीक है, मैंने कई गुठली को नियंत्रित किया है (मैं कुछ वर्षों के लिए एक जेंटू उत्साही रहा हूं), लेकिन एक कारण था कि मैंने उबंटू में स्विच किया ...?)
हन्नो फिएट

3

जैसा कि जोएल और जेफ ने पॉडकास्ट पर चर्चा की है , आम तौर पर स्वैप को बंद करना एक अच्छा विचार नहीं है - भले ही यह इसके लायक होगा (जो यह नहीं है) - डिस्क स्थान आजकल अविश्वसनीय रूप से सस्ता है कि इसे छोड़ने पर आपको खर्च नहीं करना पड़ता है कुछ भी। आप दस प्रतिशत से कम (यूरो प्रतिशत, यानी) के लिए एक टमटम प्राप्त कर सकते हैं!

उद्धरण के लिए:

एटवुड: मुझे लगता है कि किसी बिंदु पर हर गीक इस विचार प्रक्रिया से गुजरती है: मुझे टन और टन मेमोरी मिली, हो सकता है कि मैं अपने पेज फ़ाइल को चालू कर सकूं। मेरे पास वास्तव में इस बारे में एक ब्लॉग प्रविष्टि है। ... पंच लाइन है: यह कभी इसके लायक नहीं है।

अधिक बातचीत के लिए पॉडकास्ट सुनें (यह लगभग 59 मिनट पर शुरू होता है), या पॉडकास्ट पेज (प्रश्न 23621) से जुड़े सर्वरफॉल्ट पर प्रश्न पढ़ें। वे विंडो पेज फ़ाइल के बारे में बात करते हैं, लेकिन तर्क UNIX के लिए समान रूप से मान्य है (हालांकि वे एक अलग तरीके से मेमोरी का प्रबंधन कर सकते हैं)।


1
खैर, मुझे इस बात से कोई आपत्ति नहीं है कि वास्तव में, मेरा वर्तमान सेटअप स्वैप के रूप में उस अतिरिक्त 100 टमटम विभाजन का उपयोग करता है। हालांकि, मैं जो मन करता हूं, वह एक स्वैप विभाजन है । 100 गिग स्वैप बस कुल बकवास है, और मैं सिर्फ स्वैप के लिए एक छोटा विभाजन नहीं करना चाहता। स्वैफाइल मेरे लिए बहुत अच्छा है, रॉबर्ट के और नीक के जवाबों के लिए धन्यवाद, मुझे अब यह भी पता है कि उन्हें हाइबरनेशन के लिए कैसे उपयोग करना है, इसलिए मैं इसका उपयोग करूंगा।
हन्नो फिएट

4
"छोटे" विभाजन के साथ समस्या क्या है? Btw। मैं एक 8GB विभाजन को बिल्कुल भी छोटा नहीं समझूंगा - मैंने सालों से ऐसे linux install का इस्तेमाल किया है जो एक / partiton पर रहता था जो उससे छोटा था। और पहले पीसी का मैंने 20MB हार्ड ड्राइव का उपयोग किया है ..
0x89

1
दरअसल, लिनक्स विंडोज के लिए पूरी तरह से अलग फैशन में मेमोरी का प्रबंधन करता है। यहां तक ​​कि मेरे पुराने लैपटॉप पर 2GB RAM स्वैप के साथ बमुश्किल उपयोग किया जाता है, 200MB ऑफलोड किया गया है जो मैंने देखा अधिकतम मूल्य है
vava

@vava: आप सही हो सकते हैं, मैंने अपना उत्तर थोड़ा सा अनुकूलित किया। लेकिन यह तथ्य कि आपने अपनी अदला-बदली में 200MB का उतार
चढ़ाव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.