मैं स्वैप को कैसे अक्षम कर सकता हूं?


83

मेरे पास राम के कुछ संवेदनशील आंकड़े हैं जो मैं डिस्क पर नहीं होना पसंद करता हूं। मैं स्वैप को कैसे अक्षम कर सकता हूं? मेरे पास और फिर पर्याप्त राम है। यदि राम बहुत अधिक हो जाता है तो मुझे प्रक्रियाओं को समाप्त करने में कोई समस्या नहीं है। मैं स्वैप को कैसे अक्षम कर सकता हूं?

नोट: मेरे पास स्वैप विभाजन नहीं है और यह VM (VMWare) में चल रहा है

swap 

2
यहां तक ​​कि अगर आपके पास बहुत अधिक रैम है, तो यह स्वैप के बिना पूरी तरह से काम करने के लिए सबसे अच्छा विचार नहीं है (उदाहरण के लिए देखें alexonlinux.com/swap-vs-no-swap )। अपनी आवश्यकताओं के आधार पर आप स्वैप विभाजन को डीएम-क्रिप्ट सुरक्षित डिवाइस पर रखने पर विचार कर सकते हैं, ताकि उस पर लिखी गई सभी चीज़ों को एन्क्रिप्ट किया जा सके। आपको ऐसे मामले में यह सुनिश्चित करना होगा कि एन्क्रिप्टेड वॉल्यूम उपलब्ध होने के बाद स्वैप सक्षम हो, और डिवाइस मैपिंग अक्षम होने से पहले अक्षम हो जाए, निश्चित रूप से (मुझे लगता है कि यह उबंटू पर डिफ़ॉल्ट है, लेकिन मुझे यकीन नहीं है)। बस कई गाइड खोजने के लिए "एन्क्रिप्टेड स्वैप" के लिए वेब पर खोजें।
१४'१

1
Apropos: askubuntu.com/questions/248158/… आपको तब तक स्वैप की आवश्यकता नहीं है जब तक आपको इसकी आवश्यकता नहीं है। और फिर आपको वास्तव में इसकी आवश्यकता है।

एक cryptswap के बारे में क्या? / देव / मैपर / cryptswap1

जवाबों:


121

का उपयोग करते हुए

sudo swapoff -a  

स्वैप को बंद करने का सामान्य तरीका है, swapon -aकमांड का उपयोग इसे वापस चालू करने के लिए किया जाता है। man swapoff स्पष्ट उपकरणों के लिए स्वैप बंद करने के बारे में अधिक जानकारी के लिए देखें ।


7
यह एक रिबूट के पार जारी नहीं लगता है?
एरोब्रॉन

19
स्वैप में स्थायी परिवर्तन आमतौर पर / etc / fstab में किए जाते हैं।
ubfan1

क्या हम इसे कॉपी करते हैं / etc / fstab
Max

6
नहीं। इसके बजाय, आप स्वैप लाइन को / etc / fstab में लिखते हैं।
टॉर्स्टन ब्रोंगर

आप अन्य उत्तरों में पढ़ सकते हैं कि इसे कैसे टिप्पणी दें।
कैरोलस

25

आप /etc/fstabफ़ाइल में स्वैप प्रविष्टि को केवल टिप्पणी (लाइन के सामने # जोड़ें) द्वारा रिबूट के बाद स्वैप को अक्षम कर सकते हैं । यह रिबूट के बाद स्वचालित रूप से बढ़ते हुए स्वैप विभाजन को रोक देगा। एक ही आदेश में ऐसा करने के लिए:

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

या केवल:

sudo sed -i '/ swap / s/^/#/' /etc/fstab

अब आपकी स्वैप प्रविष्टि /etc/fstabइस तरह दिखाई देगी:

#UUID=xxxxxxxx-xxxx-xxxxx-xxx-xxxxxxxxxxx none            swap    sw              0       0

"X" अक्षरों के बजाय अपने स्वयं के विशिष्ट नंबरों और लोअर केस अक्षरों के साथ।


2
आपके उद्धृत UUID में कुछ ठोस अंक क्यों हैं? क्या उन्हें सभी यूयूआईडी के लिए समान होना चाहिए? मेरे विभाजन के UUID का आपके निर्दिष्ट अंकों के साथ कोई संयोग नहीं है।
रुस्लान

यदि फ़ील्ड टैब (रिक्त स्थान नहीं) से अलग हो जाती हैं, तो आपकी sed कमांड काम नहीं करती है। इसे sed -ri '/\sswap\s/s/^#?/#/' /etc/fstabPS के रूप में बेहतर लिखा गया है : मैंने #?पहले ही अक्षम होने पर / etc / fstab में अतिरिक्त परिवर्तन को रोकने के लिए भी जोड़ा था।
अलेड_ए

4

यदि आपके स्वैप की सामग्री के बारे में चिंतित हैं, तो आप इसे हमेशा की तरह सामान्य तरीके से निर्दिष्ट कर सकते हैं sudo swapoff -aऔर फिर dd का उपयोग करके शून्य डिवाइस या यादृच्छिक डेटा के साथ स्वैप डिवाइस को भर सकते हैं।

सबसे पहले अपने स्वैफाइल या डिवाइस को खोजने के लिए fstab की सामग्री का उपयोग करें ( less /etc/fstab)

यह स्थित होने के नाते और डबल और ट्रिपल यह sda5 या /swapfile (स्वैप विभाजन 17.04 और उसके बाद के स्वैप के साथ डिफ़ॉल्ट रूप से बदल दिया गया था) पर स्थान की जाँच की है ।

स्वैप विभाजन या ड्राइव के मामले में: (पूर्व / देव के साथ) "डिस्क विध्वंसक" कमांड जारी करता है (हल्के ढंग से उपयोग नहीं किया जाना)

sudo dd if=/dev/zero of=swapस्वैप डिवाइस के साथ स्वैप शब्द की जगह या आपके पास स्थित फ़ाइल/etc/fstab

शून्य से भरा यह विस्फोट करने के लिए या

sudo dd if=/dev/random of=swapफिर से स्वैप शब्द की जगह स्वैप डिवाइस या आपके द्वारा स्थित फ़ाइल की जगह लें/etc/fstab

यादृच्छिक डेटा से भरा यह विस्फोट करने के लिए।

एक स्वैपफाइल के मामले में (केवल एक पथ के साथ पूर्वनिर्मित): आप बस के साथ फ़ाइल को हटा सकते हैंrm /path/to/swapfile

अगली बार जब आप अदला-बदली करेंगे

swapon -a

सिस्टम खुशी से इसे फिर से उपयोग करेगा। यदि आपके पास बहुत सारी रैम है तो आपको स्वैप की बिल्कुल भी आवश्यकता नहीं है। आदेश जारी करें

free जब सिस्टम भारी भार के अधीन है और यह निर्धारित करने के लिए उपयोग में है कि कितना देखें।

यदि आप यह निर्धारित करते हैं कि आपको स्थायी रूप से स्वैप की आवश्यकता नहीं है (हाइबरनेशन या कुछ और के लिए) तो आप बस उस लाइन को fstab में बता सकते हैं जैसा कि यहाँ सुझाया गया है

नि: शुल्क


3

यह लंगड़ा समाधान हो सकता है, लेकिन मैंने इसे अक्सर इस्तेमाल किया। आप बस टाइप कर सकते हैं

sudo -s
crontab -e

और जोड़

@reboot sudo swapoff -a  

तो, यह बूट पर स्वचालित रूप से अक्षम हो जाएगा।


4
मुझे आशा है कि यह कहे बिना चलेगा कि यह एक बहुत ही खराब पद्धति है। एक अन्य विकल्प को बंद करने के लिए एक बूट-टाइम कार्य क्यों बनाएं , जब एक और फ़ाइल हो जिसे इसे बंद करने के लिए संपादित किया जा सकता है जिसे पहली बार में चालू किया जा सकता है
अंडरस्कोर_ड

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

दरअसल, यह बेहतर समाधान हो सकता है। क्योंकि / etc / fstab सुझाव केवल स्वैप विभाजन के लिए काम करते हैं। यह समाधान linux setups पर लागू होता है, भले ही वे विभाजन या स्वैफ़ाइल का उपयोग करते हों या नहीं।
निकोलस पिपिटोन

2
sudo swapoff -a

उपरोक्त आदेश केवल वर्तमान सत्र के लिए स्वैप को अक्षम करता है , आपको स्वैप विभाजन को / etc / fstab फ़ाइल में टिप्पणी करने की आवश्यकता है । ऐसा करने के लिए आपको बस स्वैप लाइन की शुरुआत में "#" (टिप्पणी लाइन) जोड़ना होगा। चरण इस प्रकार हैं:

  1. Fstab फ़ाइल खोलें, sudo gedit /etc/fstabटर्मिनल में टाइप करें ।

फ़ाइल की सामग्री इस तरह दिखाई देगी:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/host/ubuntu/disks/root.disk /               ext4    loop,errors=remount-ro 0       1
/host/ubuntu/disks/swap.disk none            swap    loop,sw         0       0
#/dev/sda10 /media/ASD  vfat    defaults    0   0
#/dev/sda1  /media/98   vfat    defaults    0   0
  1. बस स्वैप विभाजन की शुरुआत में हैश (#) जोड़ें, ताकि रेखा इस प्रकार दिखे:

#/host/ubuntu/disks/swap.disk none swap loop,sw 0 0

  1. अपने पीसी को रिबूट करें

0

टर्मिनल में जाएं और इस कमांड को निष्पादित करें gnome-disks:। यह सभी वितरणों में स्थापित नहीं है। यदि हां, तो इसे स्थापित करने के लिए मुद्रित निर्देशों का पालन करें और फिर से प्रयास करें। बाएं फलक पर 'स्वैप' शब्द के साथ एक उपकरण देखें। आमतौर पर इसका आकार आपकी भौतिक स्मृति के समान होता है। इसे अक्षम करने के लिए स्क्वायर बटन पर क्लिक करें। इस परिवर्तन को अपने रूट पासवर्ड से प्रमाणित करें।

स्क्रीनशॉट: http://imgur.com/Og6igqb

सिस्टम मॉनिटर एप्लिकेशन (सूक्ति-सिस्टम-मॉनिटर) में, आप इसे स्वैप क्षेत्र की रिपोर्ट 'उपलब्ध नहीं' के रूप में देखेंगे। स्वैप क्षेत्र अक्षम है लेकिन हटाया नहीं गया है। आप भविष्य में इसे फिर से आसानी से सक्षम कर सकते हैं। स्वैप स्थान को हटाने से मेरे सिस्टम को कोई नुकसान नहीं हुआ है, लेकिन अगर आप भविष्य में इसे वापस हाइबरनेशन करना चाहते हैं, तो आप अपने लिए और अधिक काम पैदा करेंगे।

संपादित करें: स्टार्टअप पर बढ़ते हुए इसे रोकने के लिए, आपको सूक्ति-डिस्क में "एडिट माउंट विकल्प ..." में जाना चाहिए और "माउंट एट स्टार्टअप" को अनचेक करना चाहिए।


1
क्या आपको लगता है कि यह उपयोगकर्ताओं को स्वैप विभाजन पर संवेदनशील डेटा होने के बारे में चिंता का जवाब देता है? क्या आप हमें बता सकते हैं क्यों?
एल्डर गीक

1
उपयोगकर्ता का मुख्य बिंदु पूछ रहा था कि स्वैप को कैसे अक्षम किया जाए। यदि आपके पास संवेदनशील डेटा है, तो आपको आदर्श रूप से प्री-बूट एन्क्रिप्शन का उपयोग करना चाहिए।
user170544

1
मैं आदरपूर्वक असहमत हूं। जब मैं प्रश्न को पढ़ता हूं तो मुझे जो पहला वाक्य आता है वह है "मेरे पास राम में कुछ संवेदनशील डेटा हैं जो मैं डिस्क पर नहीं होना पसंद करता हूं।" मेरा मानना ​​है कि यह उनकी मुख्य चिंता थी जिसके कारण उन्होंने इसकी शुरुआत की। भले ही, मेरा मानना ​​है कि मैंने अपने उत्तर में उनके प्रश्न के हर पहलू को कवर किया है। इसे एक सहायक उदाहरण मानते हैं।
एल्डर गीक

0

उस पंक्ति के defaultsसाथ बदलें sw,noautoजिसमें फ़ाइल में स्वैप प्रविष्टि है /etc/fstab:

/dev/mapper/centos-swap swap  swap    sw,noauto        0 0

(रास्ता /dev/mapper/centos-swapशायद आपके लिए अलग है)।

अब रिबूट के बाद आउटपुट की जांच करें, आपका स्वैप कभी माउंट नहीं होता है:

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           3791         100        3408           8         282        3483
**Swap:             0           0           0**
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.