लिनक्स में स्वैप को निष्क्रिय करने का सबसे अच्छा तरीका


53

मैं एक कस्टम 3.18.9 संकलन संकलित कर रहा हूं और मैं सिस्टम पर स्वैप को अक्षम करने के सर्वोत्तम तरीके के बारे में सोच रहा हूं। मैं भी अगर यह एक फर्क पड़ता है init का उपयोग करें।

क्या स्वैग लाइन को टिप्पणी करने या हटाने के लिए पर्याप्त है कि स्वैप /etc/fstabको काम करने से रोकने के लिए या बूट पर बढ़ते हुए या क्या मुझे कर्नेल को Support for paging of anonymous memory (swap)100% के बिना फिर से जोड़ना चाहिए सुनिश्चित करें कि यह सक्षम नहीं होता है?

मैं एन्क्रिप्टेड विभाजन चलाते हैं और हार्ड डिस्क में आकस्मिक रिसाव को रोकना चाहते हैं। मेरे सिस्टम के स्पेसिफिकेशंस भी काफी अच्छे हैं कि मैं एक स्वैप-कम वातावरण में जीवित रह सकता हूं।


आपका स्वैप एन्क्रिप्टेड क्यों नहीं है?
माइकल हैम्पटन

@ मिचेल हैम्पटन मुझे उस समय तक इस बात की आवश्यकता नहीं दिखी जब तक मुझे एहसास नहीं हुआ कि आखिरकार क्या होने जा रहा है। इसके अलावा मेरा सिस्टम किसी भी समय तक नहीं पहुंचता है कि स्वैप का उपयोग किया गया था, इसलिए मुझे लगता है कि मैं इसे हटाने के लिए स्वतंत्र हूं।
user283167

मैं तब कर्नेल से सुविधा को हटा दूँगा। अन्यथा कोई व्यक्ति यूएसबी-स्टिक को प्लग कर सकता है और इसे फिर से स्वैप करना शुरू कर सकता है।
ott--

@ क्या उपयोगकर्ता को स्वेपॉन / स्वैफ़ॉफ़ निष्पादन योग्य का उपयोग करने के लिए सुपर उपयोगकर्ता की आवश्यकता नहीं है? मैं इसे केवल मामले में फिर से अक्षम कर सकता हूं, लेकिन मैं अनिश्चित हूं कि एक अप्रकाशित उपयोगकर्ता स्वैप फाइलें बना सकता है।
user283167

दरअसल, उसे सुपर यूजर एक्सेस की जरूरत है, जिसका फायदा वह एगिट के साथ उठा सकता है। लेकिन क्या आप अपना सर्वर 24/7 देख रहे हैं?
ott--

जवाबों:


76
  1. कॉन्फ़िगर किए गए स्वैप उपकरणों और फ़ाइलों की पहचान करें cat /proc/swaps
  2. सभी स्वैप उपकरणों और फाइलों को बंद कर दें swapoff -a
  3. किसी भी मिलान संदर्भ को निकालें /etc/fstab
  4. वैकल्पिक: उनके पुन: उपयोग को रोकने के लिए चरण 1 में पाए गए किसी भी स्वैप डिवाइस या फ़ाइलों को नष्ट करें। संवेदनशील जानकारी को लीक करने के बारे में आपकी चिंताओं के कारण, आप कुछ प्रकार के सुरक्षित पोंछने पर विचार करना चाह सकते हैं।

आदमी अदला-बदली करता है


कुछ सिस्टम पर आपको initrdसंग्रह को फिर से बनाना होगा , जैसे कि dracut --regenerate-all --forceया mkinitrd, या सिस्टम बूट नहीं करेगा। जो अहो और कार्लोस ईआर पर धन्यवाद alt.os.linux.suse
Ant_222

10

यदि आप वास्तव में सुनिश्चित हैं कि आप स्वैपिंग को अक्षम करना चाहते हैं (ध्यान दें: यह अनुशंसित नहीं है , यहां तक ​​कि जहां आप सुनिश्चित हैं कि भौतिक रैम पर्याप्त से अधिक है), इन चरणों का पालन करें:

  1. रन swapoff -a: यह तुरंत स्वैप अक्षम कर देगा
  2. किसी भी स्वैप प्रविष्टि को हटा दें /etc/fstab
  3. rebootप्रणाली। अगर स्वैप चला गया है, अच्छा। यदि, किसी कारण से, यह अभी भी यहां है, तो आपको स्वैप विभाजन को हटाना होगा। चरण 1 और 2 दोहराएं और उसके बाद, (अब अप्रयुक्त) स्वैप विभाजन का उपयोग करें fdiskया partedनिकालें। यहां बहुत सावधानी बरतें: गलत विभाजन को हटाने से विनाशकारी प्रभाव पड़ेगा!
  4. reboot

1
यदि आपके पास पर्याप्त राम है तो भी स्वैप को अक्षम करने की अनुशंसा क्यों नहीं की जाती है?
रॉल्फ

1
क्योंकि लिनक्स कैशिंग के लिए अधिक मेमोरी को मुक्त करने के लिए स्वैप विभाजन का सटीक रूप से उपयोग करता है। इससे प्रदर्शन में सुधार हो सकता है। वैसे भी, यह एक ट्यूनेबल पैरामीटर है। अधिक जानकारी के लिए, यहाँ पढ़ें । इसके अलावा, एक स्वैपलेस सिस्टम में मेमोरी एलोकेशन में इंप्रूवमेंट सर्ज कर्नेल ओओएम किलर को ट्रिगर कर सकता है।
शोडान्शोक

1
धन्यवाद, यह उचित है। फिर भी, मैं सोच रहा था कि अगर "पर्याप्त राम" (जैसे: 8 या 16 जीबी) भरा हुआ है, तो यह संभावना है कि किसी प्रकार की असाधारण स्थिति (मेमोरी लीक या कुछ अन्य भगोड़ा मुद्दा, डीडीओएस हमला, आदि) जिसमें मामले में भी स्वैप अंत में वैसे भी अभिभूत हो जाएगा। हो सकता है कि मैं बहुत ठोस तर्क नहीं दे रहा हूं, लेकिन लाइट-ईश डेस्कटॉप उपयोग में ऐसा नहीं होना चाहिए।
रॉल्फ

9

ऐसा लगता है कि केवल स्वैप विभाजन का /etc/fstabउपयोग स्वचालित रूप से किया जाता था, हालांकि, सिस्टमड कि थोड़ा बदल सकता है। आपको करने की आवश्यकता हो सकती है:

systemctl mask dev-sdXX.swap

(परिवर्तन sdXX) अपने असली स्वरूपित स्वैप विभाजन के लिए, जो, इस सवाल का जवाब देता है कि आपके पास एक स्वैप विभाजन क्यों है यदि आप इसका उपयोग नहीं करना चाहते हैं ...

यदि आप सिस्टमड का उपयोग नहीं कर रहे हैं, तो, स्वैप प्रविष्टियों को हटाना /etc/fstabपर्याप्त होना चाहिए (जहाँ तक मुझे पता है)।

शायद असली समाधान स्वैप विभाजन से छुटकारा पाने के लिए है, इसलिए उन्हें गलती से उपयोग नहीं किया जाएगा। स्वैप विभाजन को हटाने के लिए, मैं fdisk का उपयोग विभाजन प्रकार को स्वैप से किसी अन्य चीज़ में बदलने के लिए करूँगा, और फिर विभाजन या उपयोग को पुन: स्वरूपित करूँगा: dd if=/dev/zero of=/dev/old-swap-partitionताकि इसे शून्य किया जा सके और इसके उपयोग को रोका जा सके।

सिस्टमैड के साथ स्वैप विभाजन का उपयोग भी देखें ।


मैं अभी भी ओपनआरसी के माध्यम से इनिट का उपयोग करता हूं, मैं उद्देश्यपूर्ण रूप से इंस्टॉल से सिस्टम को शुद्ध करता हूं। और स्वैप प्रश्न के लिए, मैं तब तक एक नियमित रूप से इंस्टॉल कर रहा था जब तक कि मैंने अपने फाइलसिस्टम के शीर्ष पर ext4 को स्वरूपित एन्क्रिप्टेड फ़ाइलों को माउंट करने के लिए cryptsetup / luks का उपयोग करने का निर्णय नहीं लिया। यदि आप init का उपयोग करते समय स्वैप को अक्षम करने के तरीके पर स्पर्श करने के लिए इतने दयालु हो सकते हैं तो मैं इसकी सराहना करूंगा।
user283167

0

जब मैं रास्पियन पर / etc / fstab फाइल देखता हूं तो मैं एक टिप्पणी कहता हूं

a swapfile is not a swap partition, no line here
  use dphys-swapfile swap[on|off] for that

लेकिन पूर्वनिर्मित स्वैप फ़ाइल को पूरी तरह से अक्षम करने के लिए यह पूरी तरह से ठीक काम करता है:

swapoff -a
chmod -x /etc/init.d/dphys-swapfile
reboot

यह समाधान मुझे थोड़ा तेज और गंदा लग रहा है, हालाँकि, आप बस इसे फिर से उपयोग कर सकते हैं:

chmod +x /etc/init.d/dphys-swapfile
reboot
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.